From e1034e8661e811215809a2a375767d50ccd32541 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期二, 14 十月 2025 08:51:38 +0800
Subject: [PATCH] 修改新增

---
 src/views/work/financialMng/qualityFinancialAnalysis/components/editDialog.vue |  320 ++++++++++++++++++-----------------------------------
 1 files changed, 110 insertions(+), 210 deletions(-)

diff --git a/src/views/work/financialMng/qualityFinancialAnalysis/components/editDialog.vue b/src/views/work/financialMng/qualityFinancialAnalysis/components/editDialog.vue
index 7bbd541..3afce15 100644
--- a/src/views/work/financialMng/qualityFinancialAnalysis/components/editDialog.vue
+++ b/src/views/work/financialMng/qualityFinancialAnalysis/components/editDialog.vue
@@ -49,20 +49,20 @@
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="一 、基本情况:" prop="method" >
-              <el-input :disabled="title === '查看'" v-model="state.form.method" :rows="4" type="textarea" placeholder=""/>
+            <el-form-item label="一 、基本情况:" prop="basic" >
+              <el-input :disabled="title === '查看'" v-model="state.form.basic" :rows="4" type="textarea" placeholder=""/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="二 、综合分析:" v-if="showEditor"  required>
-              <t-editor style="width: 800px" ref="myEditor" :toolbar="toolbar" :value="state.form.policy" ></t-editor>
+            <el-form-item label="二 、综合分析:" v-if="showEditor"  required prop="synthesize">
+              <t-editor style="width: 800px" ref="myEditor" :toolbar="toolbar" :value="state.form.synthesize" ></t-editor>
             </el-form-item>
-            <el-form-item label="二 、综合分析:" v-else>
+            <el-form-item label="二 、综合分析:" v-else prop="synthesize">
               <div class="ql-container ql-snow" style="height: 500px;width: 100%;margin-top: 10px;" >
                 <div class="ql-editor">
-                  <div class="reviewTable" v-html="state.form.policy"  @click="showFile($event)"></div>
+                  <div class="reviewTable" :disabled="title === '查看'" v-html="state.form.synthesize"  ></div>
                 </div>
               </div>
             </el-form-item>
@@ -70,52 +70,53 @@
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="三 、内外部损失:" prop="method" >
-              <el-input :disabled="title === '查看'" v-model="state.form.method" :rows="4" type="textarea" placeholder=""/>
+            <el-form-item label="三 、内外部损失:" prop="damage" >
+              <el-input :disabled="title === '查看'" v-model="state.form.damage" :rows="4" type="textarea" placeholder=""/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="四 、纠正措施:" prop="method" >
-              <el-input :disabled="title === '查看'" v-model="state.form.method" :rows="4" type="textarea" placeholder=""/>
+            <el-form-item label="四 、纠正措施:" prop="measure" >
+              <el-input :disabled="title === '查看'" v-model="state.form.measure" :rows="4" type="textarea" placeholder=""/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="五 、分析的结果:" prop="method" >
-              <el-input :disabled="title === '查看'" v-model="state.form.method" :rows="4" type="textarea" placeholder=""/>
+            <el-form-item label="五 、分析的结果:" prop="analysis" >
+              <el-input :disabled="title === '查看'" v-model="state.form.analysis" :rows="4" type="textarea" placeholder=""/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="24">
-            <el-form-item label="六 、改进建议:" prop="method" >
-              <el-input :disabled="title === '查看'" v-model="state.form.method" :rows="4" type="textarea" placeholder=""/>
+            <el-form-item label="六 、改进建议:" prop="suggest" >
+              <el-input :disabled="title === '查看'" v-model="state.form.suggest" :rows="4" type="textarea" placeholder=""/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="12">
-            <el-form-item label="部门:" prop="leadId" >
-              <el-select clearable v-model="state.form.leadId" :disabled="title =='查看'" filterable  style="width: 100%">
+            <el-form-item label="部门:" prop="dutyId" >
+              <el-select clearable v-model="state.form.dutyId" :disabled="title =='查看'" filterable  style="width: 100%">
                 <el-option
-                    v-for="item in state.userList"
-                    :key="item.id"
-                    :label="item.name"
-                    :value="item.id"
+                    v-for="item in state.deptList"
+                    :key="item.deptId"
+                    :label="item.deptName"
+                    :value="item.deptId"
                 />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="日期:" prop="leadTime" >
+            <el-form-item label="日期:" prop="dutyTime" >
               <el-date-picker
                   :disabled="title === '查看'"
-                  v-model="state.form.leadTime"
+                  v-model="state.form.dutyTime"
                   type="date"
                   placeholder="请选择日期"
+                  value-format="YYYY-MM-DD"
               />
             </el-form-item>
           </el-col>
@@ -141,6 +142,7 @@
 import TEditor from "@/components/Tinymce/Tinymce.vue";
 import axios from "axios";
 import {getToken} from "@/utils/auth";
