Browse Source

Merge branch 'master' of https://git.agilestar.cn/spfm-group/spfm-market-front

daiqisheng 3 years ago
parent
commit
f87fd3d61b

+ 4 - 4
src/pages/main/gridDivision/approvalExamination.vue

@@ -75,10 +75,10 @@
 </template>
 
 <script>
-import simpleForm from "./components/form.vue";
-import simpleTable from "./components/table.vue";
-import simpleDialog from "./components/dialog.vue";
-// import simplePagination from "./components/pagination.vue";
+import simpleForm from "../performance/components/form.vue";
+import simpleTable from "../performance/components/table.vue";
+import simpleDialog from "../performance/components/dialog.vue";
+// import simplePagination from "../performance/components/pagination.vue";
 export default {
   components: {
     simpleForm,

+ 0 - 74
src/pages/main/gridDivision/components/dialog.vue

@@ -1,74 +0,0 @@
-<template>
-  <el-dialog
-    :modal="modal"
-    :title="title"
-    :visible.sync="visible"
-    :fullscreen="fullscreen"
-    :key="reload"
-    :before-close="handleCancel"
-    :modal-append-to-body="false"
-    :width="width"
-    :destroy-on-close="destroy"
-  >
-    <!-- 表格主体部分 -->
-    <slot></slot>
-    <!-- 表格底部 -->
-    <div slot="footer">
-      <slot name="footer">
-        <el-button @click="handleCancel" size="small">取消</el-button>
-        <el-button @click="handleConfirm" type="primary" size="small"
-          >确定</el-button
-        >
-      </slot>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-export default {
-  props: {
-    visible: {
-      type: Boolean,
-      default: false,
-    },
-    title: {
-      type: String,
-      default: "",
-    },
-    reload: {
-      type: Number,
-      default: 0,
-    },
-    width: {
-      type: String,
-      default: "500px",
-    },
-    fullscreen: {
-      type: Boolean,
-      default: false,
-    },
-    modal: {
-      type: Boolean,
-      default: true,
-    },
-    destroy: {
-      type: Boolean,
-      default: false
-    }
-  },
-  mounted() {
-  },
-  methods: {
-    //   确定的回调
-    handleConfirm() {
-      this.$emit("confirm", false);
-    },
-    //   取消的回调
-    handleCancel() {
-      this.$emit("cancel", false);
-    },
-  },
-};
-</script>
-
-<style></style>

+ 0 - 94
src/pages/main/gridDivision/components/form.vue

@@ -1,94 +0,0 @@
-<!--
- * @Author       : yuanrunwei
- * @Date         : 2021-11-01 18:03:02
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-01-07 19:16:35
- * @FilePath     : \spfm-market-front\src\pages\main\performance\components\form.vue
--->
-<template>
-    <el-form :inline="true" :model="object">
-        <el-row :gutter="24">
-            <el-col
-                v-for="({ props, label, type, dictionary }, index) in form"
-                :key="index"
-                :span="6"
-            >
-                <el-form-item :label="label">
-                    <template v-if="type === 'select'">
-                        <el-select
-                            v-model="object[props]"
-                            :placeholder="label"
-                            filterable
-                            clearable
-                        >
-                            <el-option
-                                :label="label"
-                                :value="value"
-                                v-for="({ label, value }, index) in dictionary"
-                                :key="index"
-                            ></el-option>
-                        </el-select>
-                    </template>
-                    <template v-else-if="['datetime','date', 'month'].includes(type)">
-                        <el-date-picker
-                            v-model="object[props]"
-                            :type="type"
-                            :placeholder="label"
-                        >
-                        </el-date-picker>
-                    </template>
-                    <template v-else>
-                        <el-input
-                            v-model="object[props]"
-                            :placeholder="label"
-                            clearable
-                        ></el-input>
-                    </template>
-                </el-form-item>
-            </el-col>
-            <el-col :span="6">
-                <el-form-item>
-                    <el-button type="primary" @click="handleSearch"
-                        >搜索</el-button
-                    >
-                </el-form-item>
-            </el-col>
-            <el-col class="flex-justify-align-end" :span="24">
-                <el-button
-                    v-for="({ label, props }, index) in handle"
-                    :key="index"
-                    @click="handleSubmit(props)"
-                >
-                    <i class="el-icon-document-add font-weight-bold" />{{
-                        label
-                    }}
-                </el-button>
-            </el-col>
-        </el-row>
-    </el-form>
-</template>
-<script>
-export default {
-    props: {
-        form: {
-            type: Array,
-            default: () => [],
-        },
-        handle: {
-            type: Array,
-            default: () => [],
-        },
-    },
-    data: () => ({
-        object: {},
-    }),
-    methods: {
-        handleSearch() {
-            this.$emit("search", this.object);
-        },
-        handleSubmit(params) {
-            this.$emit(params, this.object);
-        },
-    },
-};
-</script>

+ 0 - 38
src/pages/main/gridDivision/components/pagination.vue

@@ -1,38 +0,0 @@
-<!--
- * @Author       : yuanrunwei
- * @Date         : 2021-11-01 18:11:59
- * @LastEditors  : yuanrunwei
- * @LastEditTime : 2021-11-02 14:27:11
- * @FilePath     : \spfm-front\src\pages\main\dataConfig\components\pagination.vue
--->
-<template>
-    <el-pagination
-        class="simple-pagination"
-        @current-change="handleChange"
-        layout="prev, pager, next"
-        background
-        :current-page="page"
-        :total="total"
-    >
-    </el-pagination>
-</template>
-<script>
-export default {
-    props: {
-        page: {
-            type: Number,
-            default: 0
-        },
-        total: {
-            type: Number,
-            default: 0
-        }
-    },
-    data: () => ({}),
-    methods: {
-        handleChange(page) {
-            this.$emit("change", page);
-        }
-    }
-};
-</script>

+ 0 - 743
src/pages/main/gridDivision/components/sheet.vue

@@ -1,743 +0,0 @@
-<!--
- * @Author       : yuanrunwei
- * @Date         : 2021-12-04 14:23:58
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-01-08 20:26:39
- * @FilePath     : \spfm-market-front\src\pages\main\performance\components\sheet.vue
--->
-
-<template>
-  <div class="sheet-container">
-    <div class="flex-justify-align-end margin-bottom-20">
-      <el-button
-        type="primary"
-        @click="handleVisible"
-        v-if="['template'].includes(attribute)"
-        >权限设置</el-button
-      >
-      <el-button type="primary" @click="handleDownload">导出</el-button>
-      <el-button type="primary" @click="handleFullscreen()">全屏显示</el-button>
-      <template v-if="['edit'].includes(type)">
-        <el-upload
-          v-if="!id"
-          class="margin-right-10 margin-left-10"
-          action
-          :on-change="handleChange"
-          :show-file-list="false"
-        >
-          <el-button type="primary">上传</el-button>
-        </el-upload>
-        <el-button type="primary" @click="handleSave" :disabled="handleForbid()"
-          ><span>{{ id ? "提交" : "新增" }}</span
-          ><span>{{
-            handleForbid() ? `(请先设置权限)` : ""
-          }}</span></el-button
-        >
-      </template>
-    </div>
-    <div id="luckysheet" class="sheet-container-block"></div>
-    <simple-dialog
-      title="权限设置"
-      :visible="visible"
-      :modal="false"
-      width="1400px"
-      @confirm="handleAuth"
-      @cancel="handleVisible"
-    >
-      <el-form ref="form" :model="form" label-width="80px">
-        <el-radio-group v-model="form.permission_type">
-          <el-form-item>
-            <el-radio :label="0"><span>公共权限</span></el-radio>
-            <div>
-              <span class="form-content">负责人</span>
-              <el-select
-                v-model="form.person"
-                multiple
-                placeholder="请选择负责人"
-              >
-                <el-option
-                  v-for="({ label, value }, index) in charge_list"
-                  :key="index"
-                  :label="label"
-                  :value="value"
-                ></el-option>
-              </el-select>
-            </div>
-            <!-- <div class="form-input">
-              <span class="form-content"> 可编辑行:从</span>
-              <el-input v-model="form.col_start" />
-              <span class="form-content">到</span
-              ><el-input v-model="form.col_end" />
-            </div>
-            <div class="form-input">
-              <span class="form-content">可编辑列:从</span>
-              <el-input v-model="form.row_start" />
-              <span class="form-content">到</span>
-              <el-input v-model="form.row_end" />
-            </div> -->
-          </el-form-item>
-          <el-form-item>
-            <el-radio :label="1"><span>特殊权限:</span></el-radio>
-            <el-form-item
-              label="负责人"
-              prop="charge"
-              v-for="(item, index) in form.charge"
-              :key="index"
-              :rules="{
-                required: true,
-                message: '负责人不能为空',
-                trigger: 'blur',
-              }"
-            >
-              <div class="flex">
-                <el-select
-                  class="margin-bottom-20 margin-right-10"
-                  placeholder="请选择负责人"
-                  v-model="item.person"
-                  filterable
-                >
-                  <el-option
-                    v-for="({ label, value }, index) in charge_list"
-                    :key="index"
-                    :label="label"
-                    :value="value"
-                  ></el-option>
-                </el-select>
-                <div class="form-select">
-                  <span class="form-content">可编辑行:从</span>
-                  <el-input v-model="item.col_start" />
-                  <span class="form-content">到</span>
-                  <el-input v-model="item.col_end" />
-                </div>
-                <div class="form-select">
-                  <span class="form-content">可编辑列:从</span>
-                  <el-input v-model="item.row_start" />
-                  <span class="form-content">到</span>
-                  <el-input v-model="item.row_end" />
-                </div>
-              </div>
-            </el-form-item>
-            <div>
-              <el-button @click.prevent="handleCharge('add')" >添加</el-button>
-              <el-button
-                v-if="form.charge.length - 1"
-                @click.prevent="handleCharge('delete')"
-                >删除</el-button
-              >
-            </div>
-          </el-form-item>
-        </el-radio-group>
-        <!-- <el-form-item
-                    label="可编辑列"
-                    prop="array"
-                    ><el-select
-                        v-model="form.array"
-                        placeholder="可编辑列"
-                        multiple
-                    >
-                        <el-option
-                            v-for="(value, index) in 10"
-                            :key="index"
-                            :label="index + 1"
-                            :value="index + 1"
-                        >
-                        </el-option> </el-select
-                ></el-form-item>
-                <el-form-item
-                    label="权限规则"
-                    prop="type"
-                    :rules="{
-                        required: true,
-                        message: '权限规则不能为空',
-                        trigger: 'change',
-                    }"
-                >
-                    <el-select v-model="form.type">
-                        <el-option
-                            v-for="item in type_options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
-                        ></el-option> </el-select
-                ></el-form-item>
-                <el-form-item
-                    label="负责人"
-                    prop="charge"
-                    :rules="{
-                        required: true,
-                        message: '负责人不能为空',
-                        trigger: 'blur',
-                    }"
-                >
-                    <div
-                        class="flex-justify-start"
-                        v-for="(item, index) in form.charge"
-                        :key="index"
-                    >
-                        <el-select
-                            v-model="item.key"
-                            class="margin-bottom-20 margin-right-10 flex-1"
-                            placeholder="请选择指定列/行"
-                            multiple
-                        >
-                            <el-option
-                                v-for="(value, index) in 10"
-                                :key="index"
-                                :label="index + 1"
-                                :value="index + 1"
-                            >
-                            </el-option>
-                        </el-select>
-                        <el-select
-                            class="margin-bottom-20"
-                            placeholder="请选择负责人"
-                            v-model="item.value"
-                            filterable
-                        >
-                            <el-option
-                                v-for="({ label, value }, index) in charge_list"
-                                :key="index"
-                                :label="label"
-                                :value="value"
-                            ></el-option>
-                        </el-select>
-                    </div>
-
-                    <div>
-                        <el-button @click.prevent="handleCharge('add')"
-                            >添加</el-button
-                        >
-                        <el-button
-                            v-if="form.charge.length - 1"
-                            @click.prevent="handleCharge('delete')"
-                            >删除</el-button
-                        >
-                    </div>
-                </el-form-item> -->
-      </el-form>
-      <template v-if="id" v-slot:footer><div></div></template>
-    </simple-dialog>
-  </div>
-</template>
-
-<script>
-import luckyexcel from "luckyexcel";
-import { exportExcel } from "../common/export";
-import simpleDialog from "./dialog.vue";
-export default {
-  components: {
-    simpleDialog,
-  },
-  props: {
-    type: {
-      type: String,
-      default: "view", // view 查看 edit 编辑
-    },
-    attribute: {
-      type: String,
-      default: "template", // template 模板 order 工单 file 文件
-    },
-    id: {
-      default: null,
-    },
-  },
-  data() {
-    return {
-      form: {
-        charge: [
-          {
-            person: [],
-            col_start: "",
-            col_end: "",
-            row_start: "",
-            row_end: "",
-          },
-        ],
-        array: [],
-        type: null,
-        permission_type: null,
-        col_start: "",
-        col_end: "",
-        row_start: "",
-        row_end: "",
-      },
-      isDisable: true,
-      issued_id: null,
-      template_id: null,
-      visible: false,
-      row_list: [],
-      column_list: [],
-      charge_list: [],
-      type_options: [
-        {
-          value: 1,
-          label: "按行",
-        },
-        // {
-        //     value: 2,
-        //     label: "按列",
-        // },
-      ],
-    };
-  },
-  methods: {
-    handleInit() {
-      if (this.id) {
-        this.handleQuery();
-      } else {
-        this.handleCreate();
-      }
-    },
-    // // 权限选择
-    // handleRadio(e){
-    //     console.log(e,'e');
-    // },
-    handleAllow({ row, column }) {
-      return (!this.form.permission_type&&this.type === "edit")  || (this.row_list.includes(row) && this.column_list.includes(column));
-    },
-    async handleQuery() {
-      let url = "";
-      let key = "";
-      switch (this.attribute) {
-        case "template":
-          url = "/market/CMKFileTemplate/QueryCMKFileTemplateById";
-          key = "templateId";
-          break;
-        case "order":
-          url = "/market/CMKIssued/CMKQueryIssuedById";
-          key = "id";
-          break;
-        case "file":
-          url = "/market/CMKIssued/CMKIssuedProcessByUser";
-          key = "id";
-          break;
-      }
-      const {
-        data: { templateContent, templateName, issuedId, templateId, list },
-      } = await this.$http({
-        url,
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {
-          [key]: this.id,
-        },
-      });
-      this.template_id = templateId;
-      this.issued_id = issuedId;
-      if (list && list.length) {
-        const { type } = list[0];
-        if (type === "1") {
-          // 公共权限
-          // const { allowEditingColumns, rowNum } = list[0];
-          this.form = {
-            permission_type: Number(type) - 1,
-            person:list.map(el=>{
-              return `${el.principalId},${el.principalName}`
-            }),
-            charge: [
-              {
-                person: "",
-                col_start: "",
-                col_end: "",
-                row_start: "",
-                row_end: "",
-              },
-            ],
-          };
-        } else {
-          // 特殊权限
-          this.form = {
-            permission_type: Number(type) - 1,
-            col_start: "",
-            col_end: "",
-            row_start: "",
-            row_end: "",
-            charge: list.map((el) => ({
-              person: el.principalId + "," + el.principalName,
-              col_start: el.allowEditingColumns.split(",")[0],
-              col_end:
-                el.allowEditingColumns.split(",")[
-                  el.allowEditingColumns.split(",").length - 1
-                ],
-              row_start: el.rowNum.split(",")[0],
-              row_end: el.rowNum.split(",")[el.rowNum.split(",").length - 1],
-            })),
-          };
-        }
-        // this.form = {
-        //   ...this.form,
-        //   type: type,
-        //   array: allowEditingColumns ? allowEditingColumns.split(",") : [],
-        //   charge: list.map(({ principalId, principalName, rowNum }) => ({
-        //     value: `${principalId},${principalName}`,
-        //     key: rowNum.split(","),
-        //   })),
-        // };
-        // this.form = {};
-        this.row_list =
-          this.type === "edit"&&list[0].rowNum
-            ? list[0].rowNum.split(",").map((element) => JSON.parse(element) - 1)
-            : [];
-        this.column_list =
-          this.type === "edit"&&list[0].allowEditingColumns
-            ? list[0].allowEditingColumns
-                .split(",")
-                .map((element) => JSON.parse(element) - 1)
-            : [];
-      }
-      this.handleCreate({
-        json: templateContent ? JSON.parse(templateContent) : {},
-        name: templateName,
-        type: "json",
-      });
-    },
-    handleForbid() {
-      // const object = {};
-      const { permission_type } = this.form;
-      if (permission_type === 0) {
-        // 公共权限 暂时不用可编辑行和列
-        const { person } = this.form;
-        if (person.length) {
-          return false;
-        }
-        return true;
-      } else if (permission_type === 1) {
-        // 特殊权限
-        let flag = 1;
-        const { charge } = this.form;
-        charge.forEach((el) => {
-          if (
-            Object.values(el).filter((v) => {
-              return v !== "";
-            }).length === 5
-          ) {
-            flag = flag * 1;
-          } else {
-            flag = flag * 0;
-          }
-        });
-        return !flag;
-      } else {
-        return true;
-      }
-      //  form: {
-      //   charge: [
-      //     {
-      //       person: "",
-      //       col_start: "",
-      //       col_End: "",
-      //       row_start: "",
-      //       row_end: "",
-      //     },
-      //   ],
-      //   array: [],
-      //   type: null,
-      //   permission_type: 0,
-      //   col_start: "",
-      //   col_end: "",
-      //   row_start: "",
-      //   row_end: "",
-      // },
-
-      // charge.map(({ key }) => {
-      //   console.log(key);
-      //   // if (key && value) {
-      //   //   object[key] = value;
-      //   // }
-      // });
-      // return !(Object.keys(object).length && type);
-    },
-    async handleCreate({ file, json, type, name } = {}) {
-      let that = this;
-      const options = {
-        container: "luckysheet",
-        lang: "zh",
-        showsheetbar: false,
-        hook: {
-          cellEditBefore: function ([
-            { row_focus: row, column_focus: column },
-          ]) {
-            if (!that.handleAllow({ row, column })) {
-              that.$message.error("您没有编辑权限");
-            }
-          },
-          cellUpdateBefore: function (row, column) {
-            if (!that.handleAllow({ row, column })) {
-              return false;
-            }
-          },
-          cellRenderAfter: function (cell, position) {
-            const { r: row, c: column } = position;
-            if (cell) {
-              if (!that.handleAllow({ row, column })) {
-                cell.bg = "#d5d5d5";
-              } else {
-                cell.bg = "#ffffff";
-              }
-            }
-          },
-        },
-      };
-      switch (type) {
-        case "file":
-          if (file) {
-            await new Promise((resolve) => {
-              luckyexcel.transformExcelToLucky(file, (export_json) => {
-                options.data = [
-                  ...export_json.sheets.map((element) => ({
-                    ...element,
-                    zoomRatio: 0.75,
-                  })),
-                ];
-                options.title = export_json.info.name;
-                resolve();
-              });
-            });
-          }
-          break;
-        case "json":
-          if (json) {
-            options.data = [
-              {
-                ...json,
-                zoomRatio: 0.75,
-              },
-            ];
-            options.title = name;
-          }
-          break;
-      }
-      window.luckysheet.create(options);
-
-      let clock = setInterval(() => {
-        if (window.luckysheet) {
-          window.luckysheet.refresh();
-          clearInterval(clock);
-        }
-      }, 1000);
-    },
-    async handleChange(response) {
-      this.handleCreate({ file: response.raw, type: "file" });
-    },
-    handleDownload() {
-      exportExcel(
-        window.luckysheet.getAllSheets(),
-        window.luckysheet.getWorkbookName()
-      );
-    },
-    async handleAddAuth({ id }) {
-      // const object = {};
-      const { permission_type } = this.form;
-      console.log(id, permission_type);
-      let reqdata = {
-        templateId: id,
-        type: permission_type ? 2 : 1,
-      };
-      if (!permission_type) {
-        //  公共权限
-        const { person } = this.form;
-        const principalId = []
-        const principalName = []
-        person.forEach(el =>{
-          principalId.push(el.split(",")[0])
-          principalName.push(el.split(",")[1])
-        })
-        reqdata.principalId = principalId.join(',');
-        reqdata.principalName = principalName.join(',');
-      } else {
-        const { charge } = this.form;
-        //  特殊权限
-        reqdata.specialAuth = charge.map((el) =>
-          JSON.stringify({
-            allowEditingColumns: this.paramsArr(el.col_start, el.col_end),
-            rowNum: this.paramsArr(el.row_start, el.row_end),
-            principalId: el.person.split(",")[0],
-            principalName: el.person.split(",")[1],
-          })
-        );
-      }
-      await this.$http({
-        url: this.id
-          ? "/market/CMKFileTemplateAuthority/CMKFileTemplateAuthorityUpdate"
-          : "/market/CMKFileTemplateAuthority/CMKFileTemplateAuthorityAdd",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: reqdata,
-      });
-      this.$message.success("操作成功");
-    },
-    async handleSave() {
-      let edit_url = "";
-      switch (this.attribute) {
-        case "template":
-          edit_url = "";
-          break;
-        case "order":
-          edit_url = "";
-          break;
-        case "file":
-          edit_url = "/market/CMKIssued/CMKIssuedSubmit";
-          break;
-      }
-      const sheet_name = window.luckysheet.getSheet().name;
-      const data = window.luckysheet.getSheet(sheet_name);
-      const workbook_name = window.luckysheet.getWorkbookName();
-      const {
-        data: { body },
-      } = await this.$http({
-        url: this.id
-          ? edit_url // 编辑
-          : "/market/CMKFileTemplate/CMKFileTemplateAdd", // 新增
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {
-          id: this.template_id,
-          templateContent: JSON.stringify(data),
-          templateName: workbook_name,
-          issuedId: this.issued_id,
-        },
-      });
-      // 新增时添加权限
-      if (!this.id) {
-        this.handleAddAuth({ id: body });
-      } else {
-        this.$message.success("提交成功");
-      }
-      this.$emit("save");
-    },
-    handleAuth() {
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          if (this.handleForbid()) {
-            this.$message.error("请完善可编辑信息");
-            return false;
-          }
-          this.handleVisible();
-          if (this.id) {
-            this.handleAddAuth({ id: this.id });
-          } else {
-            this.$message.success("设置成功");
-          }
-        }
-      });
-    },
-    // 通用方法用于转化全局
-    paramsArr(start, end) {
-      const arr = [];
-      console.log(start, end);
-      for (let i = Number(start); i <= Number(end); i++) {
-        arr.push(i);
-      }
-      return arr.join(",");
-    },
-    filterName(id, arr) {
-      return arr.filter((el) => el.secLeaderLogin === id)[0].secLeaderName;
-    },
-    handleCharge(type) {
-      switch (type) {
-        case "add":
-          this.form.charge.push({
-            person: "",
-          });
-          this.handleForbid();
-          break;
-        case "delete":
-          this.form.charge.pop();
-          this.handleForbid();
-          break;
-      }
-    },
-    handleVisible() {
-      console.log(this.form, "aada");
-      this.visible = !this.visible;
-    },
-    handleFullscreen() {
-      const element = document.body;
-      const is_fullscreen =
-        document.fullScreen ||
-        document.mozFullScreen ||
-        document.webkitIsFullScreen;
-      if (!is_fullscreen) {
-        //进入全屏,多重短路表达式
-        (element.requestFullscreen && element.requestFullscreen()) ||
-          (element.mozRequestFullScreen && element.mozRequestFullScreen()) ||
-          (element.webkitRequestFullscreen &&
-            element.webkitRequestFullscreen()) ||
-          (element.msRequestFullscreen && element.msRequestFullscreen());
-      } else {
-        //退出全屏,三目运算符
-        document.exitFullscreen
-          ? document.exitFullscreen()
-          : document.mozCancelFullScreen
-          ? document.mozCancelFullScreen()
-          : document.webkitExitFullscreen
-          ? document.webkitExitFullscreen()
-          : "";
-      }
-    },
-    handleChargeList() {
-      this.$http({
-        url: "/market/techcentergj/queryLeaderList",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {},
-      }).then((response) => {
-        this.charge_list = response.data.map((element) => ({
-          label: `${element.ou} ${element.secLeaderName}`,
-          value: `${element.secLeaderLogin},${element.secLeaderName}`,
-        }));
-      });
-    },
-  },
-  mounted() {
-    this.handleInit();
-    this.handleChargeList();
-  },
-};
-</script>
-
-<style lang="scss" scope>
-.sheet-container {
-  position: fixed;
-  width: calc(100% - 40px);
-  height: 100%;
-  &-block {
-    overflow: hidden;
-    position: absolute;
-    width: 100%;
-    height: 75%;
-  }
-}
-.form {
-  &-input {
-    margin-top: 5px;
-    .el-input {
-      width: 150px;
-      .el-input__inner {
-        height: 30px !important;
-        line-height: 30px !important;
-      }
-    }
-  }
-  &-content {
-    margin: 0px 10px;
-  }
-  &-select {
-    .el-input {
-      width: 150px;
-      .el-input__inner {
-        height: 30px !important;
-        line-height: 30px !important;
-      }
-    }
-  }
-}
-</style>

