From 95448b340895b846a0076d4c99a5e27d6be46aab Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Mon, 26 Feb 2024 14:18:26 +0800
Subject: [PATCH] 物业bug修复

---
 src/views/property/components/propertyEdit.vue |  591 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 312 insertions(+), 279 deletions(-)

diff --git a/src/views/property/components/propertyEdit.vue b/src/views/property/components/propertyEdit.vue
index cdd9f0e..2ea7080 100644
--- a/src/views/property/components/propertyEdit.vue
+++ b/src/views/property/components/propertyEdit.vue
@@ -1,312 +1,345 @@
 <template>
-    <el-dialog title="" append-to-body :visible.sync="infoVisible" top="10vh" width="70%" :before-close="handleClose">
-        <el-tabs v-model="activeName" @tab-click="handleClick">
-            <!-- <el-tab-pane label="物业信息" name="first"></el-tab-pane> -->
-            <el-tab-pane label="基础信息" name="info1"></el-tab-pane>
-            <el-tab-pane label="经营信息" name="info2"></el-tab-pane>
-            <el-tab-pane label="纳税信息" name="info3"></el-tab-pane>
-            <el-tab-pane label="党建信息" name="info4"></el-tab-pane>
-            <el-tab-pane label="街道社区" name="info8"></el-tab-pane>
-            <el-tab-pane label="企业良好行为" name="info5"></el-tab-pane>
-            <el-tab-pane label="项目良好行为" name="info6"></el-tab-pane>
-            <el-tab-pane label="违法违规行为惩戒" name="info7"></el-tab-pane>
+  <el-dialog title="" append-to-body :visible.sync="infoVisible" top="10vh" width="70%" :before-close="handleClose">
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <!-- <el-tab-pane label="物业信息" name="first"></el-tab-pane> -->
+      <!-- <el-tab-pane label="基础信息" name="info1"></el-tab-pane> -->
+      <!-- <el-tab-pane label="经营信息" name="info2"></el-tab-pane> -->
+      <!-- <el-tab-pane label="纳税信息" name="info3"></el-tab-pane> -->
+      <!-- <el-tab-pane label="党建信息" name="info4"></el-tab-pane> -->
+      <el-tab-pane label="街道社区" name="info8"></el-tab-pane>
+      <!-- <el-tab-pane label="企业良好行为" name="info5"></el-tab-pane> -->
+      <!-- <el-tab-pane label="项目良好行为" name="info6"></el-tab-pane> -->
+      <!-- <el-tab-pane label="违法违规行为惩戒" name="info7"></el-tab-pane> -->
 
-        </el-tabs>
+    </el-tabs>
 
 
-        <!-- <avue-form :option="option" v-model="first" v-if="activeName == 'first'" @submit="rowSave"></avue-form> -->
+    <!-- <avue-form :option="option" v-model="first" v-if="activeName == 'first'" @submit="rowSave"></avue-form> -->
 
-        <!-- <avue-form :option="option" v-model="second" v-if="activeName == 'second'"></avue-form> -->
-        <div v-if="activeName != 'first'">
-            <div v-for="(item, index) in questionBankData" :key="index">
-                <div>
-                    {{ index + 1 }} .{{ item.subjectName }}
-                </div>
-                <!-- <div v-for="(item1, index1) in item.subjectOptionList" :key="index1"> -->
-                <!-- <div>
-            {{ item1.optionName }}
-          </div> -->
-                <!-- <el-radio-group v-model="item.ids" v-if="item.choicesType == 0"> -->
-
-                <div v-if="item.choicesType == 0">
-                    <div v-for="(item1, index1) in item.subjectOptionList" :key="index1">
-                        <el-radio v-model="item1.ids" :label="item1.id">{{ item1.optionName }}</el-radio>
-                    </div>
-                </div>
-
-                <!-- </el-radio-group> -->
-
-                <div v-if="item.choicesType == 3">
-
-                    <div v-for="(item1, index1) in item.subjectOptionList" :key="index1" style="display: flex;">
-                        <div>{{ item1.optionName }}:</div>
-                        <el-input-number v-model="item1.numbers" @change="handleChange" :min="0" :max="25"
-                            :label="item1.optionName"></el-input-number>
-                    </div>
-
-                    <!-- <el-input v-model="item1.numbers" type="number" :placeholder="item1.optionName"></el-input> -->
-                </div>
-
-                <!-- </div> -->
-            </div>
-
+    <!-- <avue-form :option="option" v-model="second" v-if="activeName == 'second'"></avue-form> -->
+    <div class="answer" v-show="activeName != 'info0'">
+      <div class="topic-item" v-for="(item, index) in questionBankData" :key="index">
+        <div class="topic-title">
+          {{ index + 1 }} .{{ item.subjectName }}
         </div>
 
