From 6d30245f99b794221528a035f095b215da5c3173 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 05 Jan 2024 17:51:12 +0800
Subject: [PATCH] 走访人员新增字段调整

---
 src/views/cGovernance/gridWorkLog.vue |  248 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 208 insertions(+), 40 deletions(-)

diff --git a/src/views/cGovernance/gridWorkLog.vue b/src/views/cGovernance/gridWorkLog.vue
index 703165d..6b87ba5 100644
--- a/src/views/cGovernance/gridWorkLog.vue
+++ b/src/views/cGovernance/gridWorkLog.vue
@@ -17,11 +17,12 @@
 
 <script>
 import { getList, remove, update, add, getGridWorkLog } from "@/api/grid/gridWorkLog"
+import { getList as getHouseholdList, getDetatils as getHouseholdDetail } from "@/api/userHouse/list/houseHold"
 import { mapGetters } from "vuex"
 import website from '@/config/website'
 
 export default {
-    data () {
+    data() {
         return {
             form: {},
             query: {},
@@ -40,7 +41,7 @@
                 tip: false,
                 searchShow: true,
                 searchMenuSpan: 3,
-                menuWidth: 350,
+                menuWidth: 280,
                 border: false,
                 //stripe:true,
                 index: true,
@@ -50,9 +51,38 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        label: "走访人员姓名",
-                        prop: "name",
+                        label: "走访类型",
+                        prop: "type",
                         span: 12,
+                        labelWidth: 120,
+                        searchLabelWidth: 120,
+                        searchSpan: 4,
+                        search: true,
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=haveType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择走访类型",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "重点人员类型",
+                        prop: "personType",
+                        span: 12,
+                        type: "tree",
+                        dicUrl: "/api/blade-label/label/getLabelList?parentId=100",
+                        props: {
+                            label: "name",
+                            value: "id"
+                        },
                         labelWidth: 120,
                         searchLabelWidth: 120,
                         searchSpan: 5,
@@ -60,19 +90,157 @@
                         rules: [
                             {
                                 required: true,
-                                message: "请输入走访人员姓名",
+                                message: "请选择重点人员类型",
                                 trigger: "blur",
                             },
                         ],
                     },
+                    // {
+                    //     label: "人员姓名",
+                    //     prop: "name",
+                    //     span: 12,
+                    //     labelWidth: 120,
+                    //     searchSpan: 4,
+                    //     search: true,
+                    //     rules: [
+                    //         {
+                    //             required: true,
+                    //             message: "请输入人员姓名",
+                    //             trigger: "blur",
+                    //         },
+                    //     ],
+                    // },
                     {
-                        label: "走访人员电话",
-                        prop: "phone",
+                        label: "人员姓名",
+                        prop: "householdId",
+                        hide: true,
+                        type: "table",
                         span: 12,
                         labelWidth: 120,
-                        searchLabelWidth: 120,
-                        searchSpan: 5,
+                        searchSpan: 4,
                         search: true,
+                        children: {
+                            border: true,
+                            height: 400,
+                            searchShow: true,
+                            searchMenuSpan: 6,
+                            submitText: "确定",
+                            column: [
+                                {
+                                    label: "姓名",
+                                    prop: "name",
+                                    search: true,
+                                    searchSpan: 4,
+                                    rules: [
+                                        {
+                                            required: true,
+                                            message: "请输入姓名",
+                                            trigger: "blur",
+                                        },
+                                    ],
+                                },
+                                {
+                                    label: "联系方式",
+                                    prop: "phoneNumber",
+                                    search: true,
+                                    searchSpan: 4,
+                                    rules: [
+                                        {
+                                            required: true,
+                                            message: "请输入联系方式",
+                                            trigger: "blur",
+                                        },
+                                    ],
+                                },
+                                {
+                                    label: "地址",
+                                    search: true,
+                                    searchSpan: 8,
+                                    prop: "currentAddress",
+                                    display: false
+                                },
+                            ],
+                        },
+                        page: {
+                            pageSize: 10,
+                            currentPage: 1,
+                            total: 0
+                        },
+                        formatter: (row) => {
+                            this.form.phoneNumber = row.phoneNumber
+                            return row.name
+                        },
+                        onLoad: ({
+                            page,
+                            value,
+                            data
+                        }, callback) => {
+                            //首次加载去查询对应的值
+                            if (value) {
+                                getHouseholdDetail(value).then(res => {
+                                    var resData = res.data.data
+                                    // 查询对应行数据
+                                    callback(resData)
+                                    return
+                                })
+                            }
+                            if (page) {
+                                this.loading = true
+                                var params = {
+                                    ...data,
+                                    townStreetCode: "361102005"
+                                }
+                                getHouseholdList(page.currentPage, page.pageSize, Object.assign(params)).then(res => {
+                                    const resData = res.data.data
+                                    var total = resData.total
+                                    var data = resData.records
+                                    this.loading = false
+                                    this.selectionClear()
+                                    //分页查询信息
+                                    callback({
+                                        total: total,
+                                        data: data
+                                    })
+                                })
+                            }
+                        },
+                        props: {
+                            label: 'name',
+                            value: 'id'
+                        }
+                    },
+                    {
+                        label: "联系方式",
+                        prop: "phone",
+                        span: 12,
+                        disabled: true,
+                        labelWidth: 120,
+                        searchSpan: 4,
+                        search: true,
+                    },
+                    {
+                        label: "走访地址",
+                        prop: "address",
+                        span: 24,
+                        labelWidth: 120,
+                        disabled: true,
+                    },
+                    {
+                        label: "走访时间",
+                        prop: "workTime",
+                        width: 160,
+                        labelWidth: 120,
+                        searchLabelWidth: 120,
+                        type: "date",
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入走访时间",
+                                trigger: "blur",
+                            },
+                        ],
                     },
                     {
                         label: "内容",
@@ -82,7 +250,7 @@
                         span: 24,
                     },
                     {
-                        label: "图片",
+                        label: "走访取证",
                         prop: "url",
                         type: "upload",
                         labelWidth: 120,
@@ -95,21 +263,6 @@
                             url: "link",
                         },
                         span: 24,
-                    },
-                    {
-                        label: "走访时间",
-                        prop: "workTime",
-                        width: 160,
-                        type: "date",
-                        format: "yyyy-MM-dd HH:mm:ss",
-                        valueFormat: "yyyy-MM-dd HH:mm:ss",
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入走访时间",
-                                trigger: "blur",
-                            },
-                        ],
                     }
                 ],
             },