+ 0 - 171
src/pages/main/gridDivision/components/table.vue

@@ -1,171 +0,0 @@
-<!--
- * @Author       : yuanrunwei
- * @Date         : 2021-11-01 18:02:58
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-01-10 09:38:20
- * @FilePath     : \spfm-market-front\src\pages\main\performance\components\table.vue
--->
-<template>
-  <el-table class="simple-table" :data="computed_list" v-loading="loading" @selection-change="handleSelectionChange">
-    <el-table-column type="selection" width="55" v-if="multiple" />
-    <el-table-column
-      v-for="(
-        { props, label, type, width, align, children, dictionary }, index
-      ) in config"
-      :key="index"
-      :prop="props"
-      :width="width"
-      :label="label"
-      :align="align || 'center'"
-    >
-      <template #default="scope">
-        <div v-if="type === 'edit'">
-          <el-input
-            v-if="scope.row[`edit`]"
-            v-model="scope.row[props]"
-            autosize
-            type="textarea"
-            @change="handleModify"
-          />
-        </div>
-        <div v-if="type === 'number'">{{ scope.$index + 1 }}</div>
-        <div v-else-if="type === 'textarea'">
-          <pre class="simple-table-break">{{ scope.row[props] }}</pre>
-        </div>
-        <div v-else-if="type === 'date'">
-          <div>{{ $formatDate(scope.row[props], "YYYY-MM-DD") }}</div>
-        </div>
-        <div v-else-if="type === 'time'">
-          <div>{{ $formatDate(scope.row[props], "YYYY-MM-DD HH:00:00") }}</div>
-        </div>
-        <div v-else-if="type === 'click'">
-          <div
-            class="simple-table-click cursor-pointer"
-            @click="handleClick(props, scope.row)"
-          >
-            {{ scope.row[props] }}
-          </div>
-        </div>
-        <div v-else-if="type === 'dictionary'">
-          {{ dictionary[scope.row[props]] }}
-        </div>
-        <div v-else>{{ scope.row[props] }}</div>
-      </template>
-      <template v-if="children">
-        <el-table-column
-          v-for="({ props, label, width, align, type }, index) in children"
-          :key="index"
-          :prop="props"
-          :width="width"
-          :label="label"
-          :align="align || 'center'"
-        >
-          <template #default="scope">
-            <div v-if="type === 'edit'">
-              <el-input
-                v-model="scope.row[props]"
-                @change="handleModify"
-                autosize
-                type="textarea"
-              />
-            </div>
-            <div v-else>{{ scope.row[props] }}</div>
-          </template>
-        </el-table-column>
-      </template>
-    </el-table-column>
-    <el-table-column
-      v-if="handleRow.length"
-      label="操作"
-      :align="'center'"
-      :width="handleRow.length * 50"
-    >
-      <template slot-scope="scope">
-        <span
-          v-for="({ label, props, popconfirm, visible }, index) in handleRow"
-          :key="index"
-          class="padding-right-5"
-        >
-          <span v-if="handleFormat(visible, scope.row)">
-            <el-popconfirm
-              v-if="popconfirm"
-              :title="`确定要${label}吗?`"
-              @onConfirm="handleClick(props, scope.row)"
-              @cancel="handleCancel"
-            >
-              <el-button slot="reference" type="text" size="small">{{
-                label
-              }}</el-button>
-            </el-popconfirm>
-            <el-button
-              v-else
-              @click="handleClick(props, scope.row)"
-              type="text"
-              size="small"
-              >{{ label }}</el-button
-            >
-          </span>
-        </span>
-      </template>
-    </el-table-column>
-  </el-table>
-</template>
-<script>
-export default {
-  props: {
-    list: {
-      type: Array,
-      default: () => [],
-    },
-    config: {
-      type: Array,
-      default: () => [],
-    },
-    multiple: {
-      type: Boolean,
-      default: false,
-    },
-    loading: {
-      type: Boolean,
-      default: false,
-    },
-    handleRow: {
-      type: Array,
-      default: () => [],
-    },
-  },
-  computed: {
-    computed_list() {
-      return this.list.map((element) => ({
-        ...element,
-      }));
-    },
-  },
-  methods: {
-    handleFormat(params, data) {
-      let visible = true;
-      if (params) {
-        visible = false;
-        Object.keys(params).forEach((element) => {
-          if (params[element].includes(data[element])) {
-            visible = true;
-          }
-        });
-      }
-      return visible;
-    },
-    handleClick(props, row) {
-      this.$emit(props, row);
-    },
-    handleCancel() {
-      console.log("我被关闭了");
-    },
-    handleSelectionChange(val) {
-      this.$emit("selection", val);
-    },
-    handleModify() {
-      this.$emit("modify", this.computed_list);
-    },
-  },
-};
-</script>

+ 63 - 34
src/pages/main/gridDivision/workersList.vue

@@ -133,10 +133,10 @@
 
 <script>
 import myUpload from "../../../components/upload";
-import simpleForm from "./components/form.vue";
-import simpleTable from "./components/table.vue";
-import simpleDialog from "./components/dialog.vue";
-import simplePagination from "./components/pagination.vue";
+import simpleForm from "../performance/components/form.vue";
+import simpleTable from "../performance/components/table.vue";
+import simpleDialog from "../performance/components/dialog.vue";
+import simplePagination from "../performance/components/pagination.vue";
 
 export default {
   components: {
@@ -161,6 +161,8 @@ export default {
       title: "",
       // 是否为查看状态
       isCheck: false,
+      // 汇总id列表
+      summaryIds: [],
       table_search: {},
       // 新建模态框
       add_visible: false,
@@ -269,19 +271,19 @@ export default {
         },
         {
           label: "流程环节",
-          props: "cpmName",
+          props: "taskName",
         },
         {
           label: "处理人",
-          props: "person",
+          props: "opName",
         },
         {
           label: "处理工号",
-          props: "number",
+          props: "opNo",
         },
         {
           label: "处理时间",
-          props: "createTime",
+          props: "opTime",
           type: "date",
         },
         {
@@ -359,7 +361,10 @@ export default {
       }
     },
     handleaaa(val) {
-      console.log(val);
+      this.summaryIds = val.map((item) => {
+        return item.id.toString();
+      });
+      console.log(this.summaryIds);
     },
     //文件返回值
     uploadBack(v) {
@@ -369,53 +374,56 @@ export default {
     // 查看按钮
     handleCheck(row) {
       let id = row.id;
-      this.handleVisible('check')
+      let type = row.parentId === null ? "1" : "0";
       this.$http({
         url: "/mkWangge/getMkWanggeById",
         method: "get",
         headers: {
           "Content-Type": "application/json",
         },
-        params:{
-          id
-        }
-      }).then(({data})=>{
-        console.log(data);
+        params: {
+          id,
+          type,
+        },
+      }).then(({ data }) => {
+        let body = data.body;
+        console.log(body, "body");
         this.add_form = {
-          id: data.id,
-          proposer: data.proposer,
-          telephone: data.telephone,
-          wanggeText: data.wanggeText,
-        }
-      })
+          id: body.id,
+          proposer: body.createName,
+          telephone: body.telephone,
+          wanggeText: body.wanggeText,
+        };
+        this.table_list_approve = body.bpmTaskList;
+      });
+      this.handleVisible("check");
     },
     // 编辑按钮
     handleEdit(row) {
       let id = row.id;
-      let type = row.parentId === '0' ? '0' : '1'
+      let type = row.parentId === null ? "1" : "0";
       this.$http({
         url: "/mkWangge/getMkWanggeById",
         method: "get",
         headers: {
           "Content-Type": "application/json",
         },
-        params:{
+        params: {
           id,
-          type
-        }
-      }).then(({data})=>{
-        let body = data.body
-        console.log(body,'body');
+          type,
+        },
+      }).then(({ data }) => {
+        let body = data.body;
+        console.log(body, "body");
         this.add_form = {
           id: body.id,
           proposer: body.createName,
           telephone: body.telephone,
           wanggeText: body.wanggeText,
-        }
-        this.table_list_approve = body.bpmTaskList
-      })
-      console.log(this.table_list_approve,'table_list_approve');
-      this.handleVisible('edit')
+        };
+        this.table_list_approve = body.bpmTaskList;
+      });
+      this.handleVisible("edit");
     },
     handleSubmit() {
       console.log(this.add_form);
@@ -443,7 +451,28 @@ export default {
         }
       });
     },
-    handleSummary() {},
+    handleSummary() {
+      if (this.summaryIds.length === 0) {
+        this.$message({
+          message:'还未选择要合并的项目',
+          type:'error'
+        })
+        this.handleVisible("summary");
+        return;
+      } else {
+        this.$http({
+          url: "/mkWangge/huizongWangge",
+          method: "post",
+          headers: {
+            "Content-Type": "application/json",
+          },
+          data: this.summaryIds,
+        }).then((res) => {
+          console.log(res);
+        });
+        this.handleVisible("summary");
+      }
+    },
     handleChange(page) {
       this.page = page;
       this.handleInit({