-        <div slot="footer" class="dialog-footer">
-            <el-button @click="infoVisible = false">取 消</el-button>
-            <el-button type="primary" @click="submit">提 交</el-button>
+        <div class="topic-options" v-if="item.choicesType == 0">
+          <el-radio-group v-model="item.chooseId" @input="inputs()">
+            <el-radio :label="item1.id" v-for="(item1, index1) in item.subjectOptionList" :key="index1">{{
+                              item1.optionName }}</el-radio>
+          </el-radio-group>
         </div>
 
+        <div class="topic-options" v-if="item.choicesType == 3">
+          <div class="input-num-item" v-for="(item1, index1) in item.subjectOptionList" :key="index1">
+            <div class="num-name">{{ item1.optionName }}:</div>
+            <el-input-number v-model="item1.numbers" @change="handleChange" :min="0" :max="25"
+              :label="item1.optionName"></el-input-number>
+          </div>
+        </div>
+      </div>
 
-    </el-dialog>
+    </div>
+
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="infoVisible = false">取 消</el-button>
+      <el-button type="primary" @click="submit">提 交</el-button>
+    </div>
+
+
+  </el-dialog>
 </template>
 <script>
-import {
+  import {
     getList,
     remove
-} from "@/api/subjectChoices/subjectChoices"
+  } from "@/api/subjectChoices/subjectChoices"
 
