Ver código fonte

文书档案

luojun 1 ano atrás
pai
commit
e25bed50ac

+ 233 - 0
src/views/safetyBook/aqbwbndjh/dialog.des.vue

@@ -0,0 +1,233 @@
+<template>
+    <div class="rule-type">
+      <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="行社名称:">
+                <el-input
+              :readonly="true"
+              v-model="formData.orgName"
+              :disabled="true"
+            ></el-input>
+            </el-form-item>
+            <el-form-item prop="type" label="文件种类:">
+              <el-input :disabled="true" :readonly="true"
+                v-model="formData.type"
+              ></el-input>
+            </el-form-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-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-form-item label="上传附件(word、pdf文件格式)" prop="images">
+              <imgs-upload
+                :limit="5"
+                v-model="formData.images"
+                :fileSize="2"
+              ></imgs-upload>
+            </el-form-item>
+            <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 { Add, edit, getaqbwbndjh } from "@/api/safetyBook/aqbwbndjh";
+  import { deptTreeSelect } from "@/api/system/public";
+  import UserSelector from "@/components/userSelector/index.vue";
+  import ImgsUpload from "@/components/ImgsUpload";
+  import Editor from "@/components/Editor";
+  export default {
+    dicts: ["safety_book_type"],
+    components: { UserSelector, ImgsUpload, Editor },
+    data() {
+      return {
+        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,
+          // names: [],
+          // userIds: [],
+          date: null,
+          images: [],
+          // content: null,
+          title: null,
+          orgId:null,
+          type:"工作计划",
+          year:null,
+        };
+      },
+      async refresh(id) {
+        if (id != null && id != undefined) {
+          await getaqbwbndjh(id).then((res) => {
+            // this.formData.names = res.data.userNames.split(",");
+            this.formData = res.data;
+            // this.formData.year=res.data.year;
+          });
+        }
+      },
+      async show(id) {
+        // console.log(id, "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();
+      },
+      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;
+            });
+          }
+        });
+      },
+      //选择用户回调
+      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>
+  .brand_info {
+    .el-form {
+      width: 600px;
+      padding-top: 40px;
+    }
+  }
+  </style>
+  

+ 35 - 15
src/views/safetyBook/aqbwbndjh/dialog.edit.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="rule-type">
     <DialogCom
-      :title="id ? '编辑安全保卫部年度计划' : '新增安全保卫部年度计划'"
+      :title="id ? '编辑安全保卫部年度工作计划' : '新增安全保卫部年度工作计划'"
       :visible.sync="isShow"
       @close="onHide"
       width="700px"
@@ -16,7 +16,7 @@
           label-width="130px"
           label-prefix=":"
         >
-          <el-form-item prop="orgId" label="选择机构:">
+          <el-form-item prop="orgId" label="行社名称:">
             <tree-select
                 v-model="formData.orgId"
                 :options="deptOptions"
@@ -29,7 +29,22 @@
                 noResultsText="没有搜索结果"
               />
           </el-form-item>
-          <el-form-item prop="userIds" label="参与人员:">
+          <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="userIds" label="参与人员:" v-if="false">
             <div>
               <el-input
                 :readonly="true"
@@ -39,18 +54,17 @@
               <el-button @click="selectUser">选择</el-button>
             </div>
           </el-form-item>
-          <el-form-item prop="date" label="开会日期:">
+          <el-form-item prop="date" label="文件日期:">
             <el-date-picker
               v-model="formData.date"
-              style="width: 240px"
-              value-format="yyyy-MM-dd hh:mm:ss"
-              placeholder="请选择记录日期"
-              type="datetime"
+              value-format="yyyy-MM-dd"
+              placeholder="请选择文件发布日期"
+              type="date"
               :clearable="false"
             ></el-date-picker>
           </el-form-item>
 
-          <el-form-item label="照片" prop="images">
+          <el-form-item label="上传附件(word、pdf文件格式)" prop="images">
             <imgs-upload
               :limit="5"
               v-model="formData.images"
@@ -58,7 +72,7 @@
             ></imgs-upload>
           </el-form-item>
           <div>
-            <el-form-item label="内容" prop="content">
+            <el-form-item label="内容" prop="content" v-if="false">
               <Editor style="height: 150px" v-model="formData.content"></Editor>
             </el-form-item>
           </div>
@@ -66,8 +80,9 @@
       </div>
 
       <div style="margin-top: 100px" slot="footer" class="dialog-footer">
-        <el-button @click="isShow = false">取消</el-button>
+       
         <el-button type="primary" @click="onSubmit">确定</el-button>
+        <el-button @click="isShow = false">取消</el-button>
       </div>
     </DialogCom>
     <UserSelector ref="UserSelector" @select="onUserSelect"></UserSelector>