@@ -117,10 +270,25 @@
         }
     },
     watch: {
+        "form.householdId": {
+            // form是表单或者表格绑定的数据集,v-model='form'
+            handler(val) {
+                this.$nextTick(()=>{
+                console.log(this.$refs,66666)
+                getHouseholdDetail(val).then(res => {
+                    const data = res.data.data;
+                    this.form.phoneNumber = data.phoneNumber
+                    this.form.currentAddress = data.currentAddress
+                })
+                })
+                
+            },
+            immediate: true,
+        },
     },
     computed: {
         ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
+        permissionList() {
             return {
                 addBtn: this.vaildData(this.permission.gridWorkLog_add, true),
                 viewBtn: this.vaildData(this.permission.gridWorkLog_view, true),
@@ -128,7 +296,7 @@
                 editBtn: this.vaildData(this.permission.gridWorkLog_edit, true),
             }
         },
-        ids () {
+        ids() {
             let ids = []
             this.selectionList.forEach((ele) => {
                 ids.push(ele.id)
@@ -137,7 +305,7 @@
         },
     },
     methods: {
-        rowSave (row, done, loading) {
+        rowSave(row, done, loading) {
             if (row.url.length > 0) {
                 var urls = []
                 var split = row.url.split(",")
@@ -162,7 +330,7 @@
                 }
             )
         },
-        rowUpdate (row, index, done, loading) {
+        rowUpdate(row, index, done, loading) {
             if (row.url.length > 0) {
                 var urls = []
                 var split = row.url.split(",")
@@ -187,7 +355,7 @@
                 }
             )
         },
-        rowDel (row) {
+        rowDel(row) {
             this.$confirm("确定将选择数据删除?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
@@ -204,24 +372,24 @@
                     })
                 })
         },
-        searchReset () {
+        searchReset() {
             this.query = {}
             this.onLoad(this.page)
         },
-        searchChange (params, done) {
+        searchChange(params, done) {
             this.query = params
             this.page.currentPage = 1
             this.onLoad(this.page, params)
             done()
         },
-        selectionChange (list) {
+        selectionChange(list) {
             this.selectionList = list
         },
-        selectionClear () {
+        selectionClear() {
             this.selectionList = []
             this.$refs.crud.toggleSelection()
         },
-        handleDelete () {
+        handleDelete() {
             if (this.selectionList.length === 0) {
                 this.$message.warning("请选择至少一条数据")
                 return
@@ -243,7 +411,7 @@
                     this.$refs.crud.toggleSelection()
                 })
         },
-        beforeOpen (done, type) {
+        beforeOpen(done, type) {
             if (["edit", "view"].includes(type)) {
                 getGridWorkLog(this.form.id).then((res) => {
                     this.form = res.data.data
@@ -260,16 +428,16 @@
             // con
             done()
         },
-        currentChange (currentPage) {
+        currentChange(currentPage) {
             this.page.currentPage = currentPage
         },
-        sizeChange (pageSize) {
+        sizeChange(pageSize) {
             this.page.pageSize = pageSize
         },
-        refreshChange () {
+        refreshChange() {
             this.onLoad(this.page, this.query)
         },
-        onLoad (page, params = {}) {
+        onLoad(page, params = {}) {
             const { dateTime } = this.query
             let values = {
                 ...params,

--
Gitblit v1.9.3