shuishen
2024-04-18 4522ab3fe8bd45ee753ef187448c1e884bbc601f
src/views/property/process/maintenanceFundApply/handle.vue
@@ -11,7 +11,25 @@
        <div slot="header">
          <span>审批信息</span>
        </div>
        <avue-form :option="option" v-model="form"></avue-form>
        <avue-form :option="option" v-model="form">
          <template slot-scope="{ row, size, index }" slot="vote">
            <div>{{ topicTitle }}</div>
            <el-table :data="topictData" v-if="topictData.length">
              <el-table-column width="300" property="optionContent" label="选项"
                label-class-name="workOrderStyle"></el-table-column>
              <el-table-column width="300" property="number" label="人数" label-class-name="workOrderStyle">
              </el-table-column>
              <el-table-column width="300">
                <template slot-scope="scope">
                  <el-button slot="reference" type="primary" size="mini"
                    @click="openUserPopup(scope.row, 1)">详情</el-button>
                </template>
              </el-table-column>
            </el-table>
          </template>
        </avue-form>
      </el-card>
      <el-card shadow="hover">
@@ -25,7 +43,7 @@
                <p>{{ flow.assigneeName }} 在 [{{ flow.createTime }}] 开始处理 [{{ flow.historyActivityName }}]
                  环节</p>
                <p v-if="flow.historyActivityDurationTime !== ''">任务历时 [{{ flow.historyActivityDurationTime
                                }}]
                }}]
                </p>
                <p v-if="flow.comment !== ''">批复意见: [{{ flow.comment }}]</p>
                <p v-if="flow.endTime !== ''">结束时间: [{{ flow.endTime }}]</p>
@@ -57,7 +75,8 @@
      <el-button type="primary" @click="handleAgree">同意</el-button>
      <el-button type="danger" @click="handleDisagree">驳回</el-button>
    </div>
    <deitDiscussion ref="DeitDiscussion">
    </deitDiscussion>
  </basic-container>
</template>
@@ -78,8 +97,15 @@
    completeTask
  } from "@/api/work/work"
  import website from '@/config/website'
  import {
    getLists
  } from "@/api/discuss/topics"
  import deitDiscussion from "../../components/deitDiscussion.vue"
  export default {
    components: {
      deitDiscussion
    },
    data() {
      return {
        taskId: '',
@@ -118,14 +144,14 @@
              search: true,
              type: 'tree',
              dicUrl: `/api/blade-district/district/getDistrictTree`,
              cascader: ['articleId'],
              props: {
                label: "name",
                value: "id"
              },
              defaultExpandedKeys: ["361102003"],
              span: 12,
              labelWidth: 120,
              width: 220,
              labelWidth: 140,
              overHidden: true,
              rules: [{
                required: true,
@@ -142,6 +168,7 @@
              search: true,
              span: 12,
              labelWidth: 140,
              width: 220,
              rules: [{
                required: true,
                message: "请输入维修项目名称",
@@ -180,10 +207,10 @@
              disabled: true
            },
            {
              label: "项目分摊方式",
              prop: "allocationWay",
              label: "楼栋",
              prop: "buildingName",
              labelWidth: 140,
              value: '按建筑面积分摊',
              value: '',
              span: 12,
              row: true,
              disabled: true
@@ -192,7 +219,7 @@
              label: '联系人',
              prop: 'linkman',
              span: 12,
              labelWidth: 120,
              labelWidth: 140,
              search: true,
              searchSpan: 4,
              rules: [{
@@ -259,6 +286,52 @@
              disabled: true
            },
            {
              disabled: true,
              display: false,
              hide: true,
              parent: false,
              label: "投票结果",
              prop: "articleId",
              search: false,
              viewDisabled: false,
              type: 'select',
              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
              // slot: true,
              formslot: true,
              cascader: ['vote'],
              props: {
                label: "title",
                value: "id"
              },
              defaultExpandedKeys: ["361102003"],
              span: 12,
              labelWidth: 140,
              rules: [{
                required: true,
                message: "请选择议事",
                trigger: "blur",
              }, ],
              change: (val) => {
                console.log("val===>", val)
                // console.log("form===>",this.form)
              }
            },
            {
              disabled: true,
              display: false,
              span: 24,
              hide: true,
              prop: "vote",
              // formslot: true,
              slot: true,
              label: "投票详情",
              labelWidth: 140
            },
            {
              label: "项目摘要",
              span: 24,
              hide: true,
@@ -312,9 +385,38 @@
              }, ],
            }
          ],
        }
        },
        topictData: [],
        topicTitle: "",
        articleRange: ""
      }
    },
    watch: {
      'form.districtId': {
        handler(newData) {
          const column = this.findObject(this.option.column, "articleId")
          if (newData && this.form.articleId) {
            column.display = true;
          } else {
            column.display = false
          }
        }
      },
      'form.articleId': {
        handler(newData) {
          console.log("data===>", newData)
          this.getVoteDetail(this.form.articleId, this.articleRange)
          const column = this.findObject(this.option.column, "vote")
          if (newData) {
            column.display = true;
          } else {
            column.display = false
          }
        }
      },
    },
    created() {
      this.init()
    },
@@ -399,7 +501,24 @@
        this.$router.push({
          path: `/property/todo`
        })
      }
      },
      getVoteDetail(articleId, districtId) {
        let params = {
          level: 1,
          articleId: articleId,
          districtId: districtId
        }
        getLists(1, 10, params).then(res => {
          const data = res.data.data
          if (data.length) {
            this.topictData = data[0].children;
            this.topicTitle = data[0].discussContent;
          }
        })
      },
      openUserPopup(row) {
        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
      },
    }
  }
</script>
@@ -416,4 +535,8 @@
    left: 50%;
    transform: translateX(-50%);
  }
</style>
  .workOrderStyle {
    font-weight: normal;
  }
</style>