From 293a5597a6823edc5c64372ec41b1024c9f87ee0 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 12 Sep 2024 16:04:03 +0800
Subject: [PATCH] fix: 责任单位修改

---
 src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue |  338 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 273 insertions(+), 65 deletions(-)

diff --git a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
index a1d1467..7430bde 100644
--- a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
@@ -1,120 +1,322 @@
 <template>
   <div>
-    <el-dialog :title="title" :visible.sync="visible" top="30px" width="900px" center :before-close="close">
-      <div slot="title" class="titBox">
+    <el-dialog
+      :title="title"
+      :visible.sync="visible"
+      top="30px"
+      width="900px"
+      center
+      :before-close="close"
+    >
+      <div
+        slot="title"
+        class="titBox"
+      >
         <div>{{ parentFormData.allocationNum }}</div>
         <div>{{ title }}</div>
       </div>
       <div>
-        <el-form ref="ruleForm" :disabled="pageState === 'detail'" label-width="120px" :model="formData" class="demo-form-inline" :rules="rules">
+        <el-form
+          ref="ruleForm"
+          :disabled="pageState === 'detail'"
+          label-width="120px"
+          :model="formData"
+          class="demo-form-inline"
+          :rules="rules"
+        >
           <el-row>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="escalationTime" class="span">
-                <el-date-picker v-model="formData.escalationTime" value-format="yyyy-MM-dd" size="small" type="date" placeholder="������������" />
+              <el-form-item
+                label="���������������"
+                prop="escalationTime"
+                class="span"
+              >
+                <el-date-picker
+                  v-model="formData.escalationTime"
+                  value-format="yyyy-MM-dd"
+                  size="small"
+                  type="date"
+                  placeholder="������������"
+                />
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="pollutePosition" class="span">
-                <el-input v-model="formData.pollutePosition" type="text" placeholder="���������" size="small" />
+              <el-form-item
+                label="���������������"
+                prop="pollutePosition"
+                class="span"
+              >
+                <!-- el-icon-map-location -->
+                <el-input
+                  v-model="formData.pollutePosition"
+                  type="text"
+                  placeholder="���������"
+                  size="small"
+                >
+                  <template
+                    slot="append"
+                  >
+                    <div
+                      style="line-height: 2;"
+                      @click="toMap()"
+                    >
+                      ������
+                    </div>
+                  </template>
+                </el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="unitId" class="span">
-                <el-select v-model="formData.unitId" placeholder="���������" size="small">
-                  <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+              <el-form-item
+                label="���������������"
+                prop="unitId"
+                class="span"
+              >
+                <el-select
+                  v-model="formData.unitId"
+                  placeholder="���������"
+                  size="small"
+                >
+                  <el-option
+                    v-for="item in unitList"
+                    :key="item.unitId"
+                    :label="item.unitName"
+                    :value="item.unitId"
+                  />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="polluteType" class="span">
-                <el-select v-model="formData.polluteType" placeholder="���������" size="small">
-                  <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
+              <el-form-item
+                label="���������������"
+                prop="polluteType"
+                class="span"
+              >
+                <el-select
+                  v-model="formData.polluteType"
+                  placeholder="���������"
+                  size="small"
+                >
+                  <el-option
+                    v-for="item in polluteList"
+                    :key="item.dataKey"
+                    :label="item.dataValue"
+                    :value="item.dataKey"
+                  />
                 </el-select>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="changeType" class="span">
-                <el-select v-model="formData.changeType" placeholder="���������" size="small" @change="changeEnumList">
-                  <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
+              <el-form-item
+                label="���������������"
+                prop="changeType"
+                class="span"
+              >
+                <el-select
+                  v-model="formData.changeType"
+                  placeholder="���������"
+                  size="small"
+                  @change="changeEnumList"
+                >
+                  <el-option
+                    v-for="item in Dic.changeEnum"
+                    :key="item.value"
+                    :label="item.name"
+                    :value="item.value"
+                  />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="changeDay" class="span">
-                <el-input-number v-model="formData.changeDay" :disabled="formData.changeType === 1" :min="0" label="���������" />
+              <el-form-item
+                label="���������������"
+                prop="changeDay"
+                class="span"
+              >
+                <el-input-number
+                  v-model="formData.changeDay"
+                  :disabled="formData.changeType === 1"
+                  :min="0"
+                  label="���������"
+                />
                 <!-- <el-input v-model.number="formData.changeDay" :disabled="formData.changeType===1" type="text" placeholder="���������" size="small" /> -->
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="12">
-              <el-form-item label="���������������" prop="escalationUnitId" class="span">
-                <el-select v-model="formData.escalationUnitId" placeholder="���������" size="small">
-                  <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+              <el-form-item
+                label="���������������"
+                prop="escalationUnitId"
+                class="span"
+              >
+                <el-select
+                  v-model="formData.escalationUnitId"
+                  placeholder="���������"
+                  size="small"
+                >
+                  <el-option
+                    v-for="item in unitList"
+                    :key="item.unitId"
+                    :label="item.unitName"
+                    :value="item.unitId"
+                  />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="������������" prop="escalationName" class="span">
-                <el-input v-model="formData.escalationName" type="text" placeholder="���������" size="small" />
+              <el-form-item
+                label="������������"
+                prop="escalationName"
+                class="span"
+              >
+                <el-input
+                  v-model="formData.escalationName"
+                  type="text"
+                  placeholder="���������"
+                  size="small"
+                />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
-              <el-form-item label="���������������" prop="investigationType" class="span">
-                <el-radio-group v-model="formData.investigationType" size="small">
-                  <el-radio v-for="item in Dic.investigationEnum" :key="item.value" :label="item.value">{{ item.name }}</el-radio>
+              <el-form-item
+                label="���������������"
+                prop="investigationType"
+                class="span"
+              >
+                <el-radio-group
+                  v-model="formData.investigationType"
+                  size="small"
+                >
+                  <el-radio
+                    v-for="item in Dic.investigationEnum"
+                    :key="item.value"
+                    :label="item.value"
+                  >
+                    {{ item.name }}
+                  </el-radio>
                 </el-radio-group>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
