<template>
|
<FYForm
|
:form-info="formInfo"
|
:rules="rules"
|
:showButtons="!readonly"
|
@submit="submit"
|
>
|
<template #form-item="{ fyFormInfo }">
|
<el-form-item label="规则名称" prop="rulename">
|
<el-input v-model="formInfo.rulename" :disabled="readonly"></el-input>
|
</el-form-item>
|
<!-- <FYOptionScene
|
:allOption="false"
|
:type="2"
|
v-model:value="formInfo._scenetype"
|
></FYOptionScene> -->
|
<el-form-item label="场景类型" prop="_scenetype">
|
<el-select v-model="formInfo._scenetype" placeholder="场景类型" :disabled="readonly">
|
<el-option v-for="s in sceneTypes" :key="s.value" :label="s.label" :value="s" />
|
</el-select>
|
</el-form-item>
|
<!-- 区县 -->
|
<FYOptionLocation
|
:allOption="false"
|
:level="3"
|
:initValue="false"
|
:checkStrictly="true"
|
v-model:value="formInfo._locations"
|
></FYOptionLocation>
|
<el-form-item label="规则类型" prop="ruletype">
|
<el-select v-model="formInfo.ruletype" placeholder="请选择" :disabled="readonly">
|
<el-option
|
v-for="item in ruleTypeOptions"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="任务类型" prop="tasktype">
|
<el-select v-model="formInfo.tasktype" placeholder="请选择" :disabled="readonly">
|
<el-option
|
v-for="item in tasktypeOptions"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="是否适用" prop="suitable">
|
<el-switch v-model="formInfo.suitable" :disabled="readonly"></el-switch>
|
</el-form-item>
|
<el-form-item label="是否启用" prop="isuse">
|
<el-switch v-model="formInfo.isuse" :disabled="readonly"></el-switch>
|
</el-form-item>
|
</template>
|
</FYForm>
|
</template>
|
<script>
|
import { enumScene } from '@/enum/scene';
|
import { ElMessage } from 'element-plus';
|
import evaluateApi from '@/api/fysp/evaluateApi';
|
<<<<<<< HEAD
|
import { useCloned } from '@vueuse/core';
|
=======
|
>>>>>>> c06a5b40718062cc8b4b971322d7c394018cc972
|
export default {
|
props: {
|
readonly: {
|
type: Boolean,
|
default: false,
|
},
|
evalutionRule: {
|
type: Object,
|
default: {}
|
}
|
},
|
created() {
|
this.initFormInfo();
|
},
|
mounted() {},
|
methods: {
|
// update方法
|
updateEvalutionRule() {
|
return evaluateApi.updateParentRule(this.formInfo);
|
},
|
initFormInfo() {
|
this.formInfo = useCloned(this.evalutionRule).cloned.value;
|
this.parseSceneBaseInfo(this.formInfo);
|
},
|
parseSceneBaseInfo(param) {
|
const s = param;
|
s._scenetype = {
|
label: s.scensetype,
|
value: s.scensetypeid + ''
|
};
|
|
s._locations = {
|
pCode: s.provincecode,
|
pName: s.provincename,
|
cCode: s.citycode,
|
cName: s.cityname,
|
dCode: s.districtcode,
|
dName: s.districtname
|
};
|
console.log('param', param);
|
},
|
// 删除无关字段
|
deleteExtraField(data) {
|
if (!(data instanceof Object)) {
|
return;
|
}
|
for (let i = data.length - 1; i >= 0; i--) {
|
if (key.startsWith('_')) {
|
delete data[key];
|
}
|
}
|
},
|
submit(formObj, success, fail) {
|
// 数据准备
|
this.formInfo.scensetypeid = this.formInfo._scenetype.value;
|
this.formInfo.scensetype = this.formInfo._scenetype.label;
|
// 行政区划信息填充
|
const a = this.formInfo._locations;
|
this.formInfo.provincecode = a.pCode;
|
this.formInfo.provincename = a.pName;
|
this.formInfo.citycode = a.cCode;
|
this.formInfo.cityname = a.cName;
|
this.formInfo.districtcode = a.dCode;
|
this.formInfo.districtname = a.dName;
|
this.deleteExtraField(this.formInfo);
|
console.log('数据处理结束', this.formInfo);
|
|
return new Promise((reslove, reject) => {
|
setTimeout(() => {
|
this.$emit('updated', true);
|
this.updateEvalutionRule().then((res) => {
|
if (res != 1) {
|
fail();
|
reslove();
|
}
|
success();
|
});
|
reslove();
|
}, 1000);
|
});
|
}
|
},
|
data() {
|
return {
|
sceneTypes: enumScene(2, false),
|
formInfo: {},
|
ruleTypeOptions: [
|
{ label: '规范性', value: '1' },
|
{ label: '评分', value: '2' }
|
],
|
tasktypeOptions: [
|
{ label: '巡查', value: 1 },
|
{ label: '无人机巡查', value: 2 },
|
{ label: '复核', value: 3 },
|
{ label: '执法支持', value: 4 },
|
{ label: '监测运维', value: 5 },
|
{ label: '治理运维', value: 6 },
|
{ label: '改造', value: 7 },
|
{ label: '治理', value: 8 },
|
{ label: '咨询', value: 9 },
|
{ label: '自动评分', value: 99 }
|
]
|
};
|
}
|
};
|
</script>
|
<style scoped></style>
|