PC 6 miesięcy temu
rodzic
commit
e7876490b9
35 zmienionych plików z 1959 dodań i 454 usunięć
  1. 16 12
      src/api/fwbzdz/fwbzdz.js
  2. 44 0
      src/api/fwbzdz/sydw.js
  3. 36 0
      src/api/fwbzdz/syfw.js
  4. 10 0
      src/img/fwbzdz/pic_data_nothing.svg
  5. 8 47
      src/option/ybss/sydw.js
  6. 7 49
      src/option/ybss/syfw.js
  7. 5 1
      src/styles/element-ui.scss
  8. 8 0
      src/styles/public/button-style.scss
  9. 62 0
      src/styles/public/form-style.scss
  10. 180 4
      src/views/ybss/components/DwBaseEdit.vue
  11. 104 19
      src/views/ybss/components/DwBaseForm.vue
  12. 124 0
      src/views/ybss/components/DwBwBossEdit.vue
  13. 86 2
      src/views/ybss/components/DwBwBossForm.vue
  14. 129 0
      src/views/ybss/components/DwDwbossEdit.vue
  15. 91 7
      src/views/ybss/components/DwDwbossForm.vue
  16. 132 0
      src/views/ybss/components/DwFrEdit.vue
  17. 91 7
      src/views/ybss/components/DwFrForm.vue
  18. 17 9
      src/views/ybss/fwbzdz/bzdzxq.vue
  19. 58 45
      src/views/ybss/fwbzdz/components/AddSyfw.vue
  20. 17 13
      src/views/ybss/fwbzdz/components/DetailSydw.vue
  21. 43 26
      src/views/ybss/fwbzdz/components/DetailSyfw.vue
  22. 369 0
      src/views/ybss/fwbzdz/components/FzDialog.vue
  23. 46 0
      src/views/ybss/fwbzdz/components/NoData.vue
  24. 126 0
      src/views/ybss/fwbzdz/components/ZxDialog.vue
  25. 0 9
      src/views/ybss/fwbzdz/fwbzdz.vue
  26. 6 1
      src/views/ybss/fwbzdz/index.vue
  27. 2 1
      src/views/ybss/style/formnoedit.scss
  28. 70 7
      src/views/ybss/sydw/components/AddSydwDialog.vue
  29. 5 5
      src/views/ybss/sydw/components/Cyry.vue
  30. 35 109
      src/views/ybss/sydw/components/DetailDwxx.vue
  31. 0 70
      src/views/ybss/sydw/components/Frxx.vue
  32. 5 2
      src/views/ybss/sydw/sydw.vue
  33. 14 3
      src/views/ybss/sydw/sydwxq.vue
  34. 11 4
      src/views/ybss/syfw/syfw.vue
  35. 2 2
      src/views/ybss/syrk/components/edit.vue

+ 16 - 12
src/api/fwbzdz/fwbzdz.js

@@ -118,7 +118,7 @@ export const dictionaryList = () => {
 
 
 export const saveFwAndFz = (form) => {
 export const saveFwAndFz = (form) => {
   return request({
   return request({
-    url: '/api/bzdz/api/saveFwAndFz',
+    url: '/bzdz/api/saveFwAndFz',
     method: 'post',
     method: 'post',
     data: form
     data: form
   })
   })
@@ -141,7 +141,7 @@ export const putfile = (row) => {
   })
   })
 }
 }
 
 
-
+// 根据 标准地址 查询 房屋
 export const bzdzDetail = (dzbm) => {
 export const bzdzDetail = (dzbm) => {
   return request({
   return request({
     url: '/api/bzdz/api/Detail',
     url: '/api/bzdz/api/Detail',
@@ -152,6 +152,17 @@ export const bzdzDetail = (dzbm) => {
   });
   });
 };
 };
 
 
+// 根据 标准地址 查询 房主
+export const bzdzSyrkDetail = (dzbm) => {
+  return request({
+    url: '/api/bzdz/api/syrkDetail',
+    method: 'get',
+    params: {
+      dzbm
+    }
+  });
+};
+
 // 实有单位列表
 // 实有单位列表
 export const getsydwList = (current, size, params) => {
 export const getsydwList = (current, size, params) => {
   return request({
   return request({
@@ -170,15 +181,8 @@ export const sydwDetailBybzdz = (params) => {
   return request({
   return request({
     url: '/bzdz/api/sydwDetail',
     url: '/bzdz/api/sydwDetail',
     method: 'get',
     method: 'get',
-    params
-  })
-}
-
-// 实有单位列表查询实有单位详情
-export const sydwDetailBysydwid = (params) => {
-  return request({
-    url: '/sydw/api/detail',
-    method: 'get',
-    params
+    params: {
+      ...params
+    }
   })
   })
 }
 }

+ 44 - 0
src/api/fwbzdz/sydw.js

@@ -0,0 +1,44 @@
+import request from '@/router/axios';
+
+// ops
+export const dictionaryList = () => {
+    return request({
+        url: '/blade-system/dict-biz/dictionaryList',
+        method: 'get',
+    })
+}
+
+// 单位地址 op
+export const dwDz = () => {
+    return request({
+        url: '/sydw/api/dwDz',
+        method: 'get',
+    })
+}
+
+// 实有单位新增
+export const sydwSave = (form) => {
+    return request({
+        url: '/bzdz/api/sydwSave',
+        method: 'post',
+        data: form
+    })
+}
+
+// 实有单位列表查询实有单位详情
+export const sydwDetailBysydwid = (params) => {
+    return request({
+        url: '/sydw/api/detail',
+        method: 'get',
+        params
+    })
+}
+
+// 实有单位修改
+export const update = (form) => {
+    return request({
+        url: '/sydw/api/update',
+        method: 'post',
+        data: form
+    })
+}

+ 36 - 0
src/api/fwbzdz/syfw.js

@@ -0,0 +1,36 @@
+import request from '@/router/axios';
+
+export const saveFwAndFz = (form) => {
+    return request({
+        url: '/bzdz/api/saveFwAndFz',
+        method: 'post',
+        data: form
+    })
+}
+
+// 修改房主
+export const fzUpdate = (form) => {
+    return request({
+        url: '/bzdz/api/fzUpdate',
+        method: 'post',
+        data: form
+    })
+}
+
+// 注销房主
+export const fzzx = (form) => {
+    return request({
+        url: '/bzdz/api/fzzx',
+        method: 'post',
+        data: form
+    })
+}
+
+// 新增注销后的房主
+export const saveFz = (form) => {
+    return request({
+        url: '/bzdz/api/saveFz',
+        method: 'post',
+        data: form
+    })
+}

Plik diff jest za duży
+ 10 - 0
src/img/fwbzdz/pic_data_nothing.svg


+ 8 - 47
src/option/ybss/sydw.js

@@ -9,54 +9,15 @@ export default {
     menuWidth: 150,
     menuWidth: 150,
     dialogWidth: 900,
     dialogWidth: 900,
     column: [
     column: [
+        { label: '单位名称', prop: 'dwmc', searchSpan: 5, search: true },
+        { label: '社会统一代码', prop: 'tyshxydm', searchSpan: 5, search: true, width: 110, searchLabelWidth: 110 },
         {
         {
-            label: '详细地址',
-            prop: 'xz',
-            searchSpan: 6,
-            search: true
+            label: '单位类型', prop: 'fwMj', type: 'select',
+            dicUrl: "/api/blade-system/dict-biz/dictionaryList?code=dwlb",
+            props: { label: "label", value: "label" },
+            searchSpan: 5, search: true
         },
         },
-        {
-            label: '房屋特点',
-            prop: 'fwtd',
-            searchSpan: 6,
-            search: true
-        },
-        {
-            label: '户内面积',
-            prop: 'fwMj',
-        },
-        {
-            label: '户内间数',
-            prop: 'fwJs',
-            searchSpan: 6,
-            search: true
-        },
-        {
-            label: '房主是否在此居住',
-            prop: 'fzSfzh',
-        },
-        {
-            label: '房主姓名',
-            prop: 'fzXm',
-        },
-        {
-            label: '联系电话',
-            prop: 'fzDh',
-        },
-        // {
-        //     label: "流程分类",
-        //     type: "select",
-        //     row: true,
-        //     dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-        //     props: {
-        //         label: "dictValue",
-        //         value: "dictKey"
-        //     },
-        //     dataType: "number",
-        //     slot: true,
-        //     prop: "category",
-        //     search: true,
-        //     width: 100,
-        // },
+        { label: '从业人员', prop: 'cyry' },
+        { label: '详细地址', prop: 'xz', searchSpan: 7, search: true, width: 300 }
     ]
     ]
 }
 }

+ 7 - 49
src/option/ybss/syfw.js

@@ -9,54 +9,12 @@ export default {
     menuWidth: 150,
     menuWidth: 150,
     dialogWidth: 900,
     dialogWidth: 900,
     column: [
     column: [
-        {
-            label: '详细地址',
-            prop: 'xz',
-            searchSpan: 6,
-            search: true
-        },
-        {
-            label: '房屋特点',
-            prop: 'fwtd',
-            searchSpan: 6,
-            search: true
-        },
-        {
-            label: '户内面积',
-            prop: 'fwMj',
-        },
-        {
-            label: '户内间数',
-            prop: 'fwJs',
-            searchSpan: 6,
-            search: true
-        },
-        {
-            label: '房主是否在此居住',
-            prop: 'fzSfzh',
-        },
-        {
-            label: '房主姓名',
-            prop: 'fzXm',
-        },
-        {
-            label: '联系电话',
-            prop: 'fzDh',
-        },
-        // {
-        //     label: "流程分类",
-        //     type: "select",
-        //     row: true,
-        //     dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-        //     props: {
-        //         label: "dictValue",
-        //         value: "dictKey"
-        //     },
-        //     dataType: "number",
-        //     slot: true,
-        //     prop: "category",
-        //     search: true,
-        //     width: 100,
-        // },
+        { label: '详细地址', prop: 'xz', searchSpan: 6, search: true, width: 300 },
+        { label: '房屋特点', prop: 'fwtd', searchSpan: 6, search: true, width: 200 },
+        { label: '户内面积', prop: 'fwMj', },
+        { label: '户内间数', prop: 'fwJs', searchSpan: 6, search: true },
+        { label: '房主是否在此居住', prop: 'fzSfzh', width: 160 },
+        { label: '房主姓名', prop: 'fzXm', },
+        { label: '联系电话', prop: 'fzDh', },
     ]
     ]
 }
 }

+ 5 - 1
src/styles/element-ui.scss

@@ -241,7 +241,11 @@
 // 弹窗
 // 弹窗
 .el-dialog__header {
 .el-dialog__header {
   .el-dialog__title {
   .el-dialog__title {
-    font-weight: 500;
+    font-weight: 600;
     color: rgba(4, 8, 20, 0.9);
     color: rgba(4, 8, 20, 0.9);
   }
   }
+}
+
+.el-dialog{
+  border-radius: 16px;
 }
 }

+ 8 - 0
src/styles/public/button-style.scss

@@ -2,6 +2,10 @@
   background-color: rgba(16, 109, 255, 1);
   background-color: rgba(16, 109, 255, 1);
   color: rgba(255, 255, 255, 1);
   color: rgba(255, 255, 255, 1);
   border: none;
   border: none;
+
+  button {
+    border-radius: 16px;
+  }
 }
 }
 
 
 .btn_primary:active {
 .btn_primary:active {
@@ -12,6 +16,10 @@
   background-color: rgba(255, 255, 255, 1);
   background-color: rgba(255, 255, 255, 1);
   color: rgba(111, 124, 163, 1);
   color: rgba(111, 124, 163, 1);
   border: 1px solid rgba(220, 220, 220, 1);
   border: 1px solid rgba(220, 220, 220, 1);
+
+  button {
+    border-radius: 16px;
+  }
 }
 }
 
 
 .btn_nomal:active {
 .btn_nomal:active {

+ 62 - 0
src/styles/public/form-style.scss

@@ -13,3 +13,65 @@
     color: rgba(4, 8, 20, 0.90);
     color: rgba(4, 8, 20, 0.90);
   }
   }
 }
 }
+
+.long {
+  ::v-deep .el-input {
+    width: funpxw(360);
+  }
+
+  ::v-deep .el-textarea__inner {
+    width: funpxw(560);
+  }
+}
+
+.nomal {
+  ::v-deep .el-input {
+    width: funpxw(200);
+  }
+}
+
+.form_row {
+  display: flex;
+  align-items: center;
+}
+
+::v-deep .el-input__inner {
+  background-color: rgba(236, 242, 254, 1);
+  border: none;
+  border-radius: 8px;
+  height: 32px;
+}
+
+::v-deep .el-textarea__inner {
+  background-color: rgba(236, 242, 254, 1);
+  border: none;
+  border-radius: 8px;
+}
+
+::v-deep .el-select {
+  background-color: rgba(236, 242, 254, 1);
+  border-radius: 8px;
+}
+
+::v-deep .el-form-item__content {
+  display: flex;
+  align-items: center;
+}
+
+.private {
+  ::v-deep .el-form-item__content {
+    height: 32px;
+  }
+}
+
+// 图标居中
+::v-deep .el-input__suffix {
+  line-height: 16px;
+}
+
+.btn_text {
+  color: rgba(16, 109, 255, 1);
+  margin-left: 12px;
+  font-size: 14px;
+  cursor: pointer;
+}

+ 180 - 4
src/views/ybss/components/DwBaseEdit.vue

@@ -1,22 +1,198 @@
 <template>
 <template>
-    <div>
+    <div class="form_body">
         <div class="form_head">
         <div class="form_head">
             <div class="title">基本信息</div>
             <div class="title">基本信息</div>
         </div>
         </div>
