guanqb
2024-02-20 6ff48bb128d7fc2e92ed5b3367a9545178a47b73
公司管理保存只提示一次,底部切换tab保存数据
1 files modified
460 ■■■■ changed files
src/views/property/companyManage.vue 460 ●●●● patch | view | raw | blame | history
src/views/property/companyManage.vue
@@ -1,265 +1,267 @@
<!-- 物业公司管理 -->
<template>
  <basic-container>
    <div class="basic-info">
      <avue-form :option="wyOption" v-model="wyForm"></avue-form>
    </div>
    <div class="detail-container">
      <el-tabs v-model="activeName" @tab-click="handleClick">
        <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="info5"></el-tab-pane>
        <el-tab-pane label="项目良好行为" name="info6"></el-tab-pane>
        <el-tab-pane label="违法违规行为惩戒" name="info7"></el-tab-pane>
      </el-tabs>
      <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 class="topic-options" v-if="item.choicesType == 0">
            <el-radio-group v-model="item.chooseId">
              <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>
    <basic-container>
        <div class="basic-info">
            <avue-form :option="wyOption" v-model="wyForm"></avue-form>
        </div>
        <div class="detail-container">
            <el-tabs v-model="activeName" @tab-click="handleClick">
                <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="info5"></el-tab-pane>
                <el-tab-pane label="项目良好行为" name="info6"></el-tab-pane>
                <el-tab-pane label="违法违规行为惩戒" name="info7"></el-tab-pane>
            </el-tabs>
            <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>
    </div>
    <div class="submit-btn">
      <el-button type="primary" @click="handleSubmit">保存</el-button>
    </div>
  </basic-container>
                    <div class="topic-options" v-if="item.choicesType == 0">
                        <el-radio-group v-model="item.chooseId">
                            <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>
            </div>
        </div>
        <div class="submit-btn">
            <el-button type="primary" @click="handleSubmit">保存</el-button>
        </div>
    </basic-container>