-              <el-form-item label="���������������" prop="keyPointlist" class="span">
-                <el-checkbox-group v-model="formData.keyPointlist" :max="1" size="small" @change='changeKeyPoint'>
-                  <el-checkbox v-for="item in Dic.emphasisEnum" :label="item.value" :key="item.value">{{ item.name }}</el-checkbox>
-                </el-checkbox-group>
+              <el-form-item
+                label="���������������"
+                prop="keyPointlist"
+                class="span"
+              >
+                <el-radio-group
+                  v-model="formData.keyPoint"
+                  size="small"
+                >
+                  <el-radio
+                    v-for="item in Dic.emphasisEnum"
+                    :key="item.value"
+                    :label="item.value"
+                  >
+                    {{ item.name }}
+                  </el-radio>
+                </el-radio-group>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
-            <el-form-item label="���������������" prop="problemDescribe" class="span">
-              <el-input v-model="formData.problemDescribe" type="textarea" :rows="4" placeholder="���������������" />
+            <el-form-item
+              label="���������������"
+              prop="problemDescribe"
+              class="span"
+            >
+              <el-input
+                v-model="formData.problemDescribe"
+                type="textarea"
+                :rows="4"
+                placeholder="���������������"
+              />
             </el-form-item>
           </el-row>
           <el-row>
             <el-form-item label="���������">
               <div>
                 <div v-if="pageState === 'edit'">
-                  <div v-for="(file, index) in fileBaseListCover" :key="file.fileId + index" class="block">
-                    <el-image v-if="file.fileType === 1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="
+                  <div
+                    v-for="(file, index) in fileBaseListCover"
+                    :key="file.fileId + index"
+                    class="block"
+                  >
+                    <el-image
+                      v-if="file.fileType === 1"
+                      style="width: 100px; height: 100px"
+                      :src="file.url"
+                      :preview-src-list="
                         getPreviewImages(file.fileId, fileBaseList)
-                      " :initial-index="index" />
-                    <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+                      "
+                      :initial-index="index"
+                    />
+                    <video
+                      v-else
+                      :src="file.url"
+                      style="width: 100px; height: 100px"
+                      @click="openVideo(file)"
+                    >
                       ������������������������ video ���������
                     </video>
                   </div>
                 </div>
               </div>
-              <uploadFile v-if="pageState !== 'detail'" :upload-url="uploadTermExcelUrl" :sys-code="sysCode" />
+              <uploadFile
+                v-if="pageState !== 'detail'"
+                :upload-url="uploadTermExcelUrl"
+                :sys-code="sysCode"
+              />
             </el-form-item>
           </el-row>
         </el-form>
       </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="close">������</el-button>
-        <el-button v-if="pageState !== 'detail'" type="info" @click="handleSubmit('9')">������</el-button>
-        <el-button v-if="pageState !== 'detail'" type="primary" @click="handleSubmit('10')">������</el-button>
+      <div
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button @click="close">
+          ������
+        </el-button>
+        <el-button
+          v-if="pageState !== 'detail'"
+          type="info"
+          @click="handleSubmit('9')"
+        >
+          ������
+        </el-button>
+        <el-button
+          v-if="pageState !== 'detail'"
+          type="primary"
+          @click="handleSubmit('10')"
+        >
+          ������
+        </el-button>
       </div>
     </el-dialog>
-    <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel">
+    <el-dialog
+      :visible.sync="videoVisible"
+      width="600px"
+      :modal-append-to-body="false"
+      :destroy-on-close="true"
+      @close="handleCancel"
+    >
       <div style="text-align: center">