-        <el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small">
+        <el-form ref="form" :model="formData" :rules="rules" label-width="136px" size="small">
+            <el-form-item label="单位地址" prop="dzmc" class="long">
+                <el-select v-model="dzInfo" placeholder="请选择单位地址" size="mini" v-loading="dzmcLoading"
+                    @change="dzChange">
+                    <el-option v-for="item in dzmcOp" :key="item.dzbm" :label="item.xz" :value="item">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <div class="form_row">
+                <el-form-item label="单位名称" prop="dwmc" class="nomal">
+                    <el-input v-model="formData.dwmc" placeholder="请输入单位名称" size="mini"></el-input>
+                </el-form-item>
+                <el-form-item label="社会统一代码" prop="tyshxydm" class="nomal">
+                    <el-input v-model="formData.tyshxydm" placeholder="请输入社会统一代码" size="mini"></el-input>
+                </el-form-item>
+            </div>
+            <div class="form_row">
+                <div>
+                    <el-form-item label="单位类型" prop="dwlx" class="nomal">
+                        <el-select v-model="formData.dwlx" placeholder="请选择单位类型" size="mini">
+                            <el-option v-for="item in options.dwlb" :key="item.label" :label="item.label"
+                                :value="item.label">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="行业类别" class="nomal">
+                        <el-select v-model="formData.hylb" placeholder="请选择行业类别" size="mini">
+                            <el-option v-for="item in options.gllb" :key="item.label" :label="item.label"
+                                :value="item.label">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+            </div>
+            <el-form-item label="经营范围主营" class="long">
+                <el-input placeholder="请描述主营经营范围,限200字符" type="textarea" v-model="formData.zyjyfw"
+                    size="mini"></el-input>
 
 
+            </el-form-item>
+            <el-form-item label="经营范围兼营" class="long">
+                <el-input placeholder="请描述兼营经营范围,限200字符" type="textarea" v-model="formData.cyjyfw"
+                    size="mini"></el-input>
+            </el-form-item>
+            <el-form-item label="经营面积" class="nomal">
+                <el-input v-model="formData.jymj" placeholder="请输入经营面积(㎡)" size="mini"></el-input>
+                <div>㎡</div>
+            </el-form-item>
+            <el-form-item label="经营方式" class="long">
+                <el-select v-model="formData.jyfs" placeholder="请选择经营方式" size="mini">
+                    <el-option v-for="item in jyfsOp" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="营业期限">
+                <el-date-picker v-model="dates" type="daterange" range-separator="-" start-placeholder="开始日期"
+                    end-placeholder="结束日期" @change="dateChange" size="mini">
+                </el-date-picker>
+            </el-form-item>
+            <div class="form_row">
+                <div>
+                    <el-form-item label="注册资金" class="nomal">
+                        <el-input v-model="formData.zczj" placeholder="请输入注册资金" size="mini"></el-input>
+                        <div>元</div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="联系电话" prop="lxdh" class="nomal">
+                        <el-input v-model="formData.lxdh" placeholder="请输入联系电话" size="mini"></el-input>
+                    </el-form-item>
+                </div>
+            </div>
+            <el-form-item label="注册地址" class="long">
+                <el-input v-model="formData.zcdzbm" placeholder="请输入单位名称" size="mini"></el-input>
+            </el-form-item>
+            <el-form-item label="单位网址" class="long">
+                <el-input v-model="formData.wz" placeholder="请输入单位名称" size="mini"></el-input>
+            </el-form-item>
+            <el-form-item label="重点单位标识" class="private">
+                <el-radio-group v-model="formData.zddwbs">
+                    <el-radio label="是"></el-radio>
+                    <el-radio label="否"></el-radio>
+                </el-radio-group>
+            </el-form-item>
+            <el-form-item label="消防重点单位" class="private">
+                <el-radio-group v-model="formData.xfzddwbs">
+                    <el-radio label="是"></el-radio>
+                    <el-radio label="否"></el-radio>
+                </el-radio-group>
+            </el-form-item>
         </el-form>
         </el-form>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import { dwDz } from "@/api/fwbzdz/sydw";
