zhouwx
2025-03-24 3f6bf89b1985b6668f02ffcc9af577b412e92e45
src/views/safetyReview/projectManage/components/riskAnalysis.vue
@@ -5,7 +5,9 @@
        <el-col :span="6">
          <el-form-item prop="project.name" label="项目名称">
            <el-input
                v-model="state.formData.project.name"
                maxlength="100"
                show-word-limit
                v-model.trim="state.formData.project.name"
                size="large"
                placeholder="请输入项目名称"
            >
@@ -15,7 +17,8 @@
        <el-col :span="6">
          <el-form-item prop="project.client" label="委托单位">
            <el-input
                v-model="state.formData.project.client"
                v-model.trim="state.formData.project.client"
                size="large"
                placeholder="请输入委托单位"
            >
@@ -25,7 +28,7 @@
        <el-col :span="6">
          <el-form-item prop="project.creditCode" label="委托单位统一社会信用代码">
            <el-input
                v-model="state.formData.project.creditCode"
                v-model.trim="state.formData.project.creditCode"
                size="large"
                placeholder="请输入委托单位统一社会信用代码"
            >
@@ -37,7 +40,7 @@
            <el-input
                maxlength="100"
                show-word-limit
                v-model="state.formData.project.address"
                v-model.trim="state.formData.project.address"
                size="large"
                placeholder="请输入详细地址"
            >
@@ -47,7 +50,7 @@
      </el-row>
      <el-row :gutter="30">
        <el-col :span="6">
          <el-form-item prop="project.estimateType" label="评价类型">
          <el-form-item prop="project.estimateType" label="类型">
            <el-select v-model="state.formData.project.estimateType" class="m-2" size="large" placeholder="请选择" style="width: 100%" >
              <el-option
                  v-for="item in state.estimateTypeList"
@@ -61,7 +64,7 @@
        <el-col :span="6">
          <el-form-item prop="project.code" label="项目编号">
            <el-input
                v-model="state.formData.project.code"
                v-model.trim="state.formData.project.code"
                size="large"
                placeholder="请输入项目编号"
            >
@@ -71,7 +74,8 @@
        <el-col :span="6">
          <el-form-item prop="project.invest" label="项目投资金额">
            <el-input
                v-model="state.formData.project.invest"
                @input="state.formData.project.invest= state.formData.project.invest.replace(/[^0-9.\/\-]/g,'')"
                v-model.trim="state.formData.project.invest"
                size="large"
                placeholder="请输入项目投资金额"
            >
@@ -108,7 +112,7 @@
      </el-row>
      <el-form-item prop="project.introduction" label="基本概括">
        <el-input
            v-model="state.formData.project.introduction"
            v-model.trim="state.formData.project.introduction"
            :autosize="{ minRows: 6 }"
            maxlength="500"
            show-word-limit
@@ -117,7 +121,7 @@
      </el-form-item>
      <el-form-item prop="riskCharacter" label="行业风险特性">
        <el-input
            v-model="state.formData.riskCharacter"
            v-model.trim="state.formData.riskCharacter"
            :autosize="{ minRows: 6 }"
            maxlength="500"
            show-word-limit
@@ -126,7 +130,7 @@
      </el-form-item>
      <el-form-item prop="surroundings" label="周边环境">
        <el-input
            v-model="state.formData.surroundings"
            v-model.trim="state.formData.surroundings"
            :autosize="{ minRows: 6 }"
            maxlength="500"
            show-word-limit
@@ -135,7 +139,7 @@
      </el-form-item>
      <el-form-item prop="equipment" label="主要生产装置">
        <el-input
            v-model="state.formData.equipment"
            v-model.trim="state.formData.equipment"
            :autosize="{ minRows: 6 }"
            maxlength="500"
            show-word-limit
@@ -195,7 +199,7 @@
                size="large"
                maxlength="30"
                show-word-limit
                placeholder="请输入风险评估人意见"
                placeholder="风险评估人意见"
            >
            </el-input>
          </el-form-item>
@@ -207,7 +211,7 @@
                show-word-limit
                v-model="state.formData.agencyOpinon"
                size="large"
                placeholder="请输入机构评价负责人意见"
                placeholder="机构评价负责人意见"
            >
            </el-input>
          </el-form-item>
