|
|
@@ -0,0 +1,323 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <!--机构数据-->
|
|
|
+ <el-col :span="4" :xs="24">
|
|
|
+ <org-tree
|
|
|
+ v-model="queryParams.orgId"
|
|
|
+ @defaultKey="getDefaultKey"
|
|
|
+ @checkChange="checkChange"
|
|
|
+ @click="clickTreeNode"
|
|
|
+ wholeTree
|
|
|
+ ></org-tree>
|
|
|
+ </el-col>
|
|
|
+ <!--用户数据-->
|
|
|
+ <el-col :span="20" :xs="24">
|
|
|
+ <el-form
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryForm"
|
|
|
+ size="small"
|
|
|
+ :inline="true"
|
|
|
+ v-show="showSearch"
|
|
|
+ label-width="68px"
|
|
|
+ >
|
|
|
+ <el-form-item label="所属年份" prop="year">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.planStartTime"
|
|
|
+ :clearable="timeClearable"
|
|
|
+ type="year"
|
|
|
+ placeholder="选择时间"
|
|
|
+ value-format="yyyy"
|
|
|
+ @change="handleQuery"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="mini"
|
|
|
+ @click="handleAdd(null)"
|
|
|
+ v-hasPermi="['core:materials:add']"
|
|
|
+ >新增
|
|
|
+ </el-button>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <right-toolbar
|
|
|
+ :showSearch.sync="showSearch"
|
|
|
+ @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="200"
|
|
|
+ prop="orgName"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="签署类型"
|
|
|
+ align="left"
|
|
|
+ width="160"
|
|
|
+ prop="type"
|
|
|
+ >
|
|
|
+
|
|
|
+ <template slot-scope="r"
|
|
|
+ >{{
|
|
|
+ getLabel(dict.type.safety_book_type, `${r.row.type}`)
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="责任书所属年份"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ prop="year"
|
|
|
+ />
|
|
|
+ <el-table-column label="签署人" align="center" prop="userName">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="签署时间" align="center" prop="createTime" />
|
|
|
+
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ width="180"
|
|
|
+ fixed="right"
|
|
|
+ align="center"
|
|
|
+ class-name="small-padding fixed-width"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleAdd(scope.row.id)"
|
|
|
+ v-hasPermi="['core:materials:edit']"
|
|
|
+ >编辑
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-info"
|
|
|
+ @click="handleInfo(scope.row)"
|
|
|
+ v-hasPermi="['core:materials:edit']"
|
|
|
+ >详情
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete(scope.row)"
|
|
|
+ v-hasPermi="['core:materials: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>
|
|
|
+ <dialog-edit ref="editDialog" @success="getList()"></dialog-edit>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import {
|
|
|
+ listSafetyBook,
|
|
|
+ getSafetyBook,
|
|
|
+ editOrAdd,
|
|
|
+ delSafetyBook,
|
|
|
+} from "@/api/safetyBook/index";
|
|
|
+import { getLabel } from "@/views/commonOption";
|
|
|
+import DialogEdit from "./dialog.edit";
|
|
|
+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";
|
|
|
+
|
|
|
+export default {
|
|
|
+ dicts: [
|
|
|
+ "safety_book_type"
|
|
|
+ ],
|
|
|
+ name: "safetyBook",
|
|
|
+ components: { OrgTree, kOrgTree, KFileUpload, DialogEdit },
|
|
|
+ mixins: [tableList],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 遮罩层
|
|
|
+ loading: true,
|
|
|
+ // 选中数组
|
|
|
+ ids: [],
|
|
|
+ // 非单个禁用
|
|
|
+ single: true,
|
|
|
+ // 非多个禁用
|
|
|
+ multiple: true,
|
|
|
+ // 显示搜索条件
|
|
|
+ showSearch: true,
|
|
|
+ // 总条数
|
|
|
+ total: 0,
|
|
|
+ // 安全责任书表格数据
|
|
|
+ dataList: [],
|
|
|
+ // 弹出层标题
|
|
|
+ title: "",
|
|
|
+ // 是否显示弹出层
|
|
|
+ open: false,
|
|
|
+ // 机构树选项
|
|
|
+ deptOptions: undefined,
|
|
|
+ // 机构名称
|
|
|
+ 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: {},
|
|
|
+
|
|
|
+ //默认选中节点
|
|
|
+ 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: {
|
|
|
+ getLabel(options, value) {
|
|
|
+ return getLabel(options, value);
|
|
|
+ },
|
|
|
+ //新增
|
|
|
+ handleAdd(id) {
|
|
|
+ this.$refs.editDialog.show(id);
|
|
|
+ },
|
|
|
+ /** 查询安全责任书列表 */
|
|
|
+ getList() {
|
|
|
+ this.loading = true;
|
|
|
+ listSafetyBook(this.queryParams).then((response) => {
|
|
|
+ this.dataList = response.rows;
|
|
|
+ this.total = response.total;
|
|
|
+ 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 delSafetyBook(ids);
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.getList();
|
|
|
+ this.$modal.msgSuccess("删除成功");
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 详情按钮操作 */
|
|
|
+ handleInfo(row) {
|
|
|
+ this.reset();
|
|
|
+ const id = row.id || this.ids;
|
|
|
+ getSafetyBook(id).then((response) => {
|
|
|
+ this.form = response.data;
|
|
|
+ this.open = true;
|
|
|
+ this.title = "安全责任书详情";
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style>
|
|
|
+.ellipsis {
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+}
|
|
|
+</style>
|