+import {addEconomy, editEconomy} from "@/api/qualityFinancialAnalysis";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -154,34 +156,28 @@
 const state = reactive({
   form: {
     id: '',
-    year: '',
-    num: '',
-    type: '',
-    departId: '',
-    method: '',
-    compilationId:'',
-    compilationTime:'',
-    qualityId: '',
-    qualityTime:'',
-    leadId:'',
-    leadTime: '',
-    qualityTargets:[],
-
+    companyId: null,
+    year: "",
+    basic: "",
+    synthesize: "",
+    damage: "",
+    measure: "",
+    analysis: "",
+    suggest: "",
+    dutyId: null,
+    dutyTime: ""
   },
   rules: {
     companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
     year: [{ required: true, message: '请输入年份', trigger: 'blur' }],
-    num: [{ required: true, message: '请输入序号', trigger: 'blur' }],
-    type: [{ required: true, message: '请选择级别', trigger: 'blur' }],
-    method: [{ required: true, message: '请输入目标测量方法', trigger: 'blur' }],
-    compilationId: [{ required: true, message: '请选择编制人员', trigger: 'blur' }],
-    compilationTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
-    qualityId: [{ required: true, message: '请选择质量管理部人员', trigger: 'blur' }],
-    qualityTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
-    leadId: [{ required: true, message: '请选择公司分管领导', trigger: 'blur' }],
-    leadTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
-    departId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
-    objName: [{required: true, message: "质量目标不能为空", trigger: "blur"}],
+    basic: [{ required: true, message: '请输入基本情况', trigger: 'blur' }],
+    synthesize: [{ required: true, message: '请输入综合分析', trigger: 'blur' }],
+    damage: [{ required: true, message: '请输入内外部损失', trigger: 'blur' }],
+    measure: [{ required: true, message: '请输入纠正措施', trigger: 'blur' }],
+    analysis: [{ required: true, message: '请输入分析结果', trigger: 'blur' }],
+    suggest: [{ required: true, message: '请输入改进建议', trigger: 'blur' }],
+    dutyId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+    dutyTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
   },
   isAdmin: false,
   companyList: [],
@@ -209,16 +205,6 @@
       label: '2021'
     },
   ],
-  levelList: [
-    {
-      value: 1,
-      label: '公司级'
-    },
-    {
-      value: 2,
-      label: '部门级'
-    },
-  ]
 })
 
 const openDialog = async (type, value,companyList) => {
@@ -226,6 +212,7 @@
   state.isAdmin = userInfo.userType === 0;
   state.form.companyName = userInfo.companyName
   state.form.companyId = userInfo.companyId
+  state.form.year = new Date().getFullYear().toString()
   if(state.isAdmin){
     state.companyList = companyList
     state.form.companyId = null
@@ -234,10 +221,6 @@
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   if(type === 'edit' || type === 'review') {
     state.form = JSON.parse(JSON.stringify(value));
-    state.form.compilationBy = state.form.compilationId
-    state.form.leadBy = state.form.leadId
-    state.form.qualityBy = state.form.qualityId
-
     if(state.isAdmin){
       state.form.companyId = value.companyId
       state.form.companyName = value.companyName
@@ -250,13 +233,13 @@
     showEditor.value = true;
   }
   await getDeptList()
-  await   getPeopleList()
+  // await   getPeopleList()
   dialogVisible.value = true;
 }
-const addObject = () => {
-  state.form.qualityTargets.push({})
-}
 const getDeptList = async () => {
+  if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
+    return
+  }
   const param = {
     pageNum: 1,
     pageSize: 999,
@@ -268,46 +251,42 @@
   }
 }
 const onSubmit = async () => {
-  state.form.policy = tinyMCE.activeEditor.getContent();
-console.log('1',state.form.policy)
+  state.form.synthesize = tinyMCE.activeEditor.getContent();
+console.log('1',state.form.synthesize)
   const valid = await busRef.value.validate()
   if(valid){
-    // if(title.value === '新增'){
-    //   console.log('sta',state.form)
-    //   const {id, ...data} = JSON.parse(JSON.stringify(state.form))
-    //   const res = await addObjective(data)
-    //   if(res.code === 200){
-    //     ElMessage({
-    //       type: 'success',
-    //       message: '新增成功'
-    //     });
-    //   }else{
-    //     ElMessage.warning(res.message)
-    //   }
-    //   emit("getList")
-    //   busRef.value.clearValidate();
-    //   reset();
-    //   dialogVisible.value = false;
-    // }else if(title.value === '编辑'){
-    //   const {...data} = JSON.parse(JSON.stringify(state.form))
-    //   if(data.qualityTargets && data.qualityTargets.length == 0){
-    //     ElMessage.warning('请填写质量目标')
-    //     return
-    //   }
-    //   const res = await editObject(data)
-    //   if(res.code === 200){
-    //     ElMessage({
-    //       type: 'success',
-    //       message: '编辑成功'
-    //     });
-    //   }else{
-    //     ElMessage.warning(res.message)
-    //   }
-    //   emit("getList")
-    //   busRef.value.clearValidate();
-    //   reset();
-    //   dialogVisible.value = false;
-    // }
+    if(title.value === '新增'){
+      console.log('sta',state.form)
+      const {id, ...data} = JSON.parse(JSON.stringify(state.form))
+      const res = await addEconomy(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '新增成功'
+        });
+      }else{
+        ElMessage.warning(res.message)
+      }
+      emit("getList")
+      busRef.value.clearValidate();
+      reset();
+      dialogVisible.value = false;
+    }else if(title.value === '编辑'){
+      const {...data} = JSON.parse(JSON.stringify(state.form))
+      const res = await editEconomy(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '编辑成功'
+        });
+      }else{
+        ElMessage.warning(res.message)
+      }
+      emit("getList")
+      busRef.value.clearValidate();
+      reset();
+      dialogVisible.value = false;
+    }
   }
 }
 