@@ -82,11 +97,13 @@ import UserSelector from "@/components/userSelector/index.vue";
 import ImgsUpload from "@/components/ImgsUpload";
 import Editor from "@/components/Editor";
 export default {
+  dicts: ["safety_book_type"],
   components: { UserSelector, ImgsUpload, Editor },
   data() {
     return {
       id: null,
       isShow: false,
+      timeClearable: true,
       formData: this.reset(),
       //修改新增中的机构树
       deptOptions: [],
@@ -139,20 +156,23 @@ export default {
     reset() {
       return {
         id: null,
-        names: [],
-        userIds: [],
+        // names: [],
+        // userIds: [],
         date: null,
         images: [],
-        content: null,
+        // content: null,
         title: null,
         orgId:null,
+        type:"工作计划",
+        year:null,
       };
     },
     async refresh(id) {
       if (id != null && id != undefined) {
         await getaqbwbndjh(id).then((res) => {
-          this.formData.names = res.data.userNames.split(",");
+          // this.formData.names = res.data.userNames.split(",");
           this.formData = res.data;
+          // this.formData.year=res.data.year;
         });
       }
     },

+ 175 - 116
src/views/safetyBook/aqbwbndjh/index.vue

@@ -1,8 +1,7 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="20">
-      <!--机构数据-->
-      <el-col :span="4" :xs="24" v-if="false">
+    <!--机构数据-->
+    <!-- <el-col :span="4" :xs="24" v-if="false">
         <org-tree
           v-model="queryParams.orgId"
           @defaultKey="getDefaultKey"
@@ -10,33 +9,82 @@
           @click="clickTreeNode"
           wholeTree
         ></org-tree>
-      </el-col>
-      <!--用户数据-->
-      <el-col :span="24" :xs="24">
+      </el-col> -->
+    <!--用户数据-->
+    <div class="main-right-box">
+      <!--    搜索条件    -->
+      <div class="main-search-box">
         <el-form
           :model="queryParams"
           ref="queryForm"
           size="small"
           :inline="true"
           v-show="showSearch"
-          label-width="68px"
-        >
-          <el-form-item label="所属年份" prop="year" v-if="false">
-            <el-date-picker
-              v-model="queryParams.year"
-              :clearable="timeClearable"
-              type="year"
-              placeholder="选择时间"
-              value-format="yyyy"
-              @change="handleQuery"
-            >
-            </el-date-picker>
-          </el-form-item>
+          ><el-row :gutter="50">
+            <el-col :span="6" :xs="24">
+              <el-form-item label="工作年度" prop="year">
+                <el-date-picker
+                  v-model="queryParams.year"
+                  :clearable="timeClearable"
+                  type="year"
+                  placeholder="请选择工作年度"
+                  value-format="yyyy"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" :xs="24">
+              <el-form-item label="文件发布日期" prop="range">
+                <DataRangePicker
+                  type="daterange"
+                  :default-time="['00:00:00', '23:59:59']"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  v-model="queryParams.range"
+                >
+                </DataRangePicker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6" :xs="24">
+              <el-form-item label="组织机构" prop="orgId" class="formTreeItem">
+                <tree-select
+                  v-model="queryParams.orgId"
+                  :options="deptOptions"
+                  :show-count="true"
+                  :normalizer="tenantIdnormalizer"
+                  :props="{ checkStrictly: true, label: 'name' }"
+                  placeholder="请选择组织机构"
+                  clearValueText="清除"
+                  :noChildrenText="''"
+                  noOptionsText="没有数据"
+                  noResultsText="没有搜索结果"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
         </el-form>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
             <el-button
               type="primary"
+              icon="el-icon-search"
+              size="mini"
+              @click="getList"
+              >搜索</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              icon="el-icon-refresh"
+              size="mini"
+              @click="resetQuery"
+              >重置</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
               icon="el-icon-plus"
               size="mini"
               @click="handleAdd(null)"
@@ -50,94 +98,80 @@
             @queryTable="getList"
           ></right-toolbar>
         </el-row>
-        <!-- 表格数据 -->
-        <el-table
-          border
-          height="600"
-          size="small"
-          v-loading="loading"
-          :data="dataList"
-        >
-          <el-table-column
-            label="序号"
-            type="index"
-            align="center"
-            width="60"
-          />
-          <el-table-column
-            label="机构名称"
-            align="left"
-            width="300"
-            prop="orgName"
-          />
-          <el-table-column
-            label="记录人"
-            align="left"
-            prop="userName"
-          >
-
+      </div>
+      <!-- 表格数据 -->
+      <el-table
+        border
+        height="600"
+        size="small"
+        v-loading="loading"
+        :data="dataList"
+      >
+        <el-table-column label="序号" type="index" align="center" width="60" />
+        <el-table-column
+          label="行社名称"
+          align="left"
+          width="300"
+          prop="orgName"
+        />
+        <el-table-column
+          label="工作年度"
+          align="center"
+          width="200"
+          prop="year"
+        />
+        <el-table-column label="文件发布日期" align="center" prop="date">
+          <template slot-scope="r">
+            {{ r.row.date ? dayjs(r.row.date).format("YYYY年-MM月-DD日") : "" }}
+          </template>
         </el-table-column>
-          <el-table-column
-            label="记录时间"
-            align="center"
-            width="180"
-            prop="date"
-          />
 
+        <el-table-column
+          label="操作"
+          fixed="right"
+          align="center"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-info"
+              @click="handleInfo(scope.row.id)"
+              v-hasPermi="['core:aqbwbndjh:query']"
+              >详情
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit-outline"
+              @click="handleAdd(scope.row.id)"
+              v-hasPermi="['core:aqbwbndjh:add']"
+              >编辑
+            </el-button>
 
-          <el-table-column
-            label="操作"
-            fixed="right"
-            align="center"
-            class-name="small-padding fixed-width"
-          >
-            <template slot-scope="scope">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit-view"
-                @click="showImages(scope.row.images)"
-                v-hasPermi="['core:hsggbsdj:query']"
-                >查看照片
-              </el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit-outline"
-                @click="handleAdd(scope.row.id)"
-                v-hasPermi="['core:aqbwbndjh:edit']"
-                >编辑
-              </el-button>
-              <!-- <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-info"
-                @click="handleInfo(scope.row)"
-                v-hasPermi="['core:aqbwbndjh:query']"
-                >详情
-              </el-button> -->
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="['core:aqbwbndjh:remove']"
-                >删除
-              </el-button>
-            </template>
-          </el-table-column>
-        </el-table>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['core:aqbwbndjh:remove']"
+              >删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
 
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-        />
-      </el-col>
-    </el-row>
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @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"
@@ -154,19 +188,29 @@ import {
   edit,
   delaqbwbndjh,
 } from "@/api/safetyBook/aqbwbndjh";
-import {  getLabel } from "@/views/commonOption";
+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/index.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: "aqbwbndjh",
-  components: { OrgTree, kOrgTree, KFileUpload, DialogEdit,    "el-image-viewer": () =>
-      import("element-ui/packages/image/src/image-viewer"), },
+  components: {
+    OrgTree,
+    kOrgTree,
+    KFileUpload,
+    DialogEdit,
+    DataRangePicker,
+    DialogDes,
+    "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer"),
+  },
   mixins: [tableList],
   data() {
     return {
@@ -189,7 +233,7 @@ export default {
       // 是否显示弹出层
       open: false,
       // 机构树选项
-      deptOptions: undefined,
+      deptOptions: [],
       // 机构名称
       deptName: undefined,
       //是否关联下级
@@ -231,6 +275,22 @@ export default {
     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;
@@ -314,22 +374,21 @@ export default {
     },
 
     /** 详情按钮操作 */
-    handleInfo(row) {
-      this.reset();
-      const id = row.id || this.ids;
-      getaqbwbndjh(id).then((response) => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "安全责任书详情";
-      });
+    handleInfo(id) {
+      this.$refs.desDialog.show(id);
     },
   },
 };
 </script>
-<style>
+<style lang="scss" scoped>
 .ellipsis {
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 }
+::v-deep.formTreeItem {
+  .el-form-item__content {
+    width: 264px;
+  }
+}
 </style>

+ 1 - 1
src/views/safetyBook/hsggbsdj/dialog.des.vue

@@ -74,7 +74,7 @@
           <div>
             <el-form-item label="会议重点" prop="content">
               <!-- <Editor style="height: 150px" v-model="formData.content"></Editor> -->
-              <el-input type="textarea" v-model="formData.content" rows="6" :autosize="{ minRows: 6, maxRows: 10 }"></el-input>
+              <el-input :disable="true" :readonly="true" type="textarea" v-model="formData.content" rows="6" :autosize="{ minRows: 6, maxRows: 10 }"></el-input>
             </el-form-item>
           </div>
         </el-form>

+ 2 - 1
src/views/safetyBook/hsggbsdj/dialog.edit.vue

@@ -77,8 +77,9 @@
       </div>
 
       <div style="margin-top: 100px" slot="footer" class="dialog-footer">
-        <el-button @click="isShow = false">取消</el-button>
+       
         <el-button type="primary" @click="onSubmit">确定</el-button>
+        <el-button @click="isShow = false">取消</el-button>
       </div>
     </DialogCom>
     <UserSelector ref="UserSelector" @select="onUserSelect"></UserSelector>

+ 0 - 1
src/views/safetyBook/hsggbsdj/index.vue

@@ -37,7 +37,6 @@
               <el-form-item label="会议时间" prop="range">
                 <DataRangePicker
                   type="daterange"
-                  value-format="yyyy-MM-dd HH:mm:ss"
                   :default-time="['00:00:00', '23:59:59']"
                   start-placeholder="开始日期"
                   end-placeholder="结束日期"