-import {
+  import {
     save
-} from "@/api/answerRecord/answerRecord"
-import {
+  } from "@/api/answerRecord/answerRecord"
+  import {
     add
-} from "@/api/property/propertyCompany"
-import {
+  } from "@/api/property/propertyCompany"
+  import {
     mapGetters
-} from "vuex"
-export default {
-    data () {
-        return {
-            property: {},
-            activeName: 'info1',
-            infoVisible: false,
-            page: {
-                pageSize: 20,
-                currentPage: 1,
-            },
-            questionBankData: [],
-            query: {},
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 280,
+  } from "vuex"
+  export default {
+    data() {
+      return {
+        property: {},
+        activeName: 'info1',
+        infoVisible: false,
+        page: {
+          pageSize: 20,
+          currentPage: 1,
+        },
+        questionBankData: [],
+        query: {},
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 280,
 
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 1150,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                dialogClickModal: false,
-                column: [{
-                    overHidden: true,
-                    label: "物业公司名称",
-                    prop: "name",
-                    searchSpan: 5,
-                    searchLabelWidth: 124,
-                    search: true,
-                    span: 18,
-                    row: true,
-                    width: 260,
-                    rules: [{
-                        required: true,
-                        message: "请输入物业公司名称",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    label: '省份',
-                    prop: 'province',
-                    type: 'select',
-                    props: {
-                        label: 'name',
-                        value: 'code'
-                    },
-                    hide: true,
-                    span: 6,
-                    cascader: ['city'],
-                    dicUrl: `/api/blade-system/region/select`,
-                    rules: [{
-                        required: true,
-                        message: '请选择省份',
-                        trigger: 'blur'
-                    }]
-                },
-                {
-                    label: '城市',
-                    prop: 'city',
-                    type: 'select',
-                    span: 6,
-                    labelWidth: 60,
-                    cascader: ['area'],
-                    props: {
-                        label: 'name',
-                        value: 'code'
-                    },
-                    hide: true,
-                    dicUrl: `/api/blade-system/region/select?code={{key}}`,
-                    rules: [{
-                        required: true,
-                        message: '请选择城市',
-                        trigger: 'blur'
-                    }]
-                },
-                {
-                    label: '地区',
-                    prop: 'area',
-                    type: 'select',
-                    span: 6,
-                    labelWidth: 60,
-                    props: {
-                        label: 'name',
-                        value: 'code'
-                    },
-                    hide: true,
-                    dicUrl: `/api/blade-system/region/select?code={{key}}`,
-                    rules: [{
-                        required: true,
-                        message: '请选择地区',
-                        trigger: 'blur'
-                    }]
-                },
-                {
-                    overHidden: true,
-                    label: "地址",
-                    prop: "address",
-                    span: 18,
-                    row: true,
-                },
-                {
-                    label: "社会信用代码",
-                    prop: "socialCreditCode",
-                },
-
-                {
-                    label: "简介",
-                    prop: "remark",
-                    component: "AvueUeditor",
-                    options: {
-                        action: "/api/blade-resource/oss/endpoint/put-file-attach",
-                        props: {
-                            res: "data",
-                            url: "link",
-                        },
-                    },
-                    hide: true,
-                    minRows: 6,
-                    span: 24,
-                },
-                ],
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              overHidden: true,
+              label: "物业公司名称",
+              prop: "name",
+              searchSpan: 5,
+              searchLabelWidth: 124,
+              search: true,
+              span: 18,
+              row: true,
+              width: 260,
+              rules: [{
+                required: true,
+                message: "请输入物业公司名称",
+                trigger: "blur",
+              }, ],
             },
-        }
+            {
+              label: '省份',
+              prop: 'province',
+              type: 'select',
+              props: {
+                label: 'name',
+                value: 'code'
+              },
+              hide: true,
+              span: 6,
+              cascader: ['city'],
+              dicUrl: `/api/blade-system/region/select`,
+              rules: [{
+                required: true,
+                message: '请选择省份',
+                trigger: 'blur'
+              }]
+            },
+            {
+              label: '城市',
+              prop: 'city',
+              type: 'select',
+              span: 6,
+              labelWidth: 60,
+              cascader: ['area'],
+              props: {
+                label: 'name',
+                value: 'code'
+              },
+              hide: true,
+              dicUrl: `/api/blade-system/region/select?code={{key}}`,
+              rules: [{
+                required: true,
+                message: '请选择城市',
+                trigger: 'blur'
+              }]
+            },
+            {
+              label: '地区',
+              prop: 'area',
+              type: 'select',
+              span: 6,
+              labelWidth: 60,
+              props: {
+                label: 'name',
+                value: 'code'
+              },
+              hide: true,
+              dicUrl: `/api/blade-system/region/select?code={{key}}`,
+              rules: [{
+                required: true,
+                message: '请选择地区',
+                trigger: 'blur'
+              }]
+            },
+            {
+              overHidden: true,
+              label: "地址",
+              prop: "address",
+              span: 18,
+              row: true,
+            },
+            {
+              label: "社会信用代码",
+              prop: "socialCreditCode",
+            },
+
+            {
+              label: "简介",
+              prop: "remark",
+              component: "AvueUeditor",
+              options: {
+                action: "/api/blade-resource/oss/endpoint/put-file-attach",
+                props: {
+                  res: "data",
+                  url: "link",
+                },
+              },
+              hide: true,
+              minRows: 6,
+              span: 24,
+            },
+          ],
+        },
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
+      ...mapGetters(["permission", "userInfo"]),
     },
     methods: {
 
-        handleClose () {
-            this.infoVisible = false
-            // this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
-        },
+      handleClose() {
+        this.infoVisible = false
+        // this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+      },
+      inputs(label) {
+        console.table(label)
+      },
 
-        submit () {
-            console.log("============>", this.questionBankData)
-            save(this.questionBankData).then(
-                () => {
-                    // this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        handleChange (value) {
-            console.log(value)
-        },
-
-        rowSave (form, done) {
-            console.log('==========>', JSON.stringify(form))
-            form.userid = this.userInfo.user_id
-            add(form).then(
-                () => {
-                    // this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        questionBankOnLoad (page, params = {}) {
-            // params = {}
-            // this.questionBankLoading = false;
-            getList(
-                page.currentPage,
-                page.pageSize,
-                Object.assign(params, this.query)
-            ).then(res => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.questionBankData = data.records
-                this.questionBankData.forEach(item => {
-                    item.propertyId = this.property.id
-                })
+      submit() {
+        let isChoose = false
+        this.questionBankData.forEach(item => {
+          if (item.chooseId) {
+            isChoose = true
+          }
+        })
+        if (isChoose == false) return
+        save(this.questionBankData).then(
+          () => {
+            // this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
             })
-        },
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      handleChange(value) {
+        console.log(value)
+      },
 
-        init (row) {
-            this.infoVisible = true
-            let param = {
-                subclassName: '基础信息'
-            }
-            this.property = row
-            this.questionBankOnLoad(this.page, param)
-        },
+      rowSave(form, done) {
+        console.log('==========>', JSON.stringify(form))
+        form.userid = this.userInfo.user_id
+        add(form).then(
+          () => {
+            // this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
 
-        handleClick (tab, event) {
-            // this.$confirm("确定将选择数据删除?", {
-            //     confirmButtonText: "确定",
-            //     cancelButtonText: "取消",
-            //     type: "warning",
-            //   })
-            //   .then(() => {
-            //     return remove(row.id)
-            //   })
-            //   .then(() => {
-            //     this.onLoad(this.page)
-            //     this.$message({
-            //       type: "success",
-            //       message: "操作成功!",
-            //     })
-            //   })
-            // console.log(tab, event);
-            console.log('============>', JSON.stringify(this.questionBankData))
-            let param = {
-                subclassName: tab.label
-            }
-            this.questionBankOnLoad(this.page, param)
+      questionBankOnLoad(page, params = {}) {
+        // params = {}
+        // this.questionBankLoading = false;
+        getList(
+          page.currentPage,
+          page.pageSize,
+          Object.assign(params, this.query)
+        ).then(res => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.questionBankData = data.records
+          this.questionBankData.forEach(item => {
+            item.propertyId = this.property.id
+          })
+        })
+      },
+
+      init(row) {
+        this.infoVisible = true
+        let param = {
+          subclassName: '街道社区',
+          propertyId: row.id
         }
+        this.property = row
+        this.questionBankOnLoad(this.page, param)
+      },
+
+      handleClick(tab, event) {
+        // this.$confirm("确定将选择数据删除?", {
+        //     confirmButtonText: "确定",
+        //     cancelButtonText: "取消",
+        //     type: "warning",
+        //   })
+        //   .then(() => {
+        //     return remove(row.id)
+        //   })
+        //   .then(() => {
+        //     this.onLoad(this.page)
+        //     this.$message({
+        //       type: "success",
+        //       message: "操作成功!",
+        //     })
+        //   })
+        // console.log(tab, event);
+        console.log('============>', JSON.stringify(this.questionBankData))
+        let param = {
+          subclassName: tab.label
+        }
+        this.questionBankOnLoad(this.page, param)
+      }
     }
-}
+  }
 </script>
 
-<style></style>
+<style lang="scss" scoped>
+  :deep(.answer) {
+    height: calc(100% - 60px);
+    overflow-y: scroll;
+
+    .topic-item {
+      margin-bottom: 20px;
+
+      .topic-title {
+        margin-bottom: 10px;
+        font-size: 14px;
+      }
+
+      .topic-options {
+        display: flex;
+
+        .el-radio {
+          margin-bottom: 10px;
+        }
+
+        .input-num-item {
+          display: flex;
+          margin-right: 20px;
+
+          .num-name {
+            display: flex;
+            align-items: center;
+            margin-right: 6px;
+            font-size: 14px;
+          }
+        }
+      }
+    }
+  }
+</style>
\ No newline at end of file

--
Gitblit v1.9.3