@@ -321,52 +300,39 @@
 const reset = () => {
   state.form = {
     id: '',
-    year: '',
-    num: '',
-    type: '',
-    departId: '',
-    method: '',
-    compilationBy:'',
-    compilationTime:'',
-    qualityBy: '',
-    qualityTime:'',
-    leadBy:'',
-    leadTime: '',
-    qualityTargets:[],
+    companyId: null,
+    year: "",
+    basic: "",
+    synthesize: "",
+    damage: "",
+    measure: "",
+    analysis: "",
+    suggest: "",
+    dutyId: null,
+    dutyTime: ""
   }
   state.peopleList = []
   state.companyList = []
 
 }
-const handleDelete = (val) => {
-  state.form.qualityTargets = state.form.qualityTargets.filter(item=> item != val)
-}
-
-const getPeopleList = async ()=> {
-  if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
-    return
-  }
-  const queryParams = {
-    pageNum: 1,
-    pageSize: 9999,
-    companyId: state.form.companyId
-  }
-  const res = await getUser(queryParams)
-  if(res.code == 200){
-    state.userList = res.data.list?res.data.list:[]
-  }else{
-    ElMessage.warning(res.message)
-  }
-};
 
 
-const selectValue = (val) => {
-  state.peopleList.forEach(item => {
-    if(item.name === val){
-      state.form.compilationBy = item.id
-    }
-  })
-}
+// const getPeopleList = async ()=> {
+//   if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
+//     return
+//   }
+//   const queryParams = {
+//     pageNum: 1,
+//     pageSize: 9999,
+//     companyId: state.form.companyId
+//   }
+//   const res = await getUser(queryParams)
+//   if(res.code == 200){
+//     state.userList = res.data.list?res.data.list:[]
+//   }else{
+//     ElMessage.warning(res.message)
+//   }
+// };
 
 const handleChangeNum = (value) => {
   if (!/^\d+$/.test(value)) { // 验证是否为数字
@@ -377,83 +343,17 @@
   }
 }
 const selectValueCom = (val) => {
-  state.form.leadId = null
-  state.form.qualityId = null
-  state.form.compilationId = null
-  state.form.leadName = null
-  state.form.qualityName = null
-  state.form.compilationName = null
-  state.form.departId = null
+  state.form.dutyId = null
   state.companyList.forEach(item => {
     if(item.id === val){
       state.form.companyName = item.name
     }
   })
   getDeptList()
-  getPeopleList()
+  // getPeopleList()
 }
-const changeLevel = () => {
-  // state.form.companyName = ''
-  state.form.departId = null
-}
-const getCompanyList = async (val)=>{
-  if(val){
-    const queryParams = {
-      name: val
-    }
-    const res = await getCompany(queryParams)
-    if (res.code == 200) {
-      state.companyList = res.data.list
 
-    } else {
-      ElMessage.warning(res.message)
-    }
-  }else {
-    const queryParams = {
-      pageSize: 999,
-      pageNum: 1,
-    }
-    const res = await getCompany(queryParams)
-    if (res.code == 200) {
-      state.companyList = res.data.list
-    } else {
-      ElMessage.warning(res.message)
-    }
-  }
-}
-const showFile = (e) => {
-  if(e.target.nodeName === 'A'){
-    console.log("e",e)
-    e.preventDefault();
-    const file = {
-      fileUrl: e.target.href,
-      fileName: e.target.innerHTML
-    }
-    axios.get( file.fileUrl,{
-          headers:
-              {
-                'Content-Type': 'application/json',
-                'Authorization':getToken(),
-              },
-          responseType: 'blob'
-        }
-    ).then(res=>{
-      if (res) {
-        const link = document.createElement('a')
-        let blob = new Blob([res.data],{type: res.data.type})
-        link.style.display = "none";
-        link.href = URL.createObjectURL(blob); // 创建URL
-        link.setAttribute("download", file.fileName);
-        document.body.appendChild(link);
-        link.click();
-        document.body.removeChild(link);
-      } else {
-        this.$message.error('获取文件失败')
-      }
-      // handleClose();
-    })
-  }
-}
+
 defineExpose({
   openDialog
 });

--
Gitblit v1.9.2