From 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 27 五月 2025 17:25:38 +0800
Subject: [PATCH] 提交一把

---
 company/src/components/enterprise/onlineReporting.vue |  716 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 366 insertions(+), 350 deletions(-)

diff --git a/company/src/components/enterprise/onlineReporting.vue b/company/src/components/enterprise/onlineReporting.vue
index 221ffe6..3ac592d 100644
--- a/company/src/components/enterprise/onlineReporting.vue
+++ b/company/src/components/enterprise/onlineReporting.vue
@@ -407,360 +407,376 @@
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import upload from '@/components/common/upload'
-    import { saveSettleClaims } from '@/api/business/settleRisk'
-    import { findById } from '@/api/business/settleClaims'
-    import { findListByDTO } from '@/api/business/member'
-    import { findList } from '@/api/business/applyChange'
-    import { findTreeList } from '@/api/business/knowledge'
-    import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
-    import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
-    import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
-    import { mapState } from 'vuex'
-    export default {
-        name: 'onlineReporting',
-        extends: BaseOpera,
-        components: { GlobalWindow, upload, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
-        computed: {
-            ...mapState(['userInfo'])
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import upload from '@/components/common/upload'
+import { saveSettleClaims } from '@/api/business/settleRisk'
+import { findById } from '@/api/business/settleClaims'
+import { findListByDTO } from '@/api/business/member'
+import { findList } from '@/api/business/applyChange'
+import { findTreeList } from '@/api/business/knowledge'
+import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
+import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
+import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
+import { mapState } from 'vuex'
+export default {
+  name: 'onlineReporting',
+  extends: BaseOpera,
+  components: { GlobalWindow, upload, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
+  computed: {
+    ...mapState(['userInfo'])
+  },
+  data () {
+    return {
+      i: 0,
+      id: null,
+      statusList: [
+        {
+          name: '濉啓鍑洪櫓淇℃伅',
+          info: '瀹屾垚鎶ユ鍩虹淇℃伅濉啓'
         },
-        data () {
-            return {
-                i: 0,
-                id: null,
-                statusList: [
-                    {
-                        name: '濉啓鍑洪櫓淇℃伅',
-                        info: '瀹屾垚鎶ユ鍩虹淇℃伅濉啓'
-                    },
-                    {
-                        name: '涓婁紶鐞嗚禂鏉愭枡',
-                        info: '琛ュ厖闇�瑕佺悊璧旂殑鐩稿叧璧勬枡'
-                    },
-                    {
-                        name: '瀹屾垚鎶ユ',
-                        info: '鎻愪氦鎶ユ淇℃伅'
-                    }
-                ],
-                form: {
-                    id: null,
-                    memberId: '',
-                    idcardNo: '',
-                    insuranceApplyId: '',
-                    happenTime: '',
-                    hospital: '',
-                    area: [],
-                    areaId: '',
-                    address: '',
-                    areaInfo: '',
-                    content: '',
-                    type: 0,
-                    inHospital: 0,
-                    hurtType: 0,
-                    medicalInsurance: 0,
-                    reportFileList: [],
-                    informantName: '',
-                    informantPhone: '',
-
-                    relationFileList: [],
-                    outpatientFileList: [],
-                    hospitalFileList: [],
-                    disabilityFileList: [],
-                    otherFileList: [],
-
-                    applyDetailId: '',
-                    solutionId: '',
-                    worktypeId: '',
-                    duId: '',
-                    receiveBank: '',
-                    receiveUserName: '',
-                    receiveAccount: ''
-                },
-                rules: {
-                    receiveAccount: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    receiveUserName: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    receiveBank: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    memberId: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    idcardNo: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    happenTime: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    content: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    type: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    inHospital: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    hurtType: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    medicalInsurance: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    informantName: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    informantPhone: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                },
-                pickerOptions: {},
-                area: [],
-                user: [],
-                solutionList: []
-            }
+        {
+          name: '涓婁紶鐞嗚禂鏉愭枡',
+          info: '琛ュ厖闇�瑕佺悊璧旂殑鐩稿叧璧勬枡'
         },
-        created () {
-            this.config({
-                api: '/business/settleClaims',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            open (title, id) {
-                this.title = title
-                this.form.area = []
-                this.i = 0
-                this.solutionList = []
-                this.area = []
-                this.user = []
-                this.getUser()
-                this.getCityTree()
-                if (id) {
-                    findById(id)
-                        .then(res => {
-                            this.visible = true
-                            this.$nextTick(() => {
-                                for (const key in this.form) {
-                                    this.form[key] = res[key]
-                                }
-                                if (this.form.areaId) {
-                                    this.form.area = this.form.areaId.split(',').map(item => Number(item))
-                                }
-                                findList({ memberId: this.form.memberId })
-                                    .then(res1 => {
-                                        res1.forEach(item => {
-                                            if (item.id === res.applyDetailId) {
-                                                item.active = true
-                                                this.pickerOptions = {
-                                                    disabledDate(time) {
-                                                        return time.getTime() < new Date(item.parentStartTime).getTime() || time.getTime() > new Date(item.parentEndTime).getTime()
-                                                    }
-                                                };
-                                            } else {
-                                                item.active = false
-                                            }
-                                        })
-                                        this.solutionList = res1
-                                    })
-                            })
-                        })
-                } else {
-                    this.visible = true
-                    this.$nextTick(() => {
-                        this.$refs.form.resetFields()
-                        this.form.informantName = this.userInfo.realname
-                    })
-                }
-            },
-            continueReporting() {
-                this.i = 0
-                this.id = null
-                this.pickerOptions = {}
-                this.solutionList = []
-                this.form = {
-                    id: null,
-                    memberId: '',
-                    idcardNo: '',
-                    insuranceApplyId: '',
-                    happenTime: '',
-                    hospital: '',
-                    area: [],
-                    areaId: '',
-                    address: '',
-                    areaInfo: '',
-                    content: '',
-                    type: 0,
-                    inHospital: 0,
-                    hurtType: 0,
-                    medicalInsurance: 0,
-                    reportFileList: [],
-                    informantName: '',
-                    informantPhone: '',
-
-                    relationFileList: [],
-                    outpatientFileList: [],
-                    hospitalFileList: [],
-                    disabilityFileList: [],
-                    otherFileList: [],
-
-                    applyDetailId: '',
-                    solutionId: '',
-                    worktypeId: '',
-                    duId: '',
-                    receiveBank: '',
-                    receiveUserName: '',
-                    receiveAccount: ''
-                }
-            },
-            changeArea(e) {
-                if (!e && e.length === 0) {
-                    this.form.areaId = ''
-                    this.form.areaInfo = ''
-                } else {
-                    this.form.areaId = e.join(',')
-                    this.form.areaInfo = this.$refs.cascader.getCheckedNodes()[0].pathLabels.join(',')
-                }
-            },
-            async getCityTree() {
-                this.area = await findTreeList({})
-                this.setSecondLevelChildrenToNullPrecise(this.area);
-            },
-            setSecondLevelChildrenToNullPrecise(data, level = 1) {
-                if (!data || !data.length) return;
-
-                data.forEach(item => {
-                    if (item.childAreasList && item.childAreasList.length) {
-                        if (level === 2) {
-                            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
-                            item.childAreasList.forEach(child => {
-                                child.childAreasList = null;
-                            });
-                        } else {
-                            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
-                            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1);
-                        }
-                    }
-                });
-            },
-            getUser() {
-                findListByDTO({})
-                    .then(res => {
-                        this.user = res
-                    })
-            },
-            delFile(index, type) {
-                if (type === 1) {
-                    this.form.relationFileList.splice(index, 1)
-                } else if (type === 2) {
-                    this.form.outpatientFileList.splice(index, 1)
-                } else if (type === 3) {
-                    this.form.hospitalFileList.splice(index, 1)
-                } else if (type === 4) {
-                    this.form.disabilityFileList.splice(index, 1)
-                } else if (type === 5) {
-                    this.form.otherFileList.splice(index, 1)
-                } else if (type === 6) {
-                    this.form.reportFileList.splice(index, 1)
-                }
-            },
-            claimsUploadFile(file, type) {
-                file.fileurl = file.imgaddr
-                file.name = file.originname
-                file.fileurlFull = file.url
-                if (type === 1) {
-                    this.form.relationFileList.push(file)
-                } else if (type === 2) {
-                    this.form.outpatientFileList.push(file)
-                } else if (type === 3) {
-                    this.form.hospitalFileList.push(file)
-                } else if (type === 4) {
-                    this.form.disabilityFileList.push(file)
-                } else if (type === 5) {
-                    this.form.otherFileList.push(file)
-                } else if (type === 6) {
-                    this.form.reportFileList.push(file)
-                }
-            },
-            getSolutions(id) {
-                let row = this.user.filter(item => item.id === id)
-                this.form.idcardNo = row[0].idcardNo
-                findList({ memberId: id })
-                    .then(res => {
-                        this.form.insuranceApplyId = ''
-                        res.forEach(item => {
-                            item.active = false
-                        })
-                        this.solutionList = res
-                    })
-            },
-            changeSolution(e, i) {
-                this.solutionList.forEach((item, index) => {
-                    item.active = i === index
-                })
-                let obj = this.solutionList.filter(item => item.active)[0]
-                this.form.insuranceApplyId = obj.applyId
-                this.form.solutionId = obj.solutionId
-                this.form.worktypeId = obj.worktypeId
-                this.form.duId = obj.duId
-                this.form.applyDetailId = obj.id
-                this.form.happenTime = ''
-                this.pickerOptions = {
-                    disabledDate(time) {
-                        return time.getTime() < new Date(obj.parentStartTime).getTime() || time.getTime() > new Date(obj.parentEndTime).getTime()
-                    }
-                };
-            },
-            // 鏌ョ湅淇濆崟璇︽儏
-            jumpSolutionDetail(id, solutionType) {
-                if (solutionType === 1) {
-                    this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: id })
-                } else {
-                    this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: id })
-                }
-            },
-            confirm(saveType) {
-                this.isWorking = true
-                saveSettleClaims({...this.form, saveType})
-                    .then(res => {
-                        console.log(res)
-                        if (saveType === 0) {
-                            this.visible = false
-                        } else {
-                            this.id = res
-                            this.i = 2
-                        }
-                        this.$emit('success')
-                    })
-                    .finally(() => {
-                        this.isWorking = false
-                    })
-            },
-            next() {
-                this.$refs.form.validate((valid) => {
-                    if (!valid) return
-                    this.i++
-                    // this.isWorking = true
-                    // createSys(obj)
-                    //     .then(() => {
-                    //         this.visible = false
-                    //         this.$emit('success')
-                    //     })
-                    //     .catch(e => {
-                    //         this.$tip.apiFailed(e)
-                    //     })
-                    //     .finally(() => {
-                    //         this.isWorking = false
-                    //     })
-                })
-            }
+        {
+          name: '瀹屾垚鎶ユ',
+          info: '鎻愪氦鎶ユ淇℃伅'
         }
+      ],
+      form: {
+        id: null,
+        memberId: '',
+        idcardNo: '',
+        insuranceApplyId: '',
+        happenTime: '',
+        hospital: '',
+        area: [],
+        areaId: '',
+        address: '',
+        areaInfo: '',
+        content: '',
+        type: 0,
+        inHospital: 0,
+        hurtType: 0,
+        medicalInsurance: 0,
+        reportFileList: [],
+        informantName: '',
+        informantPhone: '',
+
+        relationFileList: [],
+        outpatientFileList: [],
+        hospitalFileList: [],
+        disabilityFileList: [],
+        otherFileList: [],
+
+        applyDetailId: '',
+        solutionId: '',
+        worktypeId: '',
+        duId: '',
+        receiveBank: '',
+        receiveUserName: '',
+        receiveAccount: ''
+      },
+      rules: {
+        receiveAccount: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        receiveUserName: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        receiveBank: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        memberId: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        idcardNo: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        happenTime: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        content: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        type: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        inHospital: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        hurtType: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        medicalInsurance: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        informantName: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        informantPhone: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ]
+      },
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now(); // 绂佺敤鏈潵鐨勬棩鏈�
+        }
+      },
+      area: [],
+      user: [],
+      solutionList: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/settleClaims',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    open (title, id) {
+      this.title = title
+      this.form.area = []
+      this.i = 0
+      this.solutionList = []
+      this.area = []
+      this.user = []
+      this.getUser()
+      this.getCityTree()
+      if (id) {
+        findById(id)
+          .then(res => {
+            this.visible = true
+            this.$nextTick(() => {
+              for (const key in this.form) {
+                this.form[key] = res[key]
+              }
+              if (this.form.areaId) {
+                this.form.area = this.form.areaId.split(',').map(item => Number(item))
+              }
+              findList({ memberId: this.form.memberId })
+                .then(res1 => {
+                  res1.forEach(item => {
+                    if (item.id === res.applyDetailId) {
+                      item.active = true
+                      this.pickerOptions = {
+                        disabledDate (time) {
+                          var start = new Date(item.startTime)
+                          var end = new Date(item.endTime)
+                          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+                        }
+                      }
+                    } else {
+                      item.active = false
+                    }
+                  })
+                  this.solutionList = res1
+                })
+            })
+          })
+      } else {
+        this.visible = true
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form.informantName = this.userInfo.realname
+        })
+      }
+    },
+    continueReporting () {
+      this.i = 0
+      this.id = null
+      this.pickerOptions = {}
+      this.solutionList = []
+      this.form = {
+        id: null,
+        memberId: '',
+        idcardNo: '',
+        insuranceApplyId: '',
+        happenTime: '',
+        hospital: '',
+        area: [],
+        areaId: '',
+        address: '',
+        areaInfo: '',
+        content: '',
+        type: 0,
+        inHospital: 0,
+        hurtType: 0,
+        medicalInsurance: 0,
+        reportFileList: [],
+        informantName: '',
+        informantPhone: '',
+
+        relationFileList: [],
+        outpatientFileList: [],
+        hospitalFileList: [],
+        disabilityFileList: [],
+        otherFileList: [],
+
+        applyDetailId: '',
+        solutionId: '',
+        worktypeId: '',
+        duId: '',
+        receiveBank: '',
+        receiveUserName: '',
+        receiveAccount: ''
+      }
+    },
+    changeArea (e) {
+      if (!e && e.length === 0) {
+        this.form.areaId = ''
+        this.form.areaInfo = ''
+      } else {
+        this.form.areaId = e.join(',')
+        this.form.areaInfo = this.$refs.cascader.getCheckedNodes()[0].pathLabels.join(',')
+      }
+    },
+    async getCityTree () {
+      this.area = await findTreeList({})
+      this.setSecondLevelChildrenToNullPrecise(this.area)
+    },
+    setSecondLevelChildrenToNullPrecise (data, level = 1) {
+      if (!data || !data.length) return
+
+      data.forEach(item => {
+        if (item.childAreasList && item.childAreasList.length) {
+          if (level === 2) {
+            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
+            item.childAreasList.forEach(child => {
+              child.childAreasList = null
+            })
+          } else {
+            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
+            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1)
+          }
+        }
+      })
+    },
+    getUser () {
+      findListByDTO({})
+        .then(res => {
+          this.user = res
+        })
+    },
+    delFile (index, type) {
+      if (type === 1) {
+        this.form.relationFileList.splice(index, 1)
+      } else if (type === 2) {
+        this.form.outpatientFileList.splice(index, 1)
+      } else if (type === 3) {
+        this.form.hospitalFileList.splice(index, 1)
+      } else if (type === 4) {
+        this.form.disabilityFileList.splice(index, 1)
+      } else if (type === 5) {
+        this.form.otherFileList.splice(index, 1)
+      } else if (type === 6) {
+        this.form.reportFileList.splice(index, 1)
+      }
+    },
+    claimsUploadFile (file, type) {
+      file.fileurl = file.imgaddr
+      file.name = file.originname
+      file.fileurlFull = file.url
+      if (type === 1) {
+        this.form.relationFileList.push(file)
+      } else if (type === 2) {
+        this.form.outpatientFileList.push(file)
+      } else if (type === 3) {
+        this.form.hospitalFileList.push(file)
+      } else if (type === 4) {
+        this.form.disabilityFileList.push(file)
+      } else if (type === 5) {
+        this.form.otherFileList.push(file)
+      } else if (type === 6) {
+        this.form.reportFileList.push(file)
+      }
+    },
+    getSolutions (id) {
+      const row = this.user.filter(item => item.id === id)
+      this.form.idcardNo = row[0].idcardNo
+      findList({ memberId: id })
+        .then(res => {
+          this.form.insuranceApplyId = ''
+          res.forEach(item=> {
+              item.active = false
+          })
+          this.solutionList = res
+          this.changeSolution(null,0)
+        })
+    },
+    changeSolution (e, i) {
+      this.pickerOptions = {}
+      if(this.solutionList.length < i){
+        return
+      }
+      this.solutionList.forEach((item, index) => {
+        item.active = i === index
+      })
+      const obj = this.solutionList.filter(item => item.active)[0]
+      this.pickerOptions = {
+        disabledDate (time) {
+          var start = new Date(obj.startTime)
+          var end = new Date(obj.endTime)
+          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+        }
+      }
+      this.form.insuranceApplyId = obj.applyId
+      this.form.solutionId = obj.solutionId
+      this.form.worktypeId = obj.worktypeId
+      this.form.duId = obj.duId
+      this.form.applyDetailId = obj.id
+      this.form.happenTime = obj.startTime
+      console.log(this.pickerOptions)
+    },
+    // 鏌ョ湅淇濆崟璇︽儏
+    jumpSolutionDetail (id, solutionType) {
+      if (solutionType === 1) {
+        this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: id })
+      } else {
+        this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: id })
+      }
+    },
+    confirm (saveType) {
+      this.isWorking = true
+      saveSettleClaims({ ...this.form, saveType })
+        .then(res => {
+          console.log(res)
+          if (saveType === 0) {
+            this.visible = false
+          } else {
+            this.id = res
+            this.i = 2
+          }
+          this.$emit('success')
+        }).catch(err => {
+            this.$tip.apiFailed(err)
+         })
+        .finally(() => {
+          this.isWorking = false
+        })
+    },
+    next () {
+      this.$refs.form.validate((valid) => {
+        if (!valid) return
+        this.i++
+        // this.isWorking = true
+        // createSys(obj)
+        //     .then(() => {
+        //         this.visible = false
+        //         this.$emit('success')
+        //     })
+        //     .catch(e => {
+        //         this.$tip.apiFailed(e)
+        //     })
+        //     .finally(() => {
+        //         this.isWorking = false
+        //     })
+      })
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.3