guanqb
2024-01-31 ddbaeba90e85377323efc009ef1b5915c7535ddd
公司管理页面答题区域修改
2 files modified
589 ■■■■ changed files
src/views/property/companyManage.vue 36 ●●●● patch | view | raw | blame | history
src/views/property/components/propertyEdit.vue 553 ●●●● patch | view | raw | blame | history
src/views/property/companyManage.vue
@@ -14,20 +14,20 @@
                <el-tab-pane label="项目良好行为" name="info6"></el-tab-pane>
                <el-tab-pane label="违法违规行为惩戒" name="info7"></el-tab-pane>
            </el-tabs>
            <div v-if="activeName != 'first'">
                <div v-for="(item, index) in questionBankData" :key="index">
                    <div>
            <div class="answer">
                <div class="topic-item" v-for="(item, index) in questionBankData" :key="index">
                    <div class="topic-title">
                        {{ index + 1 }} .{{ item.subjectName }}
                    </div>
                    <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 class="topic-options" v-if="item.choicesType == 0">
                        <el-radio-group v-model="item.chooseId">
                            <el-radio :label="item1.optionName" v-for="(item1, index1) in item.subjectOptionList"
                                :key="index1"></el-radio>
                        </el-radio-group>
                    </div>
                    <div v-if="item.choicesType == 3">
                    <div class="topic-options" 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"
@@ -222,4 +222,20 @@
}
</script>
<style></style>
<style lang="scss" scoped>
:deep(.answer) {
    .topic-item {
        margin-bottom: 20px;
        .topic-title {
            margin-bottom: 10px;
        }
        .topic-options {
            .el-radio {
                margin-bottom: 10px;
            }
        }
    }
}
</style>
src/views/property/components/propertyEdit.vue
@@ -1,315 +1,312 @@
<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>
        <!-- <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"> -->
                <!-- <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 v-if="item.choicesType == 0">
                    <div v-for="(item1, index1) in item.subjectOptionList" :key="index1">
                        <el-radio v-model="item.chooseId" :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>
        </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 slot="footer" class="dialog-footer">
            <el-button @click="infoVisible = false">取 消</el-button>
            <el-button type="primary" @click="submit">提 交</el-button>
        </div>
        <!-- </div> -->
      </div>
    </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>
    </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",
                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",
                    },],
                },
              },
              hide: true,
              minRows: 6,
              span: 24,
                {
                    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()
        },
      submit() {
        console.log("============>", this.questionBankData)
        save(this.questionBankData).then(
          () => {
            // this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
        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
                })
            })
            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()
          }
        )
      },
        init (row) {
            this.infoVisible = true
            let param = {
                subclassName: '基础信息'
            }
            this.property = row
            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: '基础信息'
        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)
        }
        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></style>