</template>
<script>
  import {
import {
    getList
  } from "@/api/subjectChoices/subjectChoices"
  import {
} from "@/api/subjectChoices/subjectChoices"
import {
    getDetailByDeptId
  } from "@/api/property/companyManage.js"
  import {
} from "@/api/property/companyManage.js"
import {
    update,
  } from "@/api/property/propertyCompany"
  import {
} from "@/api/property/propertyCompany"
import {
    save
  } from "@/api/answerRecord/answerRecord"
  export default {
    data() {
      return {
        wyOption: {
          submitBtn: false,
          emptyBtn: false,
          column: [{
            label: "物业公司名称",
            labelWidth: 120,
            type: 'input',
            prop: "name",
            span: 24,
            // offset: 2,
          }, {
            labelWidth: 120,
            label: '省份',
            prop: 'province',
            type: 'select',
            span: 8,
            dicUrl: `/api/blade-system/region/select?code=100000`,
            props: {
              label: 'name',
              value: 'code'
} from "@/api/answerRecord/answerRecord"
export default {
    data () {
        return {
            wyOption: {
                submitBtn: false,
                emptyBtn: false,
                column: [{
                    label: "物业公司名称",
                    labelWidth: 120,
                    type: 'input',
                    prop: "name",
                    span: 24,
                    // offset: 2,
                }, {
                    labelWidth: 120,
                    label: '省份',
                    prop: 'province',
                    type: 'select',
                    span: 8,
                    dicUrl: `/api/blade-system/region/select?code=100000`,
                    props: {
                        label: 'name',
                        value: 'code'
                    },
                    cascader: ['city'],
                }, {
                    labelWidth: 60,
                    label: '城市',
                    prop: 'city',
                    type: 'select',
                    span: 8,
                    dicUrl: `/api/blade-system/region/select?code={{key}}`,
                    props: {
                        label: 'name',
                        value: 'code'
                    },
                    cascader: ['area'],
                }, {
                    labelWidth: 60,
                    label: '地区',
                    prop: 'area',
                    type: 'select',
                    span: 8,
                    dicUrl: `/api/blade-system/region/select?code={{key}}`,
                    props: {
                        label: 'name',
                        value: 'code'
                    }
                }, {
                    label: "地址",
                    labelWidth: 120,
                    type: 'input',
                    prop: "address",
                    span: 24,
                    // offset: 2,
                }, {
                    label: "社会信用代码",
                    labelWidth: 120,
                    type: 'input',
                    prop: "socialCreditCode",
                    span: 24,
                    // offset: 2,
                }, {
                    label: "简介",
                    labelWidth: 120,
                    component: "AvueUeditor",
                    prop: "remark",
                    span: 24,
                    // offset: 2,
                }]
            },
            cascader: ['city'],
          }, {
            labelWidth: 60,
            label: '城市',
            prop: 'city',
            type: 'select',
            span: 8,
            dicUrl: `/api/blade-system/region/select?code={{key}}`,
            props: {
              label: 'name',
              value: 'code'
            wyForm: {},
            activeName: 'info1',
            questionBankData: [],
            page: {
                pageSize: 20,
                currentPage: 1,
            },
            cascader: ['area'],
          }, {
            labelWidth: 60,
            label: '地区',
            prop: 'area',
            type: 'select',
            span: 8,
            dicUrl: `/api/blade-system/region/select?code={{key}}`,
            props: {
              label: 'name',
              value: 'code'
            }
          }, {
            label: "地址",
            labelWidth: 120,
            type: 'input',
            prop: "address",
            span: 24,
            // offset: 2,
          }, {
            label: "社会信用代码",
            labelWidth: 120,
            type: 'input',
            prop: "socialCreditCode",
            span: 24,
            // offset: 2,
          }, {
            label: "简介",
            labelWidth: 120,
            component: "AvueUeditor",
            prop: "remark",
            span: 24,
            // offset: 2,
          }]
        },
        wyForm: {},
        activeName: 'info1',
        questionBankData: [],
        page: {
          pageSize: 20,
          currentPage: 1,
        },
      }
        }
    },
    watch: {},
    created() {
      this.initBasicInfo()
    created () {
        this.initBasicInfo()
    },
    methods: {
      // 获取基本信息
      initBasicInfo() {
        getDetailByDeptId().then(res => {
          this.wyForm = res.data.data
          this.questionBankOnLoad(this.page)
        })
      },
      // 保存基本信息
      saveBasicInfo() {
        update(this.wyForm).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
        // 获取基本信息
        initBasicInfo () {
            getDetailByDeptId().then(res => {
                this.wyForm = res.data.data
                this.questionBankOnLoad(this.page)
            })
            this.initBasicInfo()
          },
          (error) => {
            window.console.log(error)
            loading()
          }
        )
      },
        },
      // 获取题目
      questionBankOnLoad(page, params = {
        subclassName: '基础信息',
        propertyId: this.wyForm.id
      }) {
        getList(
          page.currentPage,
          page.pageSize,
          params
        ).then(res => {
          const data = res.data.data
          this.page.total = data.total
          this.questionBankData = data.records
          this.questionBankData.forEach(item => {
            item.propertyId = this.wyForm.id
          })
        })
      },
      // 保持题目
      saveQuestionBank() {
        save(this.questionBankData).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
            })
            // this.questionBankOnLoad(this.page, param = {
            //   subclassName: this.activeName,
            //   propertyId: this.wyForm.id
            // })
          },
          (error) => {
            window.console.log(error)
          }
        )
      },
      // 点击tab切换
      handleClick(tab) {
        let param = {
          subclassName: tab.label,
          propertyId: this.wyForm.id
        }
        this.questionBankOnLoad(this.page, param)
      },
      // 保存按钮
      handleSubmit() {
        // 保存基本信息
        this.saveBasicInfo()
        // 保持考试信息
        this.saveQuestionBank()
      },
        saveBasicInfo () {
            update(this.wyForm).then(
                () => {
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                    this.initBasicInfo()
                },
                (error) => {
                    window.console.log(error)
                    loading()
                }
            )
        },
        // 获取题目
        questionBankOnLoad (page, params = {
            subclassName: '基础信息',
            propertyId: this.wyForm.id
        }) {
            getList(
                page.currentPage,
                page.pageSize,
                params
            ).then(res => {
                const data = res.data.data
                this.page.total = data.total
                this.questionBankData = data.records
                this.questionBankData.forEach(item => {
                    item.propertyId = this.wyForm.id
                })
            })
        },
        // 保持题目
        saveQuestionBank () {
            save(this.questionBankData).then(
                () => {
                    // this.$message({
                    //   type: "success",
                    //   message: "操作成功!",
                    // })
                    // this.questionBankOnLoad(this.page, param = {
                    //   subclassName: this.activeName,
                    //   propertyId: this.wyForm.id
                    // })
                },
                (error) => {
                    window.console.log(error)
                }
            )
        },
        // 点击tab切换
        handleClick (tab) {
            let param = {
                subclassName: tab.label,
                propertyId: this.wyForm.id
            }
            // 保持考试信息
            this.saveQuestionBank()
            this.questionBankOnLoad(this.page, param)
        },
        // 保存按钮
        handleSubmit () {
            // 保存基本信息
            this.saveBasicInfo()
            // 保持考试信息
            this.saveQuestionBank()
        },
    }
  }
}
</script>
<style lang="scss" scoped>
  :deep(.answer) {
:deep(.answer) {
    .topic-item {
      margin-bottom: 20px;
        margin-bottom: 20px;
      .topic-title {
        margin-bottom: 10px;
      }
      .topic-options {
        display: flex;
        .el-radio {
          margin-bottom: 10px;
        .topic-title {
            margin-bottom: 10px;
        }
        .input-num-item {
          display: flex;
          margin-right: 20px;
          .num-name {
        .topic-options {
            display: flex;
            align-items: center;
            margin-right: 6px;
          }
        }
      }
    }
  }
  .submit-btn {
            .el-radio {
                margin-bottom: 10px;
            }
            .input-num-item {
                display: flex;
                margin-right: 20px;
                .num-name {
                    display: flex;
                    align-items: center;
                    margin-right: 6px;
                }
            }
        }
    }
}
.submit-btn {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
  }
}
</style>