+
 export default {
 export default {
     name: 'DwBaseEdit',
     name: 'DwBaseEdit',
+    props: {
+        options: {
+            type: Object,
+            default: () => {
+                return {
+                    dwlb: [], gllb: []
+                }
+            }
+        },
+        viewData: {
+            type: Object,
+            default: () => {
+                return {
+                    dwmc: '', tyshxydm: '', dwlx: '', zyjyfw: '', cyjyfw: '', jymj: '', jyfs: '', yyzzqsrq: '', yyzzjzrq: '',
+                    zczj: '', lxdh: '', zcdzbm: '', wz: '', zddwbs: '', xfzddwbs: '', dzmc: '', dzbm: '',
+                }
+            }
+        }
+    },
     data() {
     data() {
-        return {}
+        return {
+            dates: [],
+            dzInfo: {},
+            formData: {
+                dwmc: '', tyshxydm: '', dwlx: '', zyjyfw: '', cyjyfw: '', jymj: '', jyfs: '', yyzzqsrq: '', yyzzjzrq: '',
+                zczj: '', lxdh: '', zcdzbm: '', wz: '', zddwbs: '', xfzddwbs: '', dzmc: '', dzbm: '',
+            },
+            rules: {
+                dzmc: [{ required: true, message: '请输入单位地址', trigger: 'blur' }],
+                dwmc: [{ required: true, message: '请输入单位名称', trigger: 'blur' }],
+                tyshxydm: [{ required: true, message: '请输入社会统一代码', trigger: 'blur' }],
+                dwlx: [{ required: true, message: '请选择单位类型', trigger: 'change' }],
+                lxdh: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+            },
+            dzmcOp: [],
+            dzmcLoading: false,
+            jyfsOp: [],
+        }
+    },
+    watch: {
+        'viewData': {
+            handler: function (n) {
+                if (n) {
+                    // console.log('view n',n)
+                    const {
+                        dwmc, tyshxydm, dwlx, zyjyfw, cyjyfw, jymj, jyfs, yyzzqsrq, yyzzjzrq,
+                        zczj, lxdh, zcdzbm, wz, zddwbs, xfzddwbs, dzmc, dzbm
+                    } = n
+                    this.formData = {
+                        dwmc, tyshxydm, dwlx, zyjyfw, cyjyfw, jymj, jyfs, yyzzqsrq, yyzzjzrq,
+                        zczj, lxdh, zcdzbm, wz, zddwbs, xfzddwbs, dzmc, dzbm
+                    }
+
+                    // console.log('view', this.formData)
+                }
+            }, deep: true, immediate: true
+        }
+    },
+    mounted() {
+        this.dzmcLoading = true
+        dwDz().then(res => {
+            this.dzmcOp = res.data.data
+        }).finally(() => {
+            this.dzmcLoading = false
+        })
+    },
+    methods: {
+        dzChange(val) {
+            this.formData.dzbm = val.dzbm
+            this.formData.dzmc = val.xz
+            this.dzInfo = val.xz
+        },
+        dateChange(val) {
+            console.log('dateChange', val)
+        },
+        changeDate(date) {
+            var Y = date.getFullYear() + '-';
+            var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+            var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
+            var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+            var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+            var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
+            return Y + M + D + h + m + s
+        }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-@import '@/styles/newcrue.scss';
 @import '@/styles/public/form-style.scss';
 @import '@/styles/public/form-style.scss';
+
+.form_body {
+    border-bottom: 1px solid rgba(231, 231, 231, 1);
+}
 </style>
 </style>

+ 104 - 19
src/views/ybss/components/DwBaseForm.vue

@@ -1,86 +1,171 @@
 <template>
 <template>
-    <div>
+    <div v-loading="viewLoading">
         <div class="item_head">
         <div class="item_head">
             <div class="title">基本信息</div>
             <div class="title">基本信息</div>
-            <div class="btn">修改</div>
+            <div class="btn_text" @click="edit">修改</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">单位名称</div>
             <div class="row_label">单位名称</div>
-            <div class="row_content">{{ formData.dwmc }}</div>
+            <div class="row_content">{{ viewData.dwmc }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">社会统一代码</div>
             <div class="row_label">社会统一代码</div>
-            <div class="row_content">{{ formData.tyshxydm }}</div>
+            <div class="row_content">{{ viewData.tyshxydm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">单位类型</div>
             <div class="row_label">单位类型</div>
-            <div class="row_content">{{ formData.dwlx }}</div>
+            <div class="row_content">{{ viewData.dwlx }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">行业类别</div>
             <div class="row_label">行业类别</div>
-            <div class="row_content">{{ formData.hylb }}</div>
+            <div class="row_content">{{ viewData.hylb }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">经营范围(主营)</div>
             <div class="row_label">经营范围(主营)</div>
-            <div class="row_content">{{ formData.zyjyfw }}</div>
+            <div class="row_content">{{ viewData.zyjyfw }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">经营范围(兼营)</div>
             <div class="row_label">经营范围(兼营)</div>
-            <div class="row_content">{{ formData.cyjyfw }}</div>
+            <div class="row_content">{{ viewData.cyjyfw }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">经营面积(㎡)</div>
             <div class="row_label">经营面积(㎡)</div>
-            <div class="row_content">{{ formData.jymj }}</div>
+            <div class="row_content">{{ viewData.jymj }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">经营方式</div>
             <div class="row_label">经营方式</div>
-            <div class="row_content">{{ formData.jyfs }}</div>
+            <div class="row_content">{{ viewData.jyfs }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">营业期限</div>
             <div class="row_label">营业期限</div>
-            <div class="row_content">{{ formData.yyzzqsrq }} 至 {{ formData.yyzzjzrq }}</div>
+            <div class="row_content">{{ viewData.yyzzqsrq }} 至 {{ viewData.yyzzjzrq }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">注册资金</div>
             <div class="row_label">注册资金</div>
-            <div class="row_content">{{ formData.zczj }}</div>
+            <div class="row_content">{{ viewData.zczj }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">联系电话</div>
             <div class="row_label">联系电话</div>
-            <div class="row_content">{{ formData.lxdh }}</div>
+            <div class="row_content">{{ viewData.lxdh }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">注册地址</div>
             <div class="row_label">注册地址</div>
-            <div class="row_content">{{ formData.zcdzbm }}</div>
+            <div class="row_content">{{ viewData.zcdzbm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">单位网址</div>
             <div class="row_label">单位网址</div>
-            <div class="row_content">{{ formData.wz }}</div>
+            <div class="row_content">{{ viewData.wz }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">重点单位标识</div>
             <div class="row_label">重点单位标识</div>
-            <div class="row_content">{{ formData.zddwbs }}</div>
+            <div class="row_content">{{ viewData.zddwbs }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">消防重点单位标识</div>
             <div class="row_label">消防重点单位标识</div>
-            <div class="row_content">{{ formData.xfzddwbs }}</div>
+            <div class="row_content">{{ viewData.xfzddwbs }}</div>
         </div>
         </div>
+        <el-dialog title='基本信息编辑' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='true' top='8vh'
+            v-loading='editLoading' width="60%">
+
+            <DwBaseEdit ref="DwBaseEdit" :viewData="viewData"></DwBaseEdit>
+            <div class='footer'>
+                <button class='btn_primary' @click.stop='dialogSave' style='margin-right: 24px;'>保存</button>
+                <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+            </div>
+        </el-dialog>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import DwBaseEdit from './DwBaseEdit.vue'
+import { update } from "@/api/fwbzdz/sydw";
+
 export default {
 export default {
     name: 'DwBaseForm',
     name: 'DwBaseForm',
     props: {
     props: {
         formData: {
         formData: {
             type: Object,
             type: Object,
-            default: ()=>{return {}}
+            default: () => { return {} }
         }
         }
     },
     },
+    components: { DwBaseEdit },
     data() {
     data() {
-        return {}
+        return {
+            dialogVisible: false,
+            viewData: {},
+            viewLoading: false,
+            editLoading: false
+        }
+    },
+    computed: {
+        query() {
+            return this.$store.state.thirdTitle.sydwxq
+        },
+    },
+    watch: {
+        'formData': {
+            handler: function (n) {
+                if (n) {
+                    this.$set(this.$data, 'viewData', JSON.parse(JSON.stringify(this.formData)))
+                }
+            }
+        }
+    },
+    methods: {
+        edit() {
+            this.dialogVisible = true
+        },
+        dialogSave() {
+            this.$confirm('确定修改数据?', '提示', {
+                distinguishCancelAndClose: true,
+                confirmButtonText: '确认',
+                cancelButtonText: '取消'
+            }).then(() => {
+                this.$refs.DwBaseEdit.$refs.form.validate((valid) => {
+                    if (valid) {
+                        let params = this.$refs.DwBaseEdit.formData
+                        params.id = this.query.id
+                        update(params).then(() => {
+                            this.$emit('refresh')
+                            this.$message({
+                                showClose: true,
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            this.dialogVisible = false
+                        })
+
+                    }
+                })
+            })
+        },
+        handleClose() {
+            this.dialogVisible = false
+        }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 @import '@/views/ybss/style/formnoedit.scss';
 @import '@/views/ybss/style/formnoedit.scss';
+@import '@/styles/public/button-style.scss';
 
 
+.footer {
+    width: 100%;
+    height: 64px;
+    display: flex;
+    flex-direction: row-reverse;
+    align-items: center;
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+
+.btn_text {
+    color: rgba(16, 109, 255, 1);
+    margin-left: 12px;
+    font-size: 14px;
+    cursor: pointer;
+}
 </style>
 </style>

+ 124 - 0
src/views/ybss/components/DwBwBossEdit.vue

@@ -0,0 +1,124 @@
+<template>
+    <div class="form_body">
+        <div class="form_head">
+            <div class="title">保卫负责人信息</div>
+        </div>
+        <el-form ref="form" :model="formData" :rules="rules" label-width="136px" size="small">
+            <div class="form_row">
+                <div>
+                    <el-form-item label="法人照片" prop="bwfzrzp">
+                        <div v-loading="photoLoading" :element-loading-text="photoLoadingText"
+                            style="width: 80px;border: 1px solid #D4D6D9;height: 80px;text-align: center;border-radius: 8px">
+                            <input @change="getfile($event)" class="filebox" type="file" accept="image/*">
+                            <div v-if="!formData.bwfzrzp">
+                                <i class="el-icon-plus" style="font-size: 50px;color: #D4D6D9;line-height: 80px"></i>
+                            </div>
+                            <img v-else :src="formData.bwfzrzp" style="width: 100%">
+                        </div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="负责人姓名" prop="bwfzrxm" class="nomal">
+                        <el-input v-model="formData.bwfzrxm" placeholder="请输入保卫负责人姓名" size="mini"></el-input>
+                    </el-form-item>
+                    <el-form-item label="证件类型" prop="bwfzrzjlx" class="nomal">
+                        <el-select v-model="formData.bwfzrzjlx" placeholder="请选择证件类型" size="mini">
+                            <el-option v-for="item in zjlxOp" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+            </div>
+            <div class="form_row">
+                <div>
+                    <el-form-item label="公民身份号码" prop="bwfzrzjhm" class="nomal">
+                        <el-input v-model="formData.bwfzrzjhm" placeholder="请输入公民身份号码" size="mini"></el-input>
+                        <div class="btn_text">查询</div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="联系电话" prop="bwfzrlxdh" class="nomal">
+                        <el-input v-model="formData.bwfzrlxdh" placeholder="请输入联系电话" size="mini"></el-input>
+                    </el-form-item>
+                </div>
+            </div>
+        </el-form>
+    </div>
+</template>
+<script>
+import { putfile } from "@/api/fwbzdz/fwbzdz";
+
+export default {
+    name: 'DwBwBossEdit',
+    props: {
+        viewData: {
+            type: Object,
+            default: () => {
+                return {
+                    bwfzrzp: '', bwfzrxm: '', bwfzrzjlx: '', bwfzrzjhm: '', bwfzrlxdh: '',
+                }
+            }
+        }
+    },
+    data() {
+        return {
+            formData: {
+                bwfzrzp: '', bwfzrxm: '', bwfzrzjlx: '', bwfzrzjhm: '', bwfzrlxdh: '',
+            },
+            rules: {},
+            zjlxOp: [
+                { value: '身份证号', label: '身份证号' },
+                { value: '护照', label: '护照' },
+            ],
+        }
+    },
+    watch: {
+        'viewData': {
+            handler: function (n) {
+                if (n) {
+                    const { bwfzrzp, bwfzrxm, bwfzrzjlx, bwfzrzjhm, bwfzrlxdh } = n
+                    this.formData = { bwfzrzp, bwfzrxm, bwfzrzjlx, bwfzrzjhm, bwfzrlxdh }
+                }
+            }, deep: true, immediate: true
+        }
+    },
+    methods: {
+        getfile(e) {
+            console.log('getfile', e)
+            var _this = this
+            _this.photoLoading = true
+            var fileList = new FormData()
+            fileList.append('file', e.target.files[0])
+            _this.photoLoadingText = '正在上传'
+            putfile(fileList).then(res => {
+                console.log('putfile', res)
+                _this.$set(_this.formData, 'bwfzrzp', res.data.data.link)
+                e.target.value = ''
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            }).catch(err => {
+                _this.$message.error('上传异常')
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            })
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/styles/public/form-style.scss';
+
+.filebox {
+    opacity: 0;
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.form_body {
+    border-bottom: 1px solid rgba(231, 231, 231, 1);
+}
+</style>

+ 86 - 2
src/views/ybss/components/DwBwBossForm.vue

@@ -2,7 +2,7 @@
     <div>
     <div>
         <div class="item_head">
         <div class="item_head">
             <div class="title">保卫负责人信息</div>
             <div class="title">保卫负责人信息</div>
-            <div class="btn">修改</div>
+            <div class="btn_text" @click="edit">修改</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">保卫负责人照片</div>
             <div class="row_label">保卫负责人照片</div>
@@ -24,9 +24,21 @@
             <div class="row_label">联系电话</div>
             <div class="row_label">联系电话</div>
             <div class="row_content">{{ formData.bwfzrlxdh }}</div>
             <div class="row_content">{{ formData.bwfzrlxdh }}</div>
         </div>
         </div>
+        <el-dialog title='保卫负责人信息编辑' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='true' top='8vh'
+            v-loading='editLoading' width="60%">
+
+            <DwBwBossEdit ref="DwBwBossEdit" :viewData="viewData"></DwBwBossEdit>
+            <div class='footer'>
+                <button class='btn_primary' @click.stop='dialogSave' style='margin-right: 24px;'>保存</button>
+                <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+            </div>
+        </el-dialog>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import DwBwBossEdit from './DwBaseEdit.vue'
+import { update } from "@/api/fwbzdz/sydw";
+
 export default {
 export default {
     name: 'DwBwBossForm',
     name: 'DwBwBossForm',
     props: {
     props: {
@@ -35,11 +47,83 @@ export default {
             default: () => { return {} }
             default: () => { return {} }
         }
         }
     },
     },
+    components: { DwBwBossEdit },
     data() {
     data() {
-        return {}
+        return {
+            dialogVisible: false,
+            viewData: {}
+        }
+    },
+    computed: {
+        query() {
+            return this.$store.state.thirdTitle.sydwxq
+        },
+    },
+    watch: {
+        'formData': {
+            handler: function (n) {
+                if (n) {
+                    this.$set(this.$data, 'viewData', JSON.parse(JSON.stringify(this.formData)))
+                }
+            }
+        }
+    },
+    methods: {
+        edit() {
+            this.dialogVisible = true
+        },
+        dialogSave() {
+            this.$confirm('确定修改数据?', '提示', {
+                distinguishCancelAndClose: true,
+                confirmButtonText: '确认',
+                cancelButtonText: '取消'
+            }).then(() => {
+                this.$refs.DwBwBossEdit.$refs.form.validate((valid) => {
+                    if (valid) {
+                        let params = this.$refs.DwBwBossEdit.formData
+                        params.id = this.query.id
+                        update(params).then(() => {
+                            this.$emit('refresh')
+                            this.$message({
+                                showClose: true,
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            this.dialogVisible = false
+                        })
+
+                    }
+                })
+            })
+        },
+        handleClose() {
+            this.dialogVisible = false
+        }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 @import '@/views/ybss/style/formnoedit.scss';
 @import '@/views/ybss/style/formnoedit.scss';
+@import '@/styles/public/button-style.scss';
+
+.footer {
+    width: 100%;
+    height: 64px;
+    display: flex;
+    flex-direction: row-reverse;
+    align-items: center;
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+
+.btn_text {
+    color: rgba(16, 109, 255, 1);
+    margin-left: 12px;
+    font-size: 14px;
+    cursor: pointer;
+}
 </style>
 </style>

+ 129 - 0
src/views/ybss/components/DwDwbossEdit.vue

@@ -0,0 +1,129 @@
+<template>
+    <div class="form_body">
+        <div class="form_head">
+            <div class="title">单位负责人信息</div>
+        </div>
+        <el-form ref="form" :model="formData" :rules="rules" label-width="136px" size="small">
+            <div class="form_row">
+                <div>
+                    <el-form-item label="法人照片" prop="dwfzrzp">
+                        <div v-loading="photoLoading" :element-loading-text="photoLoadingText"
+                            style="width: 80px;border: 1px solid #D4D6D9;height: 80px;text-align: center;border-radius: 8px">
+                            <input @change="getfile($event)" class="filebox" type="file" accept="image/*">
+                            <div v-if="!formData.dwfzrzp">
+                                <i class="el-icon-plus" style="font-size: 50px;color: #D4D6D9;line-height: 80px"></i>
+                            </div>
+                            <img v-else :src="formData.dwfzrzp" style="width: 100%">
+                        </div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="负责人姓名" prop="dwfzrxm" class="nomal">
+                        <el-input v-model="formData.dwfzrxm" placeholder="请输入单位负责人姓名" size="mini"></el-input>
+                    </el-form-item>
+                    <el-form-item label="证件类型" prop="dwfzrzjlx" class="nomal">
+                        <el-select v-model="formData.dwfzrzjlx" placeholder="请选择证件类型" size="mini">
+                            <el-option v-for="item in zjlxOp" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+            </div>
+            <div class="form_row">
+                <div>
+                    <el-form-item label="公民身份号码" prop="dwfzrzjhm" class="nomal">
+                        <el-input v-model="formData.dwfzrzjhm" placeholder="请输入公民身份号码" size="mini"></el-input>
+                        <div class="btn_text">查询</div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="联系电话" prop="dwfzrlxdh" class="nomal">
+                        <el-input v-model="formData.dwfzrlxdh" placeholder="请输入联系电话" size="mini"></el-input>
+                    </el-form-item>
+                </div>
+            </div>
+        </el-form>
+    </div>
+</template>
+<script>
+import { putfile } from "@/api/fwbzdz/fwbzdz";
+
+export default {
+    name: 'DwDwbossEdit',
+    props: {
+        viewData: {
+            type: Object,
+            default: () => {
+                return {
+                    dwfzrzp: '', dwfzrxm: '', dwfzrzjlx: '', dwfzrzjhm: '', dwfzrlxdh: '',
+                }
+            }
+        }
+    },
+    data() {
+        return {
+            formData: {
+                dwfzrzp: '', dwfzrxm: '', dwfzrzjlx: '', dwfzrzjhm: '', dwfzrlxdh: '',
+            },
+            rules: {
+                dwfzrxm: [{ required: true, message: '请输入单位负责人姓名', trigger: 'blur' }],
+                dwfzrzjlx: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
+                dwfzrzjhm: [{ required: true, message: '请输入公民身份号码', trigger: 'blur' }],
+                dwfzrlxdh: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+            },
+            zjlxOp: [
+                { value: '身份证号', label: '身份证号' },
+                { value: '护照', label: '护照' },
+            ],
+        }
+    },
+    watch: {
+        'viewData': {
+            handler: function (n) {
+                if (n) {
+                    const { dwfzrzp, dwfzrxm, dwfzrzjlx, dwfzrzjhm, dwfzrlxdh } = n
+                    this.formData = { dwfzrzp, dwfzrxm, dwfzrzjlx, dwfzrzjhm, dwfzrlxdh }
+                }
+            }, deep: true, immediate: true
+        }
+    },
+    methods: {
+        getfile(e) {
+            console.log('getfile', e)
+            var _this = this
+            _this.photoLoading = true
+            var fileList = new FormData()
+            fileList.append('file', e.target.files[0])
+            _this.photoLoadingText = '正在上传'
+            putfile(fileList).then(res => {
+                console.log('putfile', res)
+                _this.$set(_this.formData, 'dwfzrzp', res.data.data.link)
+                e.target.value = ''
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            }).catch(err => {
+                _this.$message.error('上传异常')
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            })
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/styles/public/form-style.scss';
+
+.filebox {
+    opacity: 0;
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.form_body {
+    border-bottom: 1px solid rgba(231, 231, 231, 1);
+}
+</style>

+ 91 - 7
src/views/ybss/components/DwDwbossForm.vue

@@ -2,31 +2,43 @@
     <div>
     <div>
         <div class="item_head">
         <div class="item_head">
             <div class="title">单位负责人信息</div>
             <div class="title">单位负责人信息</div>
-            <div class="btn">修改</div>
+            <div class="btn_text" @click="edit">修改</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">单位负责人照片</div>
             <div class="row_label">单位负责人照片</div>
-            <div class="row_content">{{ formData.dwfzrzp }}</div>
+            <div class="row_content">{{ viewData.dwfzrzp }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">单位负责人姓名</div>
             <div class="row_label">单位负责人姓名</div>
-            <div class="row_content">{{ formData.dwfzrxm }}</div>
+            <div class="row_content">{{ viewData.dwfzrxm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">证件类型</div>
             <div class="row_label">证件类型</div>
-            <div class="row_content">{{ formData.dwfzrzjlx }}</div>
+            <div class="row_content">{{ viewData.dwfzrzjlx }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">公民身份号码</div>
             <div class="row_label">公民身份号码</div>
-            <div class="row_content">{{ formData.dwfzrzjhm }}</div>
+            <div class="row_content">{{ viewData.dwfzrzjhm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">联系电话</div>
             <div class="row_label">联系电话</div>
-            <div class="row_content">{{ formData.dwfzrlxdh }}</div>
+            <div class="row_content">{{ viewData.dwfzrlxdh }}</div>
         </div>
         </div>
+        <el-dialog title='单位负责人信息编辑' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='true' top='8vh'
+            v-loading='editLoading' width="60%">
+
+            <DwDwbossEdit ref="DwDwbossEdit" :viewData="viewData"></DwDwbossEdit>
+            <div class='footer'>
+                <button class='btn_primary' @click.stop='dialogSave' style='margin-right: 24px;'>保存</button>
+                <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+            </div>
+        </el-dialog>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import DwDwbossEdit from './DwDwbossEdit.vue';
+import { update } from "@/api/fwbzdz/sydw";
+
 export default {
 export default {
     name: 'DwDwBossForm',
     name: 'DwDwBossForm',
     props: {
     props: {
@@ -35,11 +47,83 @@ export default {
             default: () => { return {} }
             default: () => { return {} }
         }
         }
     },
     },
+    components: {DwDwbossEdit},
     data() {
     data() {
-        return {}
+        return {
+            dialogVisible: false,
+            viewData: {}
+        }
+    },
+    computed: {
+        query() {
+            return this.$store.state.thirdTitle.sydwxq
+        },
+    },
+    watch: {
+        'formData': {
+            handler: function (n) {
+                if (n) {
+                    this.$set(this.$data, 'viewData', JSON.parse(JSON.stringify(this.formData)))
+                }
+            }
+        }
+    },
+    methods: {
+        edit() {
+            this.dialogVisible = true
+        },
+        dialogSave() {
+            this.$confirm('确定修改数据?', '提示', {
+                distinguishCancelAndClose: true,
+                confirmButtonText: '确认',
+                cancelButtonText: '取消'
+            }).then(() => {
+                this.$refs.DwDwbossEdit.$refs.form.validate((valid) => {
+                    if (valid) {
+                        let params = this.$refs.DwDwbossEdit.formData
+                        params.id = this.query.id
+                        update(params).then(() => {
+                            this.$emit('refresh')
+                            this.$message({
+                                showClose: true,
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            this.dialogVisible = false
+                        })
+
+                    }
+                })
+            })
+        },
+        handleClose() {
+            this.dialogVisible = false
+        }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 @import '@/views/ybss/style/formnoedit.scss';
 @import '@/views/ybss/style/formnoedit.scss';
+@import '@/styles/public/button-style.scss';
+
+.footer {
+    width: 100%;
+    height: 64px;
+    display: flex;
+    flex-direction: row-reverse;
+    align-items: center;
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+
+.btn_text {
+    color: rgba(16, 109, 255, 1);
+    margin-left: 12px;
+    font-size: 14px;
+    cursor: pointer;
+}
 </style>
 </style>

+ 132 - 0
src/views/ybss/components/DwFrEdit.vue

@@ -0,0 +1,132 @@
+<template>
+    <div class="form_body">
+        <div class="form_head">
+            <div class="title">法人信息</div>
+        </div>
+        <el-form ref="form" :model="formData" :rules="rules" label-width="136px" size="small">
+            <div class="form_row">
+                <div>
+                    <el-form-item label="法人照片" prop="frzp">
+                        <div v-loading="photoLoading" :element-loading-text="photoLoadingText"
+                            style="width: 80px;border: 1px solid #D4D6D9;height: 80px;text-align: center;border-radius: 8px">
+                            <input @change="getfile($event)" class="filebox" type="file" accept="image/*">
+                            <div v-if="!formData.frzp">
+                                <i class="el-icon-plus" style="font-size: 50px;color: #D4D6D9;line-height: 80px"></i>
+                            </div>
+                            <img v-else :src="formData.frzp" style="width: 100%">
+                        </div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="法人姓名" prop="frxm" class="nomal">
+                        <el-input v-model="formData.frxm" placeholder="请输入法人姓名" size="mini"></el-input>
+                    </el-form-item>
+                    <el-form-item label="证件类型" prop="frzjlx" class="nomal">
+                        <el-select v-model="formData.frzjlx" placeholder="请选择证件类型" size="mini">
+                            <el-option v-for="item in zjlxOp" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+            </div>
+            <div class="form_row">
+                <div>
+                    <el-form-item label="公民身份号码" prop="frzjhm" class="nomal">
+                        <el-input v-model="formData.frzjhm" placeholder="请输入公民身份号码" size="mini"></el-input>
+                        <div class="btn_text">查询</div>
+                    </el-form-item>
+                </div>
+                <div>
+                    <el-form-item label="联系电话" prop="frlxdh" class="nomal">
+                        <el-input v-model="formData.frlxdh" placeholder="请输入联系电话" size="mini"></el-input>
+                    </el-form-item>
+                </div>
+            </div>
+            <el-form-item label="现住址" prop="frjzd" class="long">
+                <el-input v-model="formData.frjzd" placeholder="请输入现住址" size="mini"></el-input>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+import { putfile } from "@/api/fwbzdz/fwbzdz";
+
+export default {
+    name: 'DwFrEdit',
+    props: {
+        viewData: {
+            type: Object,
+            default: () => {
+                return {
+                    frzp: '', frxm: '', frzjlx: '', frzjhm: '', frlxdh: '', frjzd: '',
+                }
+            }
+        }
+    },
+    data() {
+        return {
+            formData: {
+                frzp: '', frxm: '', frzjlx: '', frzjhm: '', frlxdh: '', frjzd: '',
+            },
+            rules: {
+                frxm: [{ required: true, message: '请输入法人姓名', trigger: 'blur' }],
+                frzjlx: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
+                frzjhm: [{ required: true, message: '请输入公民身份号码', trigger: 'blur' }],
+                frlxdh: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+            },
+            zjlxOp: [
+                { value: '身份证号', label: '身份证号' },
+                { value: '护照', label: '护照' },
+            ],
+        }
+    },
+    watch: {
+        'viewData': {
+            handler: function (n) {
+                if (n) {
+                    const { frzp, frxm, frzjlx, frzjhm, frlxdh, frjzd } = n
+                    this.formData = { frzp, frxm, frzjlx, frzjhm, frlxdh, frjzd }
+                }
+            }, deep: true, immediate: true
+        }
+    },
+    methods: {
+        getfile(e) {
+            console.log('getfile', e)
+            var _this = this
+            _this.photoLoading = true
+            var fileList = new FormData()
+            fileList.append('file', e.target.files[0])
+            _this.photoLoadingText = '正在上传'
+            putfile(fileList).then(res => {
+                console.log('putfile', res)
+                _this.$set(_this.formData, 'frzp', res.data.data.link)
+                e.target.value = ''
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            }).catch(err => {
+                _this.$message.error('上传异常')
+                _this.photoLoading = false
+                _this.photoLoadingText = ''
+            })
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/styles/public/form-style.scss';
+
+.filebox {
+    opacity: 0;
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.form_body {
+    border-bottom: 1px solid rgba(231, 231, 231, 1);
+}
+</style>

+ 91 - 7
src/views/ybss/components/DwFrForm.vue

@@ -6,31 +6,43 @@
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">法人照片</div>
             <div class="row_label">法人照片</div>
-            <div class="row_content">{{ formData.frzp }}</div>
+            <div class="row_content">{{ viewData.frzp }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">法人姓名</div>
             <div class="row_label">法人姓名</div>
-            <div class="row_content">{{ formData.tyshxydm }}</div>
+            <div class="row_content">{{ viewData.tyshxydm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">证件类型</div>
             <div class="row_label">证件类型</div>
-            <div class="row_content">{{ formData.frzjlx }}</div>
+            <div class="row_content">{{ viewData.frzjlx }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">公民身份号码</div>
             <div class="row_label">公民身份号码</div>
-            <div class="row_content">{{ formData.frzjhm }}</div>
+            <div class="row_content">{{ viewData.frzjhm }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">联系电话</div>
             <div class="row_label">联系电话</div>
-            <div class="row_content">{{ formData.frlxdh }}</div>
+            <div class="row_content">{{ viewData.frlxdh }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">现居住地址</div>
             <div class="row_label">现居住地址</div>
-            <div class="row_content">{{ formData.frjzd }}</div>
+            <div class="row_content">{{ viewData.frjzd }}</div>
         </div>
         </div>
+        <el-dialog title='法人信息编辑' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='true' top='8vh'
+            v-loading='editLoading' width="60%">
+
+            <DwFrEdit ref="DwFrEdit" :viewData="viewData"></DwFrEdit>
+            <div class='footer'>
+                <button class='btn_primary' @click.stop='dialogSave' style='margin-right: 24px;'>保存</button>
+                <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+            </div>
+        </el-dialog>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import DwFrEdit from './DwFrEdit.vue';
+import { update } from "@/api/fwbzdz/sydw";
+
 export default {
 export default {
     name: 'DwFrForm',
     name: 'DwFrForm',
     props: {
     props: {
@@ -39,11 +51,83 @@ export default {
             default: () => { return {} }
             default: () => { return {} }
         }
         }
     },
     },
+    components: { DwFrEdit },
     data() {
     data() {
-        return {}
+        return {
+            dialogVisible: false,
+            viewData: {}
+        }
+    },
+    computed: {
+        query() {
+            return this.$store.state.thirdTitle.sydwxq
+        },
+    },
+    watch: {
+        'formData': {
+            handler: function (n) {
+                if (n) {
+                    this.$set(this.$data, 'viewData', JSON.parse(JSON.stringify(this.formData)))
+                }
+            }
+        }
+    },
+    methods: {
+        edit() {
+            this.dialogVisible = true
+        },
+        dialogSave() {
+            this.$confirm('确定修改数据?', '提示', {
+                distinguishCancelAndClose: true,
+                confirmButtonText: '确认',
+                cancelButtonText: '取消'
+            }).then(() => {
+                this.$refs.DwFrEdit.$refs.form.validate((valid) => {
+                    if (valid) {
+                        let params = this.$refs.DwFrEdit.formData
+                        params.id = this.query.id
+                        update(params).then(() => {
+                            this.$emit('refresh')
+                            this.$message({
+                                showClose: true,
+                                message: '修改成功',
+                                type: 'success'
+                            });
+                            this.dialogVisible = false
+                        })
+
+                    }
+                })
+            })
+        },
+        handleClose() {
+            this.dialogVisible = false
+        }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 @import '@/views/ybss/style/formnoedit.scss';
 @import '@/views/ybss/style/formnoedit.scss';
+@import '@/styles/public/button-style.scss';
+
+.footer {
+    width: 100%;
+    height: 64px;
+    display: flex;
+    flex-direction: row-reverse;
+    align-items: center;
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+
+.btn_text {
+    color: rgba(16, 109, 255, 1);
+    margin-left: 12px;
+    font-size: 14px;
+    cursor: pointer;
+}
 </style>
 </style>

+ 17 - 9
src/views/ybss/fwbzdz/bzdzxq.vue

@@ -24,12 +24,15 @@
         <div class="bzdzxq_right">
         <div class="bzdzxq_right">
             <el-tabs v-model="activeName" type="card" @tab-click="handleClick" v-loading="tabLoading" class="tabs">
             <el-tabs v-model="activeName" type="card" @tab-click="handleClick" v-loading="tabLoading" class="tabs">
                 <el-tab-pane label="实有房屋" name="syfw">
                 <el-tab-pane label="实有房屋" name="syfw">
-                    <DetailSyfw v-if="modelsData.syfwNum != 0" @fzInfo="showEdDialog"></DetailSyfw>
-                    <AddSyfw v-else @refresh="refresh"></AddSyfw>
+                    <DetailSyfw v-if="modelsData.syfwNum != 0" @fzInfo="showEdDialog" :options="options"></DetailSyfw>
+                    <AddSyfw v-else @refresh="refresh" :options="options"></AddSyfw>
+                </el-tab-pane>
+                <el-tab-pane label="实有单位" name="sydw">
+                    <DetailSydw v-if="modelsData.sydwNum != 0"></DetailSydw>
+                    <NoData v-else></NoData>
                 </el-tab-pane>
                 </el-tab-pane>
-                <el-tab-pane label="实有单位" name="sydw">实有单位</el-tab-pane>
                 <el-tab-pane :label="'实有人口(' + syrkNum + ')'" name="syrk">
                 <el-tab-pane :label="'实有人口(' + syrkNum + ')'" name="syrk">
-                    <SyrkJz></SyrkJz>
+                    <!-- <SyrkJz></SyrkJz> -->
                 </el-tab-pane>
                 </el-tab-pane>
             </el-tabs>
             </el-tabs>
         </div>
         </div>
@@ -39,9 +42,12 @@
 </template>
 </template>
 <script>
 <script>
 import DetailSyfw from './components/DetailSyfw.vue'
 import DetailSyfw from './components/DetailSyfw.vue'
+import DetailSydw from './components/DetailSydw.vue';
 import SyrkJz from './components/SyrkJz.vue';           // 实有人口
 import SyrkJz from './components/SyrkJz.vue';           // 实有人口
 import AddSyfw from './components/AddSyfw.vue';
 import AddSyfw from './components/AddSyfw.vue';
+import NoData from './components/NoData.vue';
 import addry from '../syrk/components/edit'
 import addry from '../syrk/components/edit'
+import { sydwDetailBybzdz,dictionaryList } from '@/api/fwbzdz/fwbzdz'
 export default {
 export default {
     props: {
     props: {
         lcnpmhData: {
         lcnpmhData: {
@@ -49,7 +55,7 @@ export default {
             default: () => { return {} }
             default: () => { return {} }
         }
         }
     },
     },
-    components: { DetailSyfw, SyrkJz, AddSyfw, addry },
+    components: { DetailSyfw, DetailSydw, SyrkJz, AddSyfw, NoData, addry },
     data() {
     data() {
         return {
         return {
             propInfo: {},
             propInfo: {},
@@ -59,7 +65,8 @@ export default {
             activeName: 'syfw',
             activeName: 'syfw',
             tabLoading: false,
             tabLoading: false,
             syrkNum: 0,
             syrkNum: 0,
-            modelsData: {}
+            modelsData: {},
+            options: {}
         }
         }
     },
     },
     computed: {
     computed: {
@@ -77,8 +84,9 @@ export default {
         }
         }
     },
     },
     mounted() {
     mounted() {
-        console.log('query', this.query)
-        console.log('modelsData',this.modelsData)
+        dictionaryList().then(res=>{
+            this.dictionaryList = res.data.data
+        })
     },
     },
     methods: {
     methods: {
         showEdDialog(data) {
         showEdDialog(data) {
@@ -87,7 +95,7 @@ export default {
         },
         },
         // 确认提交后刷新,先改变本页
         // 确认提交后刷新,先改变本页
         refresh() {
         refresh() {
-            // this.$emit('refresh')
+            this.$emit('refresh')
         },
         },
         handleClick(val) {
         handleClick(val) {
             console.log('handleClick', val)
             console.log('handleClick', val)

+ 58 - 45
src/views/ybss/fwbzdz/components/AddSyfw.vue

@@ -70,7 +70,7 @@
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-col :offset="1" :span="23">
         <el-col :offset="1" :span="23">
-          <el-form-item label="人口类型" prop="rklx">
+          <el-form-item label="人口类型" prop="rklx" class="rklx">
             <el-radio-group v-model="fzInfo.rklx">
             <el-radio-group v-model="fzInfo.rklx">
               <el-radio :label="1">常住人口</el-radio>
               <el-radio :label="1">常住人口</el-radio>
               <el-radio :label="2">寄住人口</el-radio>
               <el-radio :label="2">寄住人口</el-radio>
@@ -91,10 +91,12 @@
             </el-radio-group>
             </el-radio-group>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
-        <el-col :offset="2" :span="22" v-show="fzInfo.sfzcjz == '0'">
-          <el-form-item label="现居住地址" prop="fzJzd" class="long">
-            <el-input v-model="fzInfo.fzJzd" placeholder="请输入现居住地址"></el-input>
-          </el-form-item>
+        <el-col :offset="3" :span="21" v-show="fzInfo.sfzcjz == '0'">
+          <div class="card_bg">
+            <el-form-item label="现居住地址" prop="fzJzd" class="long">
+              <el-input v-model="fzInfo.fzJzd" placeholder="请输入现居住地址"></el-input>
+            </el-form-item>
+          </div>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
 
 
@@ -109,16 +111,19 @@
         </el-col>
         </el-col>
 
 
         <el-col :offset="2" :span="22" v-show="fzInfo.istsrq == '是'" class="iserea">
         <el-col :offset="2" :span="22" v-show="fzInfo.istsrq == '是'" class="iserea">
-          <el-form-item label="" prop="ryTsLb">
-            <el-checkbox-group v-model="fzInfo.ryTsLb">
-              <el-checkbox v-for="titem in tsrq" :label="titem.label" :name="titem.value"
-                :key="titem.value"></el-checkbox>
-            </el-checkbox-group>
-          </el-form-item>
+          <div class="card_bg">
 
 
-          <el-form-item label="具体情况" style="padding-left: 120px" prop="desc">
-            <el-input placeholder="请描述具体情况,非必填,限2000字符" type="textarea" v-model="fzInfo.desc"></el-input>
-          </el-form-item>
+            <el-form-item label="" prop="ryTsLb">
+              <el-checkbox-group v-model="fzInfo.ryTsLb">
+                <el-checkbox v-for="titem in tsrq" :label="titem.label" :name="titem.value"
+                  :key="titem.value"></el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+
+            <el-form-item label="具体情况" style="padding-left: 120px" prop="desc">
+              <el-input placeholder="请描述具体情况,非必填,限2000字符" type="textarea" v-model="fzInfo.desc"></el-input>
+            </el-form-item>
+          </div>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
 
 
@@ -220,7 +225,17 @@ export default {
       fwLoading: false,
       fwLoading: false,
       fwtdLoading: false,
       fwtdLoading: false,
       tsrq: [   // 特殊人群
       tsrq: [   // 特殊人群
-        '低收入群体', '失独丧偶', '外来务工', '孤寡老人', '出国人员', '利益受损', '残疾人', '留守儿童', '遭受病灾', '精神病人', '其他(未落户/未注销等)'
+        { label: '低收入群体', value: '低收入群体' },
+        { label: '失独丧偶', value: '失独丧偶' },
+        { label: '外来务工', value: '外来务工' },
+        { label: '孤寡老人', value: '孤寡老人' },
+        { label: '出国人员', value: '出国人员' },
+        { label: '利益受损', value: '利益受损' },
+        { label: '残疾人', value: '残疾人' },
+        { label: '留守儿童', value: '留守儿童' },
+        { label: '遭受病灾', value: '遭受病灾' },
+        { label: '精神病人', value: '精神病人' },
+        { label: '其他(未落户/未注销等)', value: '其他(未落户/未注销等)' },
       ]
       ]
     }
     }
   },
   },
@@ -276,18 +291,26 @@ export default {
       this.form.syyt = val.syyt.value
       this.form.syyt = val.syyt.value
     },
     },
     cancel() {
     cancel() {
-      this.$emit('refresh')
+      this.$store.commit('CHANGE_FWBZDZ', 'fwbzdz')
     },
     },
     save() {
     save() {
       this.form.dzbm = this.query.dzbm
       this.form.dzbm = this.query.dzbm
-      this.saveFwAndFz = true
+      // this.saveFwAndFz = true
       this.form.fzInfo = this.fzInfo
       this.form.fzInfo = this.fzInfo
-      saveFwAndFz(this.form).then(res => {
-        console.log('saveFwAndFz', res)
-      }).finally(() => {
-        this.saveFwAndFz = false
-        this.$emit('refresh')
+      this.$confirm('确定新增实有单位信息?', '提示', {
+        distinguishCancelAndClose: true,
+        confirmButtonText: '确认',
+        cancelButtonText: '取消'
+      }).then(() => {
+        saveFwAndFz(this.form).then(res => {
+          console.log('saveFwAndFz', res)
+
+          this.$emit('refresh')
+        }).finally(() => {
+          this.saveFwAndFz = false
+        })
       })
       })
+
     }
     }
   }
   }
 }
 }
@@ -304,11 +327,24 @@ export default {
   ::v-deep .el-form-item__content {
   ::v-deep .el-form-item__content {
     display: flex;
     display: flex;
     align-items: center;
     align-items: center;
+    min-height: 32px;
+  }
+
+  .rklx {
+    ::v-deep .el-radio {
+      margin-top: 8px;
+    }
   }
   }
 
 
   ::v-deep .el-textarea__inner {
   ::v-deep .el-textarea__inner {
     width: funpxw(420);
     width: funpxw(420);
   }
   }
+
+  .card_bg {
+    background-color: rgba(236, 242, 254, 0.3);
+    border-radius: 8px;
+    padding: 16px;
+  }
 }
 }
 
 
 .filebox {
 .filebox {
@@ -342,29 +378,6 @@ export default {
   margin-left: 12px;
   margin-left: 12px;
 }
 }
 
 
-.row_body {
-  margin: 12px 0;
-  display: flex;
-  align-items: center;
-
-  .row_label {
-    width: 148px;
-    color: rgba(111, 124, 163, 1);
-    font-size: 14px;
-    font-weight: 500;
-    text-align: right;
-    margin-right: 20px;
-    line-height: 32px;
-  }
-
-  .row_content {
-    color: rgba(4, 8, 20, 0.90);
-    font-weight: 400;
-    font-size: 14px;
-  }
-
-}
-
 .long {
 .long {
   ::v-deep .el-input {
   ::v-deep .el-input {
     width: funpxw(360);
     width: funpxw(360);

+ 17 - 13
src/views/ybss/fwbzdz/components/DetailSydw.vue

@@ -1,14 +1,14 @@
 <template>
 <template>
     <div v-loading="Loading">
     <div v-loading="Loading">
         <div class="custom_tab">
         <div class="custom_tab">
-            <div class="left" :class="{ selected: tabVal == '1' ? true : false }" @click="selectTab('1')"></div>
-            <div class="right" :class="{ selected: tabVal == '2' ? true : false }" @click="selectTab('2')"></div>
+            <div class="left" :class="{ selected: tabVal == '1' ? true : false }" @click="selectTab('1')">现有单位</div>
+            <div class="right" :class="{ selected: tabVal == '2' ? true : false }" @click="selectTab('2')">历史单位</div>
         </div>
         </div>
-        <DwBaseForm :formData="formData"></DwBaseForm>
-        <DwFrForm :formData="formData"></DwFrForm>
-        <DwDwbossForm :formData="formData"></DwDwbossForm>
-        <DwBwBossForm :formData="formData"></DwBwBossForm>
-        <DwDjInfoForm :formData="formData"></DwDjInfoForm>
+        <DwBaseForm :formData="formData" :options="options" @refresh="getData"></DwBaseForm>
+        <DwFrForm :formData="formData" @refresh="getData"></DwFrForm>
+        <DwDwbossForm :formData="formData" @refresh="getData"></DwDwbossForm>
+        <DwBwBossForm :formData="formData" @refresh="getData"></DwBwBossForm>
+        <DwDjInfoForm :formData="formData" @refresh="getData"></DwDjInfoForm>
 
 
     </div>
     </div>
 </template>
 </template>
@@ -35,14 +35,18 @@ export default {
         },
         },
     },
     },
     mounted() {
     mounted() {
-        this.Loading = true
-        sydwDetailBybzdz({ bzdz: this.query.bzdz }).then(res => {
-            console.log('sydwDetailBybzdz', res)
-        }).finally(() => {
-            this.Loading = false
-        })
+        this.getData()
     },
     },
     methods: {
     methods: {
+        getData() {
+            this.Loading = true
+            sydwDetailBybzdz({ dzbm: this.query.dzbm }).then(res => {
+                console.log('sydwDetailBybzdz', res)
+                this.formData = res.data.data
+            }).finally(() => {
+                this.Loading = false
+            })
+        },
         selectTab(val) {
         selectTab(val) {
             this.$set(this.$data, 'tabVal', val)
             this.$set(this.$data, 'tabVal', val)
         }
         }

+ 43 - 26
src/views/ybss/fwbzdz/components/DetailSyfw.vue

@@ -2,7 +2,7 @@
     <div v-loading="loading">
     <div v-loading="loading">
         <div class="item_head">
         <div class="item_head">
             <div class="title">房屋信息</div>
             <div class="title">房屋信息</div>
-            <div class="btn">修改</div>
+            <!-- <div class="btn" @click="editFw">修改</div> -->
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">房屋地址</div>
             <div class="row_label">房屋地址</div>
@@ -28,12 +28,12 @@
         <div class="row_body" style="display: flex">
         <div class="row_body" style="display: flex">
             <div class="row_label">房主照片</div>
             <div class="row_label">房主照片</div>
             <div class="row_content">
             <div class="row_content">
-                <el-image style="width: 100px; height: 100px" :src="fwinfo.fzZp" :fit="fit"></el-image>
+                <el-image style="width: 100px; height: 100px" :src="fzinfo.fzZp" :fit="fit"></el-image>
             </div>
             </div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">房主姓名</div>
             <div class="row_label">房主姓名</div>
-            <div class="row_content">{{ fwinfo.fzXm }}</div>
+            <div class="row_content">{{ fzinfo.fzXm }}</div>
         </div>
         </div>
         <!--        <div class="row_body">-->
         <!--        <div class="row_body">-->
         <!--            <div class="row_label">证件类型</div>-->
         <!--            <div class="row_label">证件类型</div>-->
@@ -41,19 +41,19 @@
         <!--        </div>-->
         <!--        </div>-->
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">证件号码</div>
             <div class="row_label">证件号码</div>
-            <div class="row_content">{{ fwinfo.fzSfzh }}</div>
+            <div class="row_content">{{ fzinfo.fzSfzh }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">人口类型</div>
             <div class="row_label">人口类型</div>
-            <div class="row_content">{{ fwinfo.ryType }}</div>
+            <div class="row_content">{{ fzinfo.ryType }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">户籍地址</div>
             <div class="row_label">户籍地址</div>
-            <div class="row_content">{{ fwinfo.hjdz }}</div>
+            <div class="row_content">{{ fzinfo.hjdz }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">是否是特殊人群</div>
             <div class="row_label">是否是特殊人群</div>
-            <div class="row_content">{{ fwinfo.ryTsJtqk }}</div>
+            <div class="row_content">{{ fzinfo.ryTsJtqk }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">是否是重点人员</div>
             <div class="row_label">是否是重点人员</div>
@@ -61,22 +61,22 @@
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">现居住地址</div>
             <div class="row_label">现居住地址</div>
-            <div class="row_content">{{ fwinfo.fzJzd }}</div>
+            <div class="row_content">{{ fzinfo.fzJzd }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">联系电话</div>
             <div class="row_label">联系电话</div>
-            <div class="row_content">{{ fwinfo.fzDh }}</div>
+            <div class="row_content">{{ fzinfo.fzDh }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">工作单位</div>
             <div class="row_label">工作单位</div>
-            <div class="row_content">{{ fwinfo.fzDw }}</div>
+            <div class="row_content">{{ fzinfo.fzDw }}</div>
         </div>
         </div>
         <div class="row_body">
         <div class="row_body">
             <div class="row_label">备注</div>
             <div class="row_label">备注</div>
-            <div class="row_content">{{ fwinfo.bz }}</div>
+            <div class="row_content">{{ fzinfo.bz }}</div>
         </div>
         </div>
         <div class="line"></div>
         <div class="line"></div>
-        <div class="item_head">
+        <div class="item_head" v-if="historyList.length > 0">
             <div class="title">变更记录</div>
             <div class="title">变更记录</div>
             <div class="btn"></div>
             <div class="btn"></div>
         </div>
         </div>
@@ -134,21 +134,27 @@
                 <div class="row_content"></div>
                 <div class="row_content"></div>
             </div>
             </div>
         </div>
         </div>
+        <FzDialog ref="FzDialog" :fzinfo="fzinfo" :options='options'></FzDialog>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
 import { syfwDetail } from '@/api/fwbzdz/fwbzdz.js'
 import { syfwDetail } from '@/api/fwbzdz/fwbzdz.js'
-import { bzdzDetail } from "../../../../api/fwbzdz/fwbzdz";         // 实有房屋详情
-
+import { bzdzDetail, bzdzSyrkDetail } from "@/api/fwbzdz/fwbzdz";         // 实有房屋详情
+import FzDialog from './FzDialog.vue'
 export default {
 export default {
     name: 'DetailSyfw',
     name: 'DetailSyfw',
+    components: { FzDialog },
+    props: {
+        options: {
+            type: Object
+        }
+    },
     data() {
     data() {
         return {
         return {
             loading: false,
             loading: false,
             fwinfo: {},
             fwinfo: {},
-            historyList: [
-                {}
-            ]
+            fzinfo: {},
+            historyList: []
         }
         }
     },
     },
     computed: {
     computed: {
@@ -157,22 +163,33 @@ export default {
         },
         },
     },
     },
     mounted() {
     mounted() {
-        this.loading = true;
-        bzdzDetail(this.query.dzbm).then(res => {
-            this.fwinfo = res.data.data
-            console.log('syfwDetail', res)
-        }).finally(() => {
-            this.loading = false
-        })
+        this.getData()
     },
     },
     methods: {
     methods: {
+        getData() {
+            this.loading = true;
+            bzdzDetail(this.query.dzbm).then(res => {
+                this.fwinfo = res.data.data
+                this.fzinfo = res.data.data
+
+            }).finally(() => {
+                this.loading = false
+            })
+            // bzdzSyrkDetail(this.query.dzbm).then(res => {
+            //     this.fzinfo = res.data.data
+            // }).finally(() => {
+            //     this.loading = false
+            // })
+        },
+        editFw() { },
         editFz() {
         editFz() {
-            this.$emit('fzInfo', this.fwinfo)
+
+            this.$refs.FzDialog.show()
+            // this.$emit('fzInfo', this.fzinfo)
         }
         }
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 @import '@/views/ybss/style/formnoedit.scss';
 @import '@/views/ybss/style/formnoedit.scss';
-
 </style>
 </style>

+ 369 - 0
src/views/ybss/fwbzdz/components/FzDialog.vue

@@ -0,0 +1,369 @@
+<template>
+    <el-dialog :title='fzTitle' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='false' top='8vh'
+        v-loading='loading'>
+        <el-form ref="formFz" :model="formFz" :rules="formFzRules" label-width="120px" size="small">
+            <el-form-item label="房屋地址" prop="fwDz" class="long">
+                <el-input v-model="fwDz" placeholder="请填写房屋地址" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="人员信息类型">
+                <!--            <el-input v-model="form.type" ></el-input>-->
+                <div @click="clickType(index, item.value)" class="typediv" :class="{ 'isactive': isclick == index }"
+                    v-for="(item, index) in typeList" :key="item.value">
+                    <img :src="item.icon" alt="">
+                    <span style="display: block">{{ item.name }}</span>
+                </div>
+            </el-form-item>
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="个人照片" prop="fzZp">
+                        <div v-loading="photoLoading" :element-loading-text="photoLoadingText"
+                            style="width: 80px;border: 1px solid #D4D6D9;height: 80px;text-align: center;border-radius: 8px">
+                            <input @change="getfile($event)" class="filebox" type="file" accept="image/*">
+                            <div v-if="!formFz.fzZp">
+                                <i class="el-icon-plus" style="font-size: 50px;color: #D4D6D9;line-height: 80px"></i>
+                            </div>
+                            <img v-else :src="formFz.fzZp" style="width: 100%">
+                        </div>
+                    </el-form-item>
+                    <el-form-item label="证件号码" prop="fzSfzh" class="nomal">
+                        <el-input v-model="formFz.fzSfzh" placeholder="证件号码"></el-input>
+                    </el-form-item>
+                    <el-form-item label="房主国籍" prop="fzgj" class="nomal" v-if="formFz.zjlx == '护照'">
+                        <el-select v-model="formFz.fzgj" placeholder="请选择">
+                            <el-option v-for="item in gjOp" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="户籍地址" prop="hjdz" class="long" v-if="formFz.zjlx != '护照'">
+                        <el-input v-model="formFz.hjdz" placeholder="请输入现住址"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="房主姓名" prop="fzXm" class="nomal" v-if="formFz.zjlx != '护照'">
+                        <el-input v-model="formFz.fzXm" placeholder="请输入房主姓名"></el-input>
+                    </el-form-item>
+                    <el-form-item label="房主英文姓" prop="fzYwx" class="nomal" v-if="formFz.zjlx == '护照'">
+                        <el-input v-model="formFz.fzYwx"></el-input>
+                    </el-form-item>
+
+                    <el-form-item label="房主英文名" prop="fzYwm" class="nomal" v-if="formFz.zjlx == '护照'">
+                        <el-input v-model="formFz.fzYwm"></el-input>
+                    </el-form-item>
+                    <el-form-item label="证件类型" prop="zjlx" class="nomal">
+                        <el-select v-model="formFz.zjlx" placeholder="请选择" @change="zjlxChange">
+                            <el-option v-for="item in zjOp" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="联系电话" class="nomal">
+                        <el-input v-model="formFz.fzDh" placeholder="请输入联系电话"></el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :offset="1" :span="23">
+                    <el-form-item label="人口类型" prop="rklx" class="rklx">
+                        <el-radio-group v-model="formFz.rklx">
+                            <el-radio :label="1">常住人口</el-radio>
+                            <el-radio :label="2">寄住人口</el-radio>
+                            <el-radio :label="3">暂住人口</el-radio>
+                            <el-radio :label="4">境外人员</el-radio>
+                            <el-radio :label="5">未落常人口</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :offset="1" :span="23">
+                    <el-form-item label="是否在此居住" prop="sfzcjz">
+                        <el-radio-group v-model="formFz.sfzcjz">
+                            <el-radio :label="1">是</el-radio>
+                            <el-radio :label="0">否</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-col>
+                <el-col :offset="3" :span="21" v-show="formFz.sfzcjz == '0'">
+                    <div class="card_bg">
+                        <el-form-item label="现居住地址" prop="fzJzd" class="long">
+                            <el-input v-model="formFz.fzJzd" placeholder="请输入现居住地址"></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :offset="1" :span="23">
+                    <el-form-item label="是否特殊人群" prop="istsrq">
+                        <el-radio-group v-model="formFz.istsrq">
+                            <el-radio label="是"></el-radio>
+                            <el-radio label="否"></el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-col>
+
+                <el-col :offset="2" :span="22" v-show="formFz.istsrq == '是'" class="iserea">
+                    <div class="card_bg">
+                        <el-form-item label="" prop="ryTsLb">
+                            <el-checkbox-group v-model="formFz.ryTsLb">
+                                <el-checkbox v-for="titem in options.tsrq" :label="titem.label"
+                                    :key="titem.value"></el-checkbox>
+                            </el-checkbox-group>
+                        </el-form-item>
+
+                        <el-form-item label="具体情况" style="padding-left: 120px" prop="desc">
+                            <el-input placeholder="请描述具体情况,非必填,限2000字符" type="textarea"
+                                v-model="formFz.desc"></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+            </el-row>
+
+
+            <el-col :offset="1" :span="23">
+                <el-form-item label="是否重点人">
+                    <el-radio-group v-model="formFz.iszdr">
+                        <el-radio label="是"></el-radio>
+                        <el-radio label="否"></el-radio>
+                    </el-radio-group>
+                </el-form-item>
+            </el-col>
+            <el-col :offset="1" :span="23">
+
+                <el-form-item label="联系电话" class="nomal">
+                    <el-input v-model="formFz.fzDh" placeholder="请输入联系电话"></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :offset="1" :span="23">
+                <el-form-item label="工作单位" class="long">
+                    <el-input v-model="formFz.fzDw" placeholder="请输入工作单位"></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :offset="1" :span="23">
+                <el-form-item label="备注">
+                    <el-input placeholder="请添加备注信息,非必填,限200字符" type="textarea" v-model="formFz.bz"></el-input>
+                </el-form-item>
+            </el-col>
+        </el-form>
+        <ZxDialog ref="ZxDialog" @changeFzType="changeFzType"></ZxDialog>
+        <div class='footer'>
+            <div class="btn_text_nomal" @click="deleteFz">注 销</div>
+            <div>
+                <button class='btn_primary' @click='dialogSave' style='margin-right: 24px;'>保存</button>
+                <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+            </div>
+        </div>
+    </el-dialog>
+</template>
+<script>
+import { fzUpdate,fzzx,saveFz } from '@/api/fwbzdz/syfw'
+import ZxDialog from './ZxDialog.vue'
+
+export default {
+    name: 'FzDialog',
+    props: {
+        fzinfo: {
+            type: Object,
+            default: () => {
+                return {
+                }
+            }
+        },
+        options: {
+            type: Object,
+        }
+    },
+    components: { ZxDialog },
+    data() {
+        return {
+            dialogVisible: false,
+            loading: false,
+            formFz: {
+                dzbm: '', fwlb: '', fwxz: '', fwyt: '', syyt: '', fwMj: '', fwJs: '', fzXm: '', ryTsLb: [],
+                fzYwx: '', fzYwm: '', zjlx: '身份证', fzgj: '', zjhm: '', hjdz: '', sfzcjz: 1, fzJzd: '', fzDh: '', fzDw: '', bz: '',
+            },
+            formFzRules: {},
+            typeList: [
+                { name: '常住人口', value: 'czrk', icon: require('@/views/ybss/syrk/asset/icon_type_permanent.svg') },
+                { name: '寄住人口', value: 'jzrk', icon: require('@/views/ybss/syrk/asset/icon_type_lodge.svg') },
+                { name: '暂住人口', value: 'zzrk', icon: require('@/views/ybss/syrk/asset/icon_type_stay.svg') },
+                { name: '境外人口', value: 'jwrk', icon: require('@/views/ybss/syrk/asset/icon_type_foreigner.svg') },
+                { name: '未落常人口', value: 'wlrk', icon: require('@/views/ybss/syrk/asset/icon_type_not.svg') }
+            ],
+            gjOp: [],
+            zjOp: [
+                { label: '护照', value: '护照' },
+                { label: '身份证', value: '身份证' },
+            ],
+            isclick: null,
+            fwDz: '',
+            fzType: '',
+        }
+    },
+    computed: {
+        query() {
+            return this.$store.state.thirdTitle.bzdzxq
+        },
+        fzTitle(){
+            if(this.fztype == 'zxing'){
+                return '新增房主信息'
+            }else{
+                return '修改房主信息'
+            }
+        }
+    },
+    watch: {
+        'fzinfo': {
+            handler: function (n) {
+                if (n) {
+                    this.formFz = JSON.parse(JSON.stringify(this.fzinfo))
+                }
+            }, deep: true, immediate: true
+        },
+        'dialogVisible': {
+            handler: function (n) {
+                if (n) {
+                    this.fzType = ''
+                }
+            }
+        }
+    },
+    mounted() {
+        this.fwDz = this.query.level1 + this.query.level2 + this.query.level3 + this.query.level4 + this.query.lcnpmh
+
+    },
+    methods: {
+        deleteFz() {
+            this.$refs.ZxDialog.show()
+        },
+        changeFzType(){
+            this.fzType = 'zxing'
+            this.formFz = {
+                dzbm: '', fwlb: '', fwxz: '', fwyt: '', syyt: '', fwMj: '', fwJs: '', fzXm: '', ryTsLb: [],
+                fzYwx: '', fzYwm: '', zjlx: '身份证', fzgj: '', zjhm: '', hjdz: '', sfzcjz: 1, fzJzd: '', fzDh: '', fzDw: '', bz: '',
+            }
+        },
+        clickType(index, value) {
+            this.$set(this.formFz, 'ryType', value)
+            this.$set(this.$data, 'isclick', index)
+            // this.isclick = index
+        },
+        show() {
+            this.dialogVisible = true
+        },
+        handleClose() {
+            this.dialogVisible = false
+        },
+        dialogSave() {
+            // this.formFz.fwDz = this.fwDz
+            if (this.fzType == 'zxing') {
+                this.$confirm('确定新增房主?', '提示', {
+                    distinguishCancelAndClose: true,
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消'
+                }).then(() => {
+                    fzzx(this.formFz).then(res=>{
+                        console.log('fzzx',res)
+                        saveFz(this.formFz).then((res2)=>{
+                            console.log('saveFz',res2)
+
+                        })
+                    })
+                })
+            } else {
+                this.$confirm('确定修改房主信息?', '提示', {
+                    distinguishCancelAndClose: true,
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消'
+                }).then(() => {
+                    // 根据 fzid
+                    fzUpdate(this.formFz).then((res)=>{
+                        console.log('fzUpdate',res)
+                    })
+                })
+            }
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/styles/public/form-style.scss';
+@import '@/styles/public/button-style.scss';
+
+::v-deep .el-dialog__body {
+    padding: 0;
+    // height: 70vh;
+    // overflow-y: scroll;
+}
+
+::v-deep .el-form-item__content {
+    display: flex;
+    align-items: center;
+    min-height: 32px;
+}
+
+.rklx {
+    ::v-deep .el-radio {
+        margin-top: 8px;
+    }
+}
+
+
+
+.card_bg {
+    background-color: rgba(236, 242, 254, 0.3);
+    border-radius: 8px;
+    padding: 16px;
+}
+
+.typediv {
+    float: left;
+    width: 102px;
+    height: 104px;
+    background: rgba(16, 109, 255, 0.02);
+    border-radius: 8px;
+    text-align: center;
+    padding-top: 16px;
+    margin-right: 16px;
+    border: 1px solid #ECF2FE;
+    cursor: pointer;
+    //border: 1px solid #106DFF;
+}
+
+.isactive {
+    border: 1px solid #106DFF
+}
+
+.filebox {
+    opacity: 0;
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.footer {
+    width: 100%;
+    height: 64px;
+    // box-shadow: 0px -1px 8px 0px rgba(0, 0, 0, 0.1);
+    display: flex;
+    // flex-direction: row-reverse;
+    justify-content: space-between;
+    align-items: center;
+
+    .btn_text_nomal {
+        font-size: 14px;
+        color: rgba(111, 124, 163, 1);
+        margin-left: 12px;
+        cursor: pointer;
+    }
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+</style>

+ 46 - 0
src/views/ybss/fwbzdz/components/NoData.vue

@@ -0,0 +1,46 @@
+<template>
+    <div class="no_data">
+        <img :src="pic_data_nothing" alt="">
+        <div class="text">暂无数据哦~</div>
+        <button class="btn">新增实有单位</button>
+    </div>
+</template>
+<script>
+export default {
+    name: 'NoData',
+    data() {
+        return {
+            pic_data_nothing: require('@/img/fwbzdz/pic_data_nothing.svg')
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.no_data {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+
+    .text {
+        font-size: 20px;
+        color: rgba(52, 67, 102, 1);
+        line-height: 28px;
+        margin: 8px;
+    }
+
+    .btn {
+        margin: 16px;
+        width: 144px;
+        height: 44px;
+        background-color: rgba(16, 109, 255, 1);
+        border: none;
+        border-radius: 22px;
+        color: rgba(255, 255, 255, 0.90);
+        font-size: 16px;
+        font-weight: 500;
+    }
+}
+</style>

+ 126 - 0
src/views/ybss/fwbzdz/components/ZxDialog.vue

@@ -0,0 +1,126 @@
+<template>
+    <el-dialog title='确定注销房主信息吗?' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='false' top='8vh'
+        v-loading='loading'>
+        <div>
+            <div>
+                <div class="row_body">
+                    <div class="row_label">房主照片</div>
+                    <div class="row_content">
+                        <el-image style="width: 100px; height: 100px" :src="fzInfo.ryZp" :fit="fill"></el-image>
+                    </div>
+                </div>
+                <div class="row_body">
+                    <div class="row_label">房主姓名</div>
+                    <div class="row_content"><span>{{ fzInfo.ryXm }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">证件类型</div>
+                    <el-select v-model="fzInfo.zjlx" placeholder="请选择" @change="zjlxChange">
+                        <el-option v-for="item in zjOp" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">证件号码</div>
+                    <div class="row_content"><span>{{ fzInfo.rySfzh }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">人口类型</div>
+                    <div class="row_content"><span>{{ fzInfo.ryType }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">户籍地址</div>
+                    <div class="row_content"><span>{{ fzInfo.hjdz }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">是否是特殊人群</div>
+                    <div class="row_content"><span>{{ fzInfo.istsrq }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">现居住地址</div>
+                    <div class="row_content"><span>{{ fzInfo.dwDz }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">联系电话</div>
+                    <div class="row_content"><span>{{ fzInfo.ryDh }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">工作单位</div>
+                    <div class="row_content"><span>{{ fzInfo.gzdw }}</span></div>
+                </div>
+
+                <div class="row_body">
+                    <div class="row_label">备注</div>
+                    <div class="row_content"><span>{{ fzInfo.bz }}</span></div>
+                </div>
+            </div>
+
+            <div style="color: #E65E69;padding: 20px 0">
+                <i class="el-icon-warning-outline"></i>
+                信息注销后不可恢复,需马上登记新房主信息
+            </div>
+
+        </div>
+        <div class='footer'>
+            <button class='btn_primary' @click='dialogSave' style='margin-right: 24px;'>确定</button>
+            <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
+        </div>
+    </el-dialog>
+</template>
+<script>
+export default {
+    name: 'ZxDialog',
+    data() {
+        return {
+            dialogVisible: false,
+            loading: false,
+            zjOp: [
+                { label: '护照', value: '护照' },
+                { label: '身份证', value: '身份证' },
+            ],
+        }
+    },
+    methods: {
+        show() {
+            this.dialogVisible = true
+        },
+        handleClose() {
+            this.dialogVisible = false
+        },
+        dialogSave() {
+            this.$emit('changeFzType')
+            this.dialogVisible = false
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/styles/public/form-style.scss';
+@import '@/styles/public/button-style.scss';
+
+::v-deep .el-dialog__body {
+    padding: 0;
+}
+
+.footer {
+    width: 100%;
+    height: 64px;
+    display: flex;
+    flex-direction: row-reverse;
+    align-items: center;
+
+    button {
+        width: 65px;
+        height: 32px;
+        border-radius: 16px
+    }
+}
+</style>

+ 0 - 9
src/views/ybss/fwbzdz/fwbzdz.vue

@@ -150,15 +150,6 @@ export default {
       }).finally(() => {
       }).finally(() => {
         this.ldphLoading = false
         this.ldphLoading = false
       })
       })
-    },
-    changeDate(date) {
-      var Y = date.getFullYear() + '-';
-      var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-      var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
-      var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
-      var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
-      var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
-      return Y + M + D + h + m + s
     }
     }
   },
   },
 }
 }

+ 6 - 1
src/views/ybss/fwbzdz/index.vue

@@ -2,7 +2,7 @@
   <!-- <component :is="fwbzdz"></component> -->
   <!-- <component :is="fwbzdz"></component> -->
    <div>
    <div>
     <fwbzdz ref="fwbzdz" v-show="fwbzdz == 'fwbzdz'" @postlcnpmh="postlcnpmh"></fwbzdz>
     <fwbzdz ref="fwbzdz" v-show="fwbzdz == 'fwbzdz'" @postlcnpmh="postlcnpmh"></fwbzdz>
-    <bzdzxq ref="bzdzxq" v-show="fwbzdz == 'bzdzxq'" :lcnpmhData="lcnpmhData" @refresh="refresh"></bzdzxq>
+    <bzdzxq ref="bzdzxq" v-if="fwbzdz == 'bzdzxq'" :lcnpmhData="lcnpmhData" @refresh="refresh"></bzdzxq>
    </div>
    </div>
 </template>
 </template>
 <script>
 <script>
@@ -20,6 +20,11 @@ export default {
       return this.$store.state.thirdTitle.fwbzdz
       return this.$store.state.thirdTitle.fwbzdz
     }
     }
   },
   },
+  watch: {
+    fwbzdz(val){
+      console.log('fwbzdz',val)
+    }
+  },
   methods: {
   methods: {
     postlcnpmh(params){
     postlcnpmh(params){
       console.log('postlcnpmh',params)
       console.log('postlcnpmh',params)

+ 2 - 1
src/views/ybss/style/formnoedit.scss

@@ -2,7 +2,8 @@
   display: flex;
   display: flex;
   justify-content: space-between;
   justify-content: space-between;
   align-items: center;
   align-items: center;
-  margin: 8px 0;
+  margin-top: 8px;
+  margin-bottom: 16px;
 
 
   .title {
   .title {
     font-size: 16px;
     font-size: 16px;

+ 70 - 7
src/views/ybss/sydw/components/AddSydwDialog.vue

@@ -1,10 +1,13 @@
 <template>
 <template>
-    <el-dialog title='新增实有单位信息' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='false' top='8vh'
-        v-loading='loading'>
+    <el-dialog title='新增实有单位信息' :visible.sync='dialogVisible' @before-close='handleClose()' :modal='true' top='8vh'
+        v-loading='loading' width="60%">
         <div>
         <div>
-            <DwBaseEdit ></DwBaseEdit>
+            <DwBaseEdit ref="DwBaseEdit" :options="options"></DwBaseEdit>
+            <DwFrEdit ref="DwFrEdit"></DwFrEdit>
+            <DwDwbossEdit ref="DwDwbossEdit"></DwDwbossEdit>
+            <DwBwBossEdit ref="DwBwBossEdit"></DwBwBossEdit>
             <div class='footer'>
             <div class='footer'>
-                <button class='btn_primary' @click='dialogSave' style='margin-right: 24px;'>确定</button>
+                <button class='btn_primary' @click.stop='dialogSave' style='margin-right: 24px;'>确定</button>
                 <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
                 <button class='btn_nomal' @click='dialogVisible = false' style='margin-right: 12px;'>取消</button>
             </div>
             </div>
         </div>
         </div>
@@ -12,16 +15,26 @@
 </template>
 </template>
 <script>
 <script>
 import DwBaseEdit from '../../components/DwBaseEdit.vue';
 import DwBaseEdit from '../../components/DwBaseEdit.vue';
+import DwFrEdit from '../../components/DwFrEdit.vue';
+import DwDwbossEdit from '../../components/DwDwbossEdit.vue';
+import DwBwBossEdit from '../../components/DwBwBossEdit.vue';
+import { dictionaryList, sydwSave } from "@/api/fwbzdz/sydw";
 
 
 export default {
 export default {
     name: 'AddSydwDialog',
     name: 'AddSydwDialog',
-    components: { DwBaseEdit },
+    components: { DwBaseEdit, DwFrEdit, DwDwbossEdit, DwBwBossEdit },
     data() {
     data() {
         return {
         return {
             dialogVisible: false,
             dialogVisible: false,
-            loading: false
+            loading: false,
+            options: {}
         }
         }
     },
     },
+    mounted() {
+        dictionaryList().then(res => {
+            this.options = res.data.data
+        })
+    },
     methods: {
     methods: {
         show() {
         show() {
             this.dialogVisible = true
             this.dialogVisible = true
@@ -29,8 +42,53 @@ export default {
         handleClose() {
         handleClose() {
             this.dialogVisible = false
             this.dialogVisible = false
         },
         },
+        createPromise(name) {
+            return new Promise((resolve, reject) => {
+                this.$refs[name].$refs.form.validate((valid) => {
+                    if (valid) {
+                        resolve()
+                    } else {
+                        reject()
+                    }
+                })
+            })
+        },
         dialogSave() {
         dialogSave() {
-            this.emit('fwdzSave', {})
+            this.$confirm('确定新增实有单位信息?', '提示', {
+                distinguishCancelAndClose: true,
+                confirmButtonText: '确认',
+                cancelButtonText: '取消'
+            }).then(() => {
+                let p1 = this.createPromise('DwBaseEdit')
+                let p2 = this.createPromise('DwFrEdit')
+                let p3 = this.createPromise('DwDwbossEdit')
+                Promise.all([p1, p2, p3]).then(res => {
+                    const param1 = this.$refs.DwBaseEdit.formData
+                    const param2 = this.$refs.DwFrEdit.formData
+                    const param3 = this.$refs.DwDwbossEdit.formData
+                    const param4 = this.$refs.DwBwBossEdit.formData
+
+                    sydwSave({ ...param1, ...param2, ...param3, ...param4, cyryList: [] }).then(res => {
+                        if (res.data.success) {
+                            this.$emit('refresh')
+                            this.handleClose()
+                            this.$message({
+                                showClose: true,
+                                message: '新增成功',
+                                type: 'success'
+                            });
+                        }
+                    })
+                }).catch(err => {
+                    console.log('all', err)
+                    this.$message({
+                        showClose: true,
+                        message: '请输入必填项',
+                        type: 'warning'
+                    });
+                })
+            })
+
         },
         },
     }
     }
 }
 }
@@ -40,7 +98,10 @@ export default {
 
 
 ::v-deep .el-dialog__body {
 ::v-deep .el-dialog__body {
     padding: 0;
     padding: 0;
+    height: 70vh;
+    overflow-y: scroll;
 }
 }
+
 .footer {
 .footer {
     width: 100%;
     width: 100%;
     height: 64px;
     height: 64px;
@@ -48,9 +109,11 @@ export default {
     display: flex;
     display: flex;
     flex-direction: row-reverse;
     flex-direction: row-reverse;
     align-items: center;
     align-items: center;
+
     button {
     button {
         width: 65px;
         width: 65px;
         height: 32px;
         height: 32px;
+        border-radius: 16px
     }
     }
 }
 }
 </style>
 </style>

+ 5 - 5
src/views/ybss/sydw/components/Cyry.vue

@@ -31,14 +31,11 @@
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
-import crudmixin from '@/mixins/newcrud.js';
 import defaultOptions from '@/option/defaultOption.js';
 import defaultOptions from '@/option/defaultOption.js';
-import { getsyfwList } from "@/api/fwbzdz/fwbzdz";
 import HistoryInfo from './HistoryInfo.vue';
 import HistoryInfo from './HistoryInfo.vue';
 
 
-export default {
+export default window.$crudCommon({
     components: { HistoryInfo },
     components: { HistoryInfo },
-    mixins: [crudmixin],
     data() {
     data() {
         return {
         return {
             dataList: {},
             dataList: {},
@@ -116,7 +113,10 @@ export default {
             });
             });
         }
         }
     }
     }
-}
+}, {
+    api: 'fwbzdz/sydw',
+    option: 'ybss/syrk'
+});
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .cyry {
 .cyry {

+ 35 - 109
src/views/ybss/sydw/components/DetailDwxx.vue

@@ -1,81 +1,30 @@
 <template>
 <template>
-    <div>
-        <div class="item_head">
-            <div class="title">基本信息</div>
-            <div class="btn">修改</div>
-        </div>
-        <div class="row_body" v-for="item in dataBase" :key="item.label">
-            <div class="row_label">{{ item.label }}</div>
-            <div class="row_content">{{ item.value }}</div>
-        </div>
+    <div v-loading="loading">
+        <DwBaseForm ref="DwBaseForm" :formData="baseFormData" :options="options" @refresh="getData"></DwBaseForm>
         <div class="line"></div>
         <div class="line"></div>
-        <div class="item_head">
-            <div class="title">保卫负责人信息</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">保卫负责人照片</div>
-            <div class="row_content"></div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">保卫负责人姓名</div>
-            <div class="row_content">李斯那</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">证件类型</div>
-            <div class="row_content">身份证</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">公民身份证号</div>
-            <div class="row_content">220110 1985 1010 4231</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">联系电话</div>
-            <div class="row_content">188 4567 5578</div>
-        </div>
+        <DwDwbossForm ref="DwDwbossForm" :formData="dwFormData" @refresh="getData"></DwDwbossForm>
         <div class="line"></div>
         <div class="line"></div>
-        <div class="item_head">
-            <div class="title">登记信息</div>
-        </div>
-        <div class="row_body" v-for="item in dataLogin" :key="item.label">
-            <div class="row_label">{{ item.label }}</div>
-            <div class="row_content">{{ item.value }}</div>
-        </div>
+        <DwBwBossForm ref="DwBwBossForm" :formData="bwFormData" @refresh="getData"></DwBwBossForm>
+        <div class="line"></div>
+        <DwDjInfoForm ref="DwDjInfoForm" :formData="djFormData"></DwDjInfoForm>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
-import { sydwDetail } from '@/api/fwbzdz/fwbzdz.js';
-
+import { sydwDetailBysydwid, dictionaryList } from '@/api/fwbzdz/sydw.js';
+import DwBaseForm from '../../components/DwBaseForm.vue';
+import DwDwbossForm from '../../components/DwDwbossForm.vue';
+import DwBwBossForm from '../../components/DwBwBossForm.vue'
+import DwDjInfoForm from '../../components/DwDjInfoForm.vue';
 export default {
 export default {
+    components: { DwBaseForm, DwDwbossForm, DwBwBossForm, DwDjInfoForm },
     data() {
     data() {
         return {
         return {
-            dataBase: [
-                { label: '单位名称', value: '吉林省光阴的故事酒吧有限公司' },
-                { label: '社会统一代码', value: '9122 0100 MA7J TK9K 0L' },
-                { label: '单位类型', value: '娱乐服务场所' },
-                { label: '行业类别', value: '餐饮业' },
-                {
-                    label: '经营范围(主营)', value: `果盘制作(不含凉菜,不含裱花蛋糕,不含生食海产品。餐饮服务);
-                酒吧演艺;预包装食品、散装食品销售,香烟零售(依法须经批准的项目,经相关部门批准后方可开展经营活动)。`},
-                { label: '经营范围(兼营)', value: '酒水、干果、小食品零售;果盘制作(不含凉菜,不含裱花蛋糕,不含生食海产品。' },
-                { label: '经营面积(㎡)', value: '136.88㎡' },
-                { label: '经营方式', value: '有限责任公司(自然人投资或控股)' },
-                { label: '营业期限', value: '2022-03-22 至 无固定期限' },
-                { label: '注册资金', value: '200万(元)' },
-                { label: '联系电话', value: '180 4300 3418' },
-                { label: '注册地址', value: '吉林省长春市朝阳区红旗街1768号(长影商务景都地下室)' },
-                { label: '单位网址', value: '暂无网址' },
-                { label: '重点单位标识', value: '否' },
-                { label: '消防重点单位标识', value: '否' },
-            ],
-            dataLogin: [
-                { label: '所属社区', value: '南湖中街社区' },
-                { label: '所属派出所', value: '长春市朝阳区清河派出所' },
-                { label: '登记人警号', value: '104 456' },
-                { label: '登记人姓名', value: '王武' },
-                { label: '公民身份证号', value: '220110 1985 1010 4231' },
-                { label: '登记时间', value: '2022-03-22 09:23:45' },
-                { label: '最新修改时间', value: '2024-07-30 14:22:34' },
-            ]
+            loading: false,
+            options: {},
+            baseFormData: {},
+            dwFormData: {},
+            bwFormData: {},
+            djFormData: {}
         }
         }
     },
     },
     computed: {
     computed: {
@@ -84,54 +33,31 @@ export default {
         },
         },
     },
     },
     mounted() {
     mounted() {
-        sydwDetail({ dzbm: this.query.dzbm }).then(res => {
-            console.log('sydwDetail', res)
+        dictionaryList().then(res => {
+            this.options = res.data.data
         })
         })
+        this.getData()
+    },
+    methods: {
+        getData() {
+            this.loading = true
+            sydwDetailBysydwid({ id: this.query.id }).then(res => {
+                const datas = JSON.parse(JSON.stringify(res.data.data))
+                this.baseFormData = datas
+                this.dwFormData = datas
+                this.bwFormData = datas
+                this.djFormData = datas
+            }).finally(() => {
+                this.loading = false
+            })
+        },
     }
     }
 }
 }
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-.item_head {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    margin: 8px 0;
-
-    .title {
-        font-size: 16px;
-        font-weight: 600;
-        color: rgba(4, 8, 20, 0.9);
-    }
-
-    .btn {
-        font-size: 14px;
-        font-weight: 400;
-        color: rgba(16, 109, 255, 1);
-        cursor: pointer;
-    }
-}
-
 .line {
 .line {
     width: 100%;
     width: 100%;
     margin: 16px 0;
     margin: 16px 0;
     border-bottom: 1px solid rgba(231, 231, 231, 1);
     border-bottom: 1px solid rgba(231, 231, 231, 1);
 }
 }
-
-.row_body {
-    margin-bottom: 8px;
-    display: flex;
-    font-size: 14px;
-    font-weight: 400;
-    line-height: 22px;
-
-    .row_label {
-        width: 120px;
-        color: rgba(111, 124, 163, 1);
-    }
-
-    .row_content {
-        flex: 1;
-        color: rgba(4, 8, 20, 0.90);
-    }
-}
 </style>
 </style>

+ 0 - 70
src/views/ybss/sydw/components/Frxx.vue

@@ -1,70 +0,0 @@
-<template>
-    <div>
-        <div class="row_body_top">
-            <div class="row_body">
-                <div class="row_label">法人照片</div>
-                <div class="row_content"></div>
-            </div>
-            <div class="btn">修改</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">法人姓名</div>
-            <div class="row_content">张三</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">法人性别</div>
-            <div class="row_content">男</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">公民身份号码</div>
-            <div class="row_content">220110 1985 1010 4231</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">联系电话</div>
-            <div class="row_content">188 4567 5578</div>
-        </div>
-        <div class="row_body">
-            <div class="row_label">现居住地址</div>
-            <div class="row_content">长春市绿园区绿源小区A8栋4单元201室</div>
-        </div>
-    </div>
-</template>
-<script>
-export default {
-    data() {
-        return {}
-    }
-}
-</script>
-<style lang="scss" scoped>
-.row_body {
-    margin-bottom: 8px;
-    display: flex;
-
-    .row_label {
-        width: 120px;
-        color: rgba(111, 124, 163, 1);
-        font-size: 14px;
-        font-weight: 400;
-    }
-
-    .row_content {
-        flex: 1;
-        color: rgba(4, 8, 20, 0.90);
-        font-weight: 400;
-        font-size: 14px;
-    }
-}
-
-.row_body_top {
-    margin: 8px 0;
-    display: flex;
-    justify-content: space-between;
-
-    .btn {
-        font-size: 14px;
-        font-weight: 400;
-        color: rgba(16, 109, 255, 1);
-    }
-}
-</style>

+ 5 - 2
src/views/ybss/sydw/sydw.vue

@@ -30,7 +30,7 @@
                 <el-tag>{{ row.categoryName }}</el-tag>
                 <el-tag>{{ row.categoryName }}</el-tag>
             </template> -->
             </template> -->
         </avue-crud>
         </avue-crud>
-        <AddSydwDialog ref="AddSydwDialog"></AddSydwDialog>
+        <AddSydwDialog ref="AddSydwDialog" @refresh="refresh"></AddSydwDialog>
     </basic-container>
     </basic-container>
 </template>
 </template>
 <script>
 <script>
@@ -49,12 +49,15 @@ export default window.$crudCommon({
         }
         }
     },
     },
     mounted() {
     mounted() {
-        console.log('sydw', this)
+        // console.log('sydw', this)
     },
     },
     methods: {
     methods: {
         addsydw() {
         addsydw() {
             this.$refs.AddSydwDialog.show()
             this.$refs.AddSydwDialog.show()
         },
         },
+        refresh(){
+            this.searchReset()
+        },
         importFile() {
         importFile() {
             this.onLoad()
             this.onLoad()
         },
         },

+ 14 - 3
src/views/ybss/sydw/sydwxq.vue

@@ -27,7 +27,7 @@
                     <DetailDwxx></DetailDwxx>
                     <DetailDwxx></DetailDwxx>
                 </el-tab-pane>
                 </el-tab-pane>
                 <el-tab-pane label="法人信息" name="frxx">
                 <el-tab-pane label="法人信息" name="frxx">
-                    <Frxx></Frxx>
+                    <DwFrForm ref="DwFrForm" v-loading="frLoading" :formData="frFormData" @refresh="getData"></DwFrForm>
                 </el-tab-pane>
                 </el-tab-pane>
                 <el-tab-pane :label="'从业人员(' + syrkNum + ')'" name="cyry">
                 <el-tab-pane :label="'从业人员(' + syrkNum + ')'" name="cyry">
                     <Cyry v-if="activeName == 'cyry'"></Cyry>
                     <Cyry v-if="activeName == 'cyry'"></Cyry>
@@ -40,11 +40,11 @@
 <script>
 <script>
 import { syfwDetail } from '@/api/fwbzdz/fwbzdz.js';        // 实有房屋详情
 import { syfwDetail } from '@/api/fwbzdz/fwbzdz.js';        // 实有房屋详情
 import DetailDwxx from './components/DetailDwxx.vue';      // 单位信息
 import DetailDwxx from './components/DetailDwxx.vue';      // 单位信息
-import Frxx from './components/Frxx.vue';           // 法人信息
 import Cyry from './components/Cyry.vue';           // 从业人员
 import Cyry from './components/Cyry.vue';           // 从业人员
+import DwFrForm from '../components/DwFrForm.vue'        // 法人信息
 
 
 export default {
 export default {
-    components: { DetailDwxx,Frxx,Cyry },
+    components: { DetailDwxx, DwFrForm, Cyry },
     data() {
     data() {
         return {
         return {
             icon_unit_color_88: require('@/img/fwbzdz/icon_unit_color_88.svg'),
             icon_unit_color_88: require('@/img/fwbzdz/icon_unit_color_88.svg'),
@@ -54,6 +54,7 @@ export default {
             tabLoading: false,
             tabLoading: false,
             sydwNum: 0,
             sydwNum: 0,
             syrkNum: 0,
             syrkNum: 0,
+            frLoading: false
         }
         }
     },
     },
     computed: {
     computed: {
@@ -65,8 +66,18 @@ export default {
         // syfwDetail(this.query.dzbm).then(res => {
         // syfwDetail(this.query.dzbm).then(res => {
         //     console.log('syfwDetail', res)
         //     console.log('syfwDetail', res)
         // })
         // })
+        this.getData()
     },
     },
     methods: {
     methods: {
+        getData() {
+            this.frLoading = true
+            sydwDetailBysydwid({ id: this.query.id }).then(res => {
+                const datas = JSON.parse(JSON.stringify(res.data.data))
+                this.frFormData = datas
+            }).finally(() => {
+                this.frLoading = false
+            })
+        },
         handleClick(val) {
         handleClick(val) {
         },
         },
         getData(method) {
         getData(method) {

+ 11 - 4
src/views/ybss/syfw/syfw.vue

@@ -11,7 +11,11 @@
                 </div>
                 </div>
             </template>
             </template>
             <template slot-scope="scope" slot="menu">
             <template slot-scope="scope" slot="menu">
-                <div @click.stop="rowDelete(scope.row)" class="row_btn">注销</div>
+                <div style="display: flex;justify-content: space-around;">
+                    <div @click.stop="rowView(scope.row)" class="btn_text">查看</div>
+                    <div @click.stop="rowEdit(scope.row)" class="btn_text">修改</div>
+                    <div @click.stop="rowDelete(scope.row)" class="btn_text">注销</div>
+                </div>
             </template>
             </template>
             <!-- <template slot-scope="{row}" slot="tenantId">
             <!-- <template slot-scope="{row}" slot="tenantId">
                 <el-tag>{{ row.tenantId === '' ? '通用' : row.tenantId }}</el-tag>
                 <el-tag>{{ row.tenantId === '' ? '通用' : row.tenantId }}</el-tag>
@@ -53,6 +57,8 @@ export default window.$crudCommon({
             this.$store.commit('POST_SYFWXQ', {})
             this.$store.commit('POST_SYFWXQ', {})
             //this.$store.commit('CHANGE_SYFW','syfwxq')
             //this.$store.commit('CHANGE_SYFW','syfwxq')
         },
         },
+        rowView(){},
+        rowEdit(){},
         rowDelete(row) { },
         rowDelete(row) { },
         onLoad(page = this.page, params = {}) {
         onLoad(page = this.page, params = {}) {
             this.loading = true;
             this.loading = true;
@@ -71,8 +77,9 @@ export default window.$crudCommon({
 });
 });
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-.row_btn {
-    color: rgba(16, 109, 255, 1);
-    font-size: 14px;
+.btn_text {
+    color: rgba(16, 109, 255, 1) !important;
+    font-size: 14px !important;
+    cursor: pointer;
 }
 }
 </style>
 </style>

+ 2 - 2
src/views/ybss/syrk/components/edit.vue

@@ -9,7 +9,8 @@
         <el-row>
         <el-row>
           <el-form-item label="人员信息类型" >
           <el-form-item label="人员信息类型" >
             <!--            <el-input v-model="form.type" ></el-input>-->
             <!--            <el-input v-model="form.type" ></el-input>-->
-            <div @click="clickType(index,item.value)" class="typediv" :class="{'isactive':isclick==index}" v-for="(item,index) in typeList">
+            <div @click="clickType(index,item.value)" class="typediv" :class="{'isactive':isclick==index}"
+              v-for="(item,index) in typeList" :key="item.value">
               <img :src="item.icon" alt="">
               <img :src="item.icon" alt="">
               <span style="display: block">{{item.name}}</span>
               <span style="display: block">{{item.name}}</span>
             </div>
             </div>
@@ -326,7 +327,6 @@ export default {
     inits(){
     inits(){
       dictionaryList().then(res => {
       dictionaryList().then(res => {
         const data = res.data.data
         const data = res.data.data
-        console.log('dictionaryList', data)
         this.options = data
         this.options = data
         this.gjOp = data.gjdq
         this.gjOp = data.gjdq
         this.tsrq = data.tsrq
         this.tsrq = data.tsrq

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików