Forráskód Böngészése

新增工作总结页面

zhulu 1 éve
szülő
commit
01487c74ab

+ 43 - 0
src/api/safetyBook/worksummary.js

@@ -0,0 +1,43 @@
+import request from "@/utils/request";
+
+// 查询列表工作总结
+export function listworksummary(data) {
+  return request({
+    url: "/core/worksummary/list",
+    method: "post",
+    data: data,
+  });
+}
+
+// 查询详细工作总结
+export function getworksummary(id) {
+  return request({
+    url: "/core/worksummary/" + id,
+    method: "get",
+  });
+}
+
+// 新增/编辑工作总结
+export function add(data) {
+  return request({
+    url: "/core/worksummary/add",
+    method: "post",
+    data: data,
+  });
+}
+// 编辑工作总结
+export function edit(data) {
+  return request({
+    url: "/core/worksummary/edit",
+    method: "post",
+    data: data,
+  });
+}
+
+// 删除工作总结
+export function delworksummary(ids) {
+  return request({
+    url: "/core/worksummary/" + ids,
+    method: "delete",
+  });
+}

+ 272 - 0
src/views/safetyBook/workSummary/dialog.des.vue

@@ -0,0 +1,272 @@
+<template>
+  <div class="rule-type">
+    <DialogCom
+      :title="id ? '安全保卫部年度工作总结详情' : '新增安全保卫部年度工作总结'"
+      :visible.sync="isShow"
+      @close="onHide"
+      width="50%"
+    >
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          size="small"
+          ref="form"
+          label-position="right"
+          label-width="130px"
+          label-prefix=":"
+        >
+          <el-descriptions
+            class="margin-top"
+            :column="1"
+            size="medium"
+            border
+            :label-style="labelStyle"
+            :contentStyle="content_style"
+          >
+            <el-descriptions-item
+              labelClassName="gx_info_label"
+              label="行社名称"
+            >
+              {{ formData.orgName }}
+            </el-descriptions-item>
+            <!-- <el-form-item prop="orgId" label="行社名称:">
+                <el-input
+              :readonly="true"
+              v-model="formData.orgName"
+              :disabled="true"
+            ></el-input>
+            </el-form-item> -->
+            <el-descriptions-item
+              labelClassName="gx_info_label"
+              label="文件种类"
+            >
+              {{ formData.type }}
+            </el-descriptions-item>
+            <!-- <el-form-item prop="type" label="文件种类:">
+              <el-input :disabled="true" :readonly="true"
+                v-model="formData.type"
+              ></el-input>
+            </el-form-item> -->
+            <el-descriptions-item
+              labelClassName="gx_info_label"
+              label="工作年度"
+            >
+              {{ formData.year }}
+            </el-descriptions-item>
+            <!-- <el-form-item label="工作年度" prop="year">
+                  <el-date-picker :disabled="true" :readonly="true"
+                    v-model="formData.year"
+                    :clearable="timeClearable"
+                    type="year"
+                    placeholder="请选择工作计划年度"
+                    value-format="yyyy"
+                  >
+                  </el-date-picker>
+                </el-form-item> -->
+            <!-- <el-form-item prop="userIds" label="参与人员:" v-if="false">
+              <div>
+                <el-input :disabled="true" :readonly="true"
+                  v-model="joinedStringArray"
+                  placeholder="点击选择"
+                ></el-input>
+                <el-button @click="selectUser">选择</el-button>
+              </div>
+            </el-form-item> -->
+            <el-descriptions-item
+              labelClassName="gx_info_label"
+              label="文件日期"
+            >
+              {{ formData.date }}
+            </el-descriptions-item>
+            <!-- <el-form-item prop="date" label="文件日期:">
+              <el-date-picker :disabled="true" :readonly="true"
+                v-model="formData.date"
+                value-format="yyyy-MM-dd"
+                placeholder="请选择文件发布日期"
+                type="date"
+                :clearable="false"
+              ></el-date-picker>
+            </el-form-item> -->
+            <el-descriptions-item
+              labelClassName="gx_info_label"
+              label="文件资料"
+            >
+              <!-- <imgs-upload
+                :limit="5"
+                v-model="formData.images"
+                :fileSize="2"
+              ></imgs-upload> -->
+              <!-- <W-file-upload
+              :isRem="false"
+                :fileType="['word', 'pdf']"
+                :isShowTip="false"
+                :isShowUploadBtn="false"
+                ref="upload"
+                :defaultValue="formFileListDefualtValue"
+                v-model="formData.images"
+              /> -->
+              <K-file-upload
+                ref="upload"
+                :fileType="['docx','doc', 'pdf']"
+                :defaultValue="formFileListDefualtValue"
+                :isShowTip="false"
+                :isShowUploadBtn="false"
+                v-model="formData.fileList"
+              />
+            </el-descriptions-item>
+            <!-- <el-form-item label="上传附件(word、pdf文件格式)" prop="images">
+              <imgs-upload
+                :limit="5"
+                v-model="formData.images"
+                :fileSize="2"
+              ></imgs-upload>
+            </el-form-item> -->
+            <!-- <el-descriptions-item labelClassName="gx_info_label" label="内容" >
+            {{
+            formData.content
+            }}
+          </el-descriptions-item> -->
+          </el-descriptions>
+          <!-- <div>
+              <el-form-item label="内容" prop="content" v-if="false">
+                <Editor style="height: 150px" v-model="formData.content"></Editor>
+              </el-form-item>
+            </div> -->
+        </el-form>
+      </div>
+
+      <div style="margin-top: 100px" slot="footer" class="dialog-footer">
+        <!-- <el-button type="primary" @click="onSubmit">确定</el-button> -->
+        <el-button @click="isShow = false">确定</el-button>
+      </div>
+    </DialogCom>
+    <!-- <UserSelector ref="UserSelector" @select="onUserSelect"></UserSelector> -->
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getworksummary } from "@/api/safetyBook/worksummary";
+import { deptTreeSelect } from "@/api/system/public";
+import UserSelector from "@/components/userSelector/index.vue";
+import ImgsUpload from "@/components/ImgsUpload";
+import Editor from "@/components/Editor";
+import WFileUpload from "@/components/W-FileUpload/index.vue";
+
+import KFileUpload from "@/components/K-FileUpload/index.vue";
+export default {
+  dicts: ["safety_book_type"],
+  components: { UserSelector, ImgsUpload, Editor, WFileUpload,KFileUpload },
+  data() {
+    return {
+      labelStyle: {
+        color: "#000",
+        "text-align": "center",
+        height: "40px",
+        "min-width": "150px",
+        "word-break": "keep-all",
+      },
+      content_style: {
+        "text-align": "left",
+        "min-width": "150px",
+        "word-break": "break-all",
+      },
+      formFileListDefualtValue: [],
+      id: null,
+      isShow: false,
+      timeClearable: true,
+      formData: this.reset(),
+      //修改新增中的机构树
+      // deptOptions: [],
+      // formDataRules: {
+      //   userIds: [{ required: true, message: "请选择参与人员" }],
+      //   date: [{ required: true, message: "请选择记录日期" }],
+      //   images: [{ required: true, message: "请选择照片" }],
+      //   content: [{ required: true, message: "请输入内容" }],
+      //   orgId: [{ required: true, message: "请选择机构" }],
+      // },
+    };
+  },
+
+  watch: {},
+  computed: {
+    ...mapState([]),
+    // joinedStringArray: {
+    //   get() {
+    //     if (this.formData.names == null || this.formData.names == undefined) {
+    //       this.formData.names = this.formData.userNames.split(", ");
+    //     }
+    //     return this.formData.names.join(", ");
+    //   },
+    //   set(value) {
+    //     this.formData.names = value.split(", ");
+    //   },
+    // },
+  },
+  methods: {
+    ...mapMutations([]),
+
+    /** 查询机构树数据 */
+    // getDeptTree() {
+    //   deptTreeSelect().then((response) => {
+    //     this.deptOptions = response.data;
+    //   });
+    // },
+    /** treeSelect组件自定义数据*/
+    // tenantIdnormalizer(node, instanceId) {
+    //   if (node.children && !node.children.length) {
+    //     delete node.children;
+    //   }
+    //   return {
+    //     id: node.id,
+    //     label: node.shortName,
+    //     children: node.children,
+    //   };
+    // },
+
+    reset() {
+      return {
+        id: null,
+        date: null,
+        fileList: [],        
+        title: null,
+        orgId: null,
+        type: "工作总结",
+        year: null,
+      };
+    },
+    async refresh(id) {
+      this.formFileListDefualtValue = [];
+      if (id != null && id != undefined) {
+        await getworksummary(id).then((res) => {
+          this.formData = res.data;
+          this.formFileListDefualtValue = res.data.fileList;
+        });
+      }
+    },
+    async show(id) {
+      // this.getDeptTree();
+      this.formData = this.reset();
+      this.id = id;
+      await this.refresh(id);
+      this.isShow = true;
+    },
+
+    // 事件
+    onHide() {
+      this.formData = this.reset();
+      this.$refs.form.resetFields();
+    },
+  },
+  mounted() {},
+};
+</script>
+
+<style lang="scss" scoped>
+.brand_info {
+  .el-form {
+    width: 600px;
+    padding-top: 40px;
+  }
+}
+</style>

+ 262 - 0
src/views/safetyBook/workSummary/dialog.edit.vue

@@ -0,0 +1,262 @@
+<template>
+  <div class="workSummary">
+    <DialogCom
+      :title="id ? '编辑安全保卫部年度工作总结' : '新增安全保卫部年度工作总结'"
+      :visible.sync="isShow"
+      @close="onHide"
+      width="700px"
+    >
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          :rules="formDataRules"
+          size="small"
+          ref="form"
+          label-position="right"
+          label-width="130px"
+          label-prefix=":"
+        >
+          <el-form-item prop="orgId" label="行社名称:">
+            <!-- <tree-select
+              v-model="formData.orgId"
+              :options="deptOptions"
+              :show-count="true"
+              :normalizer="tenantIdnormalizer"
+              :props="{ checkStrictly: true, label: 'name' }"
+              placeholder="请选择机构"
+              :noChildrenText="''"
+              noOptionsText="没有数据"
+              noResultsText="没有搜索结果"
+            /> -->
+            <org-tree style="width: 100%"
+                  v-model="formData.orgId"
+                  @defaultKey="getDefaultKey"
+                  @click="clickTreeNode"
+                  :showCheckSub="false"
+                  hangsheTree                  
+                  ref="orgTree"
+                ></org-tree>
+          </el-form-item>
+          <el-form-item prop="type" label="文件种类:">
+            <el-input v-model="formData.type"></el-input>
+          </el-form-item>
+          <el-form-item label="工作年度:" prop="year">
+            <el-date-picker
+              v-model="formData.year"
+              :clearable="timeClearable"
+              type="year"
+              placeholder="请选择工作总结年度"
+              value-format="yyyy"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item prop="date" label="文件日期:">
+            <el-date-picker
+              v-model="formData.date"
+              value-format="yyyy-MM-dd"
+              placeholder="请选择文件发布日期"
+              type="date"
+              :clearable="false"
+            ></el-date-picker>
+          </el-form-item>
+
+          <el-form-item label="文件资料" prop="fileList">         
+            <!-- <W-file-upload
+              :fileType="['docx','doc', 'pdf']"
+              ref="upload"
+              :defaultValue="formFileListDefualtValue"
+              v-model="formData.fileList"
+              :fileSize="25"
+            /> -->
+            <K-file-upload
+                drag="false"
+                ref="upload"
+                :fileType="['docx','doc', 'pdf']"
+                :defaultValue="formFileListDefualtValue"
+                v-model="formData.fileList"
+              />
+          </el-form-item>         
+        </el-form>
+      </div>
+
+      <div style="margin-top: 100px" slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="onSubmit">确定</el-button>
+        <el-button @click="isShow = false">取消</el-button>
+      </div>
+    </DialogCom>
+    <UserSelector
+      ref="UserSelector"
+      @select="onUserSelect"
+      :clearSelectOnClose="false"
+    ></UserSelector>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { mapGetters } from "vuex";
+import { add, edit, getworksummary } from "@/api/safetyBook/worksummary";
+import { deptTreeSelect } from "@/api/system/public";
+import UserSelector from "@/components/userSelector/index.vue";
+import ImgsUpload from "@/components/ImgsUpload";
+import Editor from "@/components/Editor";
+import imgUpload from "@/components/ImageUpload/index.vue";
+import WFileUpload from "@/components/W-FileUpload/index.vue";
+import KFileUpload from "@/components/K-FileUpload/index.vue";
+import {noAuto} from '@/utils/fieldMxins.js'
+import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
+export default {
+  mixins:[noAuto],
+  dicts: ["safety_book_type"],
+  components: { UserSelector, ImgsUpload, Editor, imgUpload, WFileUpload,KFileUpload,OrgTree },
+  data() {
+    return {
+      formFileListDefualtValue: [],
+      id: null,
+      isShow: false,
+      timeClearable: true,
+      formData: this.reset(),
+      //修改新增中的机构树
+      deptOptions: [],
+      formDataRules: {
+        // userIds: [{ required: true, message: "请选择参与人员" }],
+        date: [{ required: true, message: "请选择日期" }],
+        fileList: [{ required: true, message: "请上传年度工作总结文件" }],
+        // content: [{ required: true, message: "请输入内容" }],
+        orgId: [{ required: true, message: "请选择机构" }],
+        type: [{ required: true, message: "请输入文件种类" }],
+        year: [{ required: true, message: "请选择年度" }],
+      },
+    };
+  },
+
+  watch: {},
+  computed: {
+    ...mapState([]),
+    ...mapGetters(["orgId", "orgName"]),
+    // joinedStringArray: {
+    //   get() {
+    //     if (this.formData.names == null || this.formData.names == undefined) {
+    //       this.formData.names = this.formData.userNames.split(", ");
+    //     }
+    //     return this.formData.names.join(", ");
+    //   },
+    //   set(value) {
+    //     this.formData.names = value.split(", ");
+    //   },
+    // },
+  },
+  methods: {
+    ...mapMutations([]),
+    // imageListChanged(list) {
+    //   this.formData.images = list;
+    //   console.log("images", this.formData.images);
+    // },
+     // 节点单击事件
+     clickTreeNode(data) {
+      if(data && data.id)
+        this.formData.orgId = data.id;
+      // this.handleQuery();
+    },
+    /** 下穿状态改变*/
+    // changeCheckBox() {
+    //   this.getList();
+    // },
+
+    getDefaultKey(key) {
+      this.formData.orgId = key;
+    },
+
+    reset() {
+      return {
+        id: null,
+        date: null,
+        fileList: [],
+        title: null,
+        orgId: null,
+        type: "工作总结",
+        year: null,
+      };
+    },
+    async refresh(id) {
+      this.formFileListDefualtValue = [];
+      if (id != null && id != undefined) {
+        await getworksummary(id).then((res) => {
+          this.formData = res.data;
+          this.formFileListDefualtValue = res.data.fileList;
+        });
+      }
+    },
+    async show(id) {
+      this.formData = this.reset();
+      this.id = id;
+      await this.refresh(id);
+      if (id) {
+      } else {
+        this.formData.orgId = this.orgId;
+      }
+      this.isShow = true;
+    },
+
+    // 事件
+    onHide() {
+      this.formData = this.reset();
+      this.$refs.form.resetFields();
+    },
+    onSubmit() {
+      console.log(this.formData, "this.formData");
+      this.$refs.form.validate(async (isValidate) => {
+        if (!isValidate) return;
+        if (this.id == null || this.id == undefined) {
+          await add(this.formData).then((res) => {
+            this.$emit("success");
+            this.isShow = false;
+          });
+        } else {
+          await edit(this.formData).then((res) => {
+            this.$emit("success");
+            this.isShow = false;
+          });
+          this.$refs["UserSelector"].clearSelected();
+        }
+      });
+    },
+    //选择用户回调
+    onUserSelect(data) {
+      var ids = data.map((obj) => obj.id);
+      var names = data.map((obj) => obj.name);
+      this.formData.userIds = ids;
+      this.formData.names = names;
+      this.formData.userNames = names.join(",");
+      //   console.log(this.formData.userIds, "this.formData.userIds");
+    },
+    //用户选择
+    selectUser(event) {
+      //   event.preventDefault();
+      this.$refs.UserSelector.show();
+    },
+
+    // 事件
+    //apimark//
+  },
+  mounted() {},
+};
+</script>
+
+<style lang="scss" scoped>
+.workSummary {
+  // .el-form {
+  //   width: 600px;
+  //   padding-top: 40px;
+  // }
+  ::v-deep .org_query_selector{
+    width: 100% !important;
+    .vue-treeselect{
+      width: 100% !important;
+    }
+    div:first-child{
+      margin-right: 10px  !important;
+    }
+  }
+}
+</style>

+ 388 - 0
src/views/safetyBook/workSummary/index.vue

@@ -0,0 +1,388 @@
+<template>
+  <div class="app-container">
+    <div class="main-right-box">
+      <!--    搜索条件    -->
+      <div class="main-search-box">
+        <el-form
+          v-show="showSearch"
+          ref="queryForm"
+          :inline="true"
+          :model="queryParams"
+          size="small"
+        >
+        <el-form-item label="组织机构" prop="orgId">
+            <!-- <tree-select
+              v-model="queryParams.orgId"
+              :noChildrenText="''"
+              :normalizer="tenantIdnormalizer"
+              :options="deptOptions"
+              :props="{ checkStrictly: true, label: 'name' }"
+              :show-count="true"
+              clearValueText="清除"
+              noOptionsText="没有数据"
+              noResultsText="没有搜索结果"
+              placeholder="请选择组织机构"
+            /> -->
+            <org-tree
+                  v-model="queryParams.orgId"
+                  @defaultKey="getDefaultKey"
+                  @checkChange="checkChange"
+                  @click="clickTreeNode"
+                  hangsheTree
+                  :defaultCheckSub="true"
+                  ref="orgTree"
+                ></org-tree>
+          </el-form-item>
+          <el-form-item label="工作年度" prop="year">
+            <el-date-picker
+              v-model="queryParams.year"
+              :clearable="timeClearable"
+              placeholder="请选择工作年度"
+              type="year"
+              value-format="yyyy"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <el-form-item label="文件发布日期" prop="range">
+            <DataRangePicker
+              v-model="queryParams.range"
+              :default-time="['00:00:00', '23:59:59']"
+              end-placeholder="结束日期"
+              start-placeholder="开始日期"
+              type="daterange"
+            >
+            </DataRangePicker>
+          </el-form-item>
+         
+        </el-form>
+        <el-row :gutter="10">
+          <el-col :span="1.5">
+            <el-button
+              icon="el-icon-search"
+              size="mini"
+              type="primary"
+              @click="getList"
+            >搜索
+            </el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              icon="el-icon-refresh"
+              size="mini"
+              type="primary"
+              @click="resetQuery"
+            >重置
+            </el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              v-hasPermi="['core:worksummary:add']"
+              icon="el-icon-plus"
+              size="mini"
+              type="primary"
+              @click="handleAdd(null)"
+            >新增
+            </el-button>
+          </el-col>
+
+          <right-toolbar
+            :showSearch.sync="showSearch"
+            @queryTable="getList"
+          ></right-toolbar>
+        </el-row>
+      </div>
+      <!-- 表格数据 -->
+      <el-table
+        v-loading="loading"
+        :data="dataList"
+        border
+        height="644"
+        size="small"
+      >
+        <el-table-column align="center" label="序号" type="index" width="60"/>
+        <el-table-column
+          align="center"
+          label="行社名称"
+          prop="orgName"
+          width="300"
+        />
+        <el-table-column
+          align="center"
+          label="工作年度"
+          prop="year"
+          width="200"
+        />
+        <el-table-column align="center" label="文件发布日期" prop="date">
+          <template slot-scope="r">
+            {{ r.row.date ? dayjs(r.row.date).format("YYYY年MM月DD日") : "" }}
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          align="center"
+          class-name="small-padding fixed-width"
+          fixed="right"
+          label="操作"
+        >
+          <template slot-scope="scope">
+            <el-button
+              v-hasPermi="['core:worksummary:query']"
+              icon="el-icon-view"
+              size="mini"
+              type="text"
+              @click="handleInfo(scope.row.id)"
+            >详情
+            </el-button>
+            <el-button
+              v-hasPermi="['core:worksummary:add']"
+              icon="el-icon-edit-outline"
+              size="mini"
+              type="text"
+              @click="handleAdd(scope.row.id)"
+            >编辑
+            </el-button>
+
+            <el-button
+              v-hasPermi="['core:worksummary:delete']"
+              icon="el-icon-delete"
+              size="mini"
+              type="text"
+              @click="handleDelete(scope.row)"
+            >删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :limit.sync="queryParams.pageSize"
+        :page.sync="queryParams.pageNum"
+        :total="total"
+        @pagination="getList"
+      />
+    </div>
+    <dialog-edit ref="editDialog" @success="getList()"></dialog-edit>
+    <dialog-des ref="desDialog"></dialog-des>
+    <el-image-viewer
+      v-if="imageViewer"
+      :on-close="closeImgViewer"
+      :url-list="srcList"
+    />
+  </div>
+</template>
+
+<script>
+import {delworksummary, listworksummary,} from "@/api/safetyBook/worksummary";
+import {getLabel} from "@/views/commonOption";
+import DialogEdit from "./dialog.edit";
+import DialogDes from "./dialog.des";
+import {deptTreeSelect} from "@/api/system/public";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
+import kOrgTree from "@/components/k-orgTree/index.vue";
+import KFileUpload from "@/components/K-FileUpload/index.vue";
+import tableList from "@/mixins/tableList";
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+import dayjs from "dayjs";
+
+export default {
+  name: "worksummary",
+  components: {
+    OrgTree,
+    kOrgTree,
+    KFileUpload,
+    DialogEdit,
+    DataRangePicker,
+    DialogDes,
+    "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer"),
+  },
+  mixins: [tableList],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 安全责任书表格数据
+      dataList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 机构树选项
+      deptOptions: [],
+      // 机构名称
+      deptName: undefined,
+      //是否关联下级
+      checked: false,
+      timeClearable: true,
+      defaultProps: {
+        children: "children",
+        label: "name",
+      },
+      formFileListDefualtValue: [],
+      // 查询参数
+      queryParams: {
+        checkSub: true,
+        pageNum: 1,
+        pageSize: 10,
+        orgId: null,
+        year: null,
+        searchOrgId: null,
+      },
+      // 表单参数
+      form: {},
+      imageViewer: false,
+      srcList: [],
+      //默认选中节点
+      defaultKeys: [],
+    };
+  },
+  watch: {
+    // 根据名称筛选机构树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  created() {
+    // this.getDeptTree();
+    this.getConfigKey("sys.user.initPassword").then((response) => {
+      this.initPassword = response.msg;
+    });
+    // this.getList();
+  },
+  methods: {
+    dayjs,
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.getList();
+    },
+    /** treeSelect组件自定义数据*/
+    tenantIdnormalizer(node, instanceId) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.id,
+        label: node.shortName,
+        children: node.children,
+      };
+    },
+    showImages(file) {
+      let array = file.split(",");
+      this.srcList = array;
+      this.imageViewer = true;
+    },
+    closeImgViewer() {
+      this.imageViewer = false;
+      this.srcList = [];
+    },
+    getLabel(options, value) {
+      return getLabel(options, value);
+    },
+    //新增
+    handleAdd(id) {
+      this.$refs.editDialog.show(id);
+    },
+    /** 查询安全责任书列表 */
+    getList() {
+      this.loading = true;
+      listworksummary(this.queryParams).then((response) => {
+        this.dataList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      }).catch(()=>{
+        this.loading = false;
+      });
+    },
+    getDeptTree() {
+      deptTreeSelect().then((response) => {
+        this.deptOptions = response.data;
+      });
+    },
+
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.handleQuery();
+    },
+    /** 下穿状态改变*/
+    changeCheckBox() {
+      this.getList();
+    },
+
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    //单选框状态改变
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
+
+    // 筛选节点
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.name.indexOf(value) !== -1;
+    },
+    // 节点单击事件
+    handleNodeClick(data) {
+      this.queryParams.orgId = data.id;
+      this.handleQuery();
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal
+        .confirm("是否确认删除?")
+        .then(function () {
+          return delworksummary(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {
+        });
+    },
+
+    /** 详情按钮操作 */
+    handleInfo(id) {
+      this.$refs.desDialog.show(id);
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.ellipsis {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+::v-deep.formTreeItem {
+  .el-form-item__content {
+    width: 264px;
+  }
+}
+</style>