@@ -229,6 +233,17 @@
import Cookies from "js-cookie";
const emit = defineEmits(["getNextStatus"]);
const isAmin = ref(false)
const formRef = ref();
onMounted(() => {
  const userInfo = JSON.parse(Cookies.get('userInfo'))
  if(userInfo.identity === 0){
    isAmin.value = true;
  }
  getRiskList();
  getBusinessList();
  getArea();
});
const state = reactive({
  formData: {
    project: {
@@ -267,7 +282,7 @@
    "project.name": [{required: true, message: '请填写项目名称', trigger: 'blur'}],
    "project.client": [{required: true, message: '请填写委托单位', trigger: 'blur'}],
    "project.creditCode": [{required: true, message: '请填写委托单位统一社会信用代码', trigger: 'blur'}],
    "project.estimateType": [{required: true, message: '请选择评价类型', trigger: 'blur'}],
    "project.estimateType": [{required: true, message: '请选择类型', trigger: 'blur'}],
    "project.address": [{required: true, message: '请填写详细地址', trigger: 'blur'}],
    "project.invest": [{required: true, message: '请填写投资金额', trigger: 'blur'}],
    "project.area": [{required: true, message: '请选择所属区域', trigger: 'blur'}],
@@ -321,17 +336,7 @@
  value: 'name',
  label: 'name'
}
const isAmin = ref(false)
const formRef = ref();
onMounted(() => {
  const userInfo = JSON.parse(Cookies.get('userInfo'))
  if(userInfo.identity === 0){
    isAmin.value = true;
  }
  getRiskList();
  getBusinessList();
  getArea();
});
const getRiskList = async () => {
  const res = await getDictList({dictType: "sys_assess_type"});
@@ -350,10 +355,21 @@
  }
}
const getArea = async ()=>{
  const type = 1
  const type = 0
  const res = await getRegionTree({name: '',parentId: null,regionType: type})
  if(res.code == 200){
    state.addressList = res.data
    const data = res.data.map(item => {
      return {
        ...item,
        children: null
      }
    })
    const area = {
      id: 469,
      name: "新疆维吾尔自治区",
      children: data
    }
    state.addressList = [area]
  }else{
    ElMessage.warning(res.message)
  }
@@ -365,7 +381,11 @@
    if(res.code == 200){
      state.formData = res.data;
      state.formData.project.business = parseInt(res.data.project.business);
      state.formData.project.area = [res.data.project.province,res.data.project.city];
      if(res.data.project.province == '北京市' || res.data.project.province == '天津市' || res.data.project.province == '上海市' || res.data.project.province == '重庆市' || res.data.project.province == '香港特别行政区' || res.data.project.province == '澳门特别行政区'){
        state.formData.project.area = [res.data.project.province]
      }else{
        state.formData.project.area = [res.data.project.province,res.data.project.city];
      }
      state.tableData[0].status = res.data.isInBusiness ? 1 : 0;
      state.tableData[1].status = res.data.isSatisfyNeed ? 1 : 0;
      state.tableData[2].status = res.data.isNeedExpert ? 1 : 0;
@@ -387,13 +407,15 @@
        const {id, ...data} = JSON.parse(JSON.stringify(state.formData))
        delete data.project.area;
        delete data.project.id;
        if(data.project.province == '北京市' || data.project.province == '天津市' || data.project.province == '上海市' || data.project.province == '重庆市' || data.project.province == '香港特别行政区' || data.project.province == '澳门特别行政区'){
          data.project.city = data.project.province
        }
        data.isInBusiness = state.tableData[0].status === 1;
        data.isSatisfyNeed = state.tableData[1].status === 1;
        data.isNeedExpert = state.tableData[2].status === 1;
        data.isFinishReport = state.tableData[3].status === 1;
        data.isAcceptChargess = state.tableData[4].status === 1;
        data.isFeasibility = state.tableData[5].status === 1;
        console.log('data', data)
        const res = await addRisk(data);
        if (res.code == 200) {
          ElMessage.success('保存成功')
@@ -405,14 +427,18 @@
        }
      }else if(type === 'clickEdit'){
        const { ...data} = JSON.parse(JSON.stringify(state.formData))
        data.id = val;
        data.project.id = val;
        if(data.project.province == '北京市' || data.project.province == '天津市' || data.project.province == '上海市' || data.project.province == '重庆市' || data.project.province == '香港特别行政区' || data.project.province == '澳门特别行政区'){
          data.project.city = data.project.province
        }
        delete data.project.area;
        data.isInBusiness = state.tableData[0].status === 1;
        data.isSatisfyNeed = state.tableData[1].status === 1;
        data.isNeedExpert = state.tableData[2].status === 1;
        data.isFinishReport = state.tableData[3].status === 1;
        data.isAcceptChargess = state.tableData[4].status === 1;
        data.isFeasibility = state.tableData[5].status === 1;
        console.log('data', data)
        data.isInBusiness = state.tableData[0].status === 1
        data.isSatisfyNeed = state.tableData[1].status === 1
        data.isNeedExpert = state.tableData[2].status === 1
        data.isFinishReport = state.tableData[3].status === 1
        data.isAcceptChargess = state.tableData[4].status === 1
        data.isFeasibility = state.tableData[5].status === 1
        const res = await editRisk(data);
        if (res.code == 200) {
          ElMessage.success('变更成功')