-        <video ref="video" style="width: 300px; height: 500px" :src="dialogImageUrl" controls autoplay />
+        <video
+          ref="video"
+          style="width: 300px; height: 500px"
+          :src="dialogImageUrl"
+          controls
+          autoplay
+        />
       </div>
     </el-dialog>
   </div>
@@ -130,10 +332,11 @@
   props: {
     title: { type: String, default: '' },
     visible: { type: Boolean, required: true },
+    isToMap: { type: Boolean, required: true, default: false },
     pageState: { type: String, required: true, default: 'add' },
     parentFormData: { type: Object, default: () => {} }
   },
-  data() {
+  data () {
     return {
       videoVisible: false,
       formData: {
@@ -144,9 +347,10 @@
         escalationTime: new Date(),
         fileBaseList: [],
         escalationName: '',
-        keyPointlist: [],
+        keyPoint: 0,
         changeDay: 0,
-        investigationType: 1
+        investigationType: 1,
+        pollutePosition: ''
       },
       fileBaseList: [],
       fileBaseListCover: [],
@@ -188,13 +392,13 @@
     }
   },
   computed: {
-    uploadTermExcelUrl() {
+    uploadTermExcelUrl () {
       return `${requestObj.baseUrl}/file/upload`
     }
   },
   watch: {
     pageState: {
-      handler(newVal) {
+      handler (newVal) {
         if (this.pageState === 'edit') {
           if (
             this.parentFormData.fileBaseList &&
@@ -226,7 +430,7 @@
       immediate: true
     }
   },
-  async created() {
+  async created () {
     this.getUnitList()
 
     console.log('oldValue', this.parentFormData)
@@ -244,10 +448,13 @@
     })
   },
   methods: {
-    changeKeyPoint(data) {
+    toMap () {
+      this.$emit('update:isToMap', true)
+    },
+    changeKeyPoint (data) {
       this.$forceUpdate()
     },
-    getPreviewImages(index, list) {
+    getPreviewImages (index, list) {
       let startIndex = 0
       const chechList = _.cloneDeep(list)
       chechList.forEach((item, i) => {
@@ -266,22 +473,22 @@
       var remain = imgList.splice(0, startIndex)
       return start.concat(remain)
     },
-    openVideo(item) {
+    openVideo (item) {
       console.log('item', item)
       this.dialogImageUrl = item.url
       this.videoVisible = true
     },
-    handleCancel() {
+    handleCancel () {
       this.dialogImageUrl = ''
       this.videoVisible = false
     },
-    changeEnumList(val) {
+    changeEnumList (val) {
       if (val === 1) {
         this.formData.changeDay = 0
       }
     },
     // ������������������list
-    getUnitList() {
+    getUnitList () {
       this.$request({
         url: '/allocation/unit',
         method: 'get'
@@ -290,7 +497,7 @@
         this.getContaminateList()
       })
     },
-    getContaminateList() {
+    getContaminateList () {
       this.$request({
         url: '/allocation/contaminate',
         method: 'get'
@@ -299,9 +506,7 @@
         if (!(JSON.stringify(this.parentFormData) === '{}')) {
           this.formData = this.parentFormData
           this.formData.polluteType = String(this.parentFormData.polluteType)
-          this.formData.keyPointlist = this.parentFormData.keyPoint
-            ? [Number(this.parentFormData.keyPoint)]
-            : []
+          this.formData.keyPoint = Number(this.parentFormData.keyPoint)
         } else {
           const name = this.$store.state.user.name
           this.formData.escalationName = name
@@ -312,13 +517,13 @@
         }
       })
     },
-    close() {
+    close () {
       this.$nextTick(function () {
         this.$refs.ruleForm.resetFields()
       })
       this.$emit('update:visible', false)
     },
-    handleSubmit(val) {
+    handleSubmit (val) {
       console.log('this.formData', this.formData)
       if (this.fileBaseListCover && this.fileBaseListCover.length > 0) {
         this.fileBaseListCover.forEach(item => {
@@ -329,10 +534,7 @@
         })
       }
       this.formData.state = val
-      this.formData.keyPoint =
-        this.formData.keyPointlist.length > 0
-          ? this.formData.keyPointlist[0]
-          : ''
+
       this.$refs.ruleForm.validate(valid => {
         if (valid) {
           // this.formData.fileBaseList = [...this.parentFormData.fileBaseList, this.formData.fileBaseList]
@@ -391,4 +593,10 @@
 /deep/.el-checkbox__inner {
   border-radius: 50%;
 }
+/deep/.el-input-group__append {
+  width: 60px !important;
+  padding: 0;
+  text-align: center;
+  cursor: pointer;
+}
 </style>

--
Gitblit v1.8.0