Bladeren bron

部门工作清单

bianww 2 jaren geleden
bovenliggende
commit
9e2ff6742a
1 gewijzigde bestanden met toevoegingen van 268 en 398 verwijderingen
  1. 268 398
      src/pages/main/departWorkLists/index.vue

+ 268 - 398
src/pages/main/departWorkLists/index.vue

@@ -5,38 +5,23 @@
             <div class="main-box">
                 <div class="inner-left" style="overflow: hidden">
                     <div class="button-list">
-                        <el-button size="mini" type="" @click="addRootMenu"  :disabled="authData != '2'" >
+                        <el-button size="mini" type="" @click="addMenu('root')"  :disabled="!authData" >
                             添加根目录</el-button
                         >
-                        <el-button size="mini" type="" @click="addMenu">
-                            添加目录</el-button
+                        <el-button size="mini" type="" @click="addMenu('detail')" :disabled="!authData">
+                            添加清单目录</el-button
                         >
-                        <el-button size="medium" type="" @click="delMenu"> 删除 </el-button>
-                        <el-dropdown
-                            @command="treeAction"
-                            trigger="click"
-                            style="margin-left: 10px"
-                        >
-                            <el-button type="" plain size="medium"> 操作 </el-button>
-                            <el-dropdown-menu slot="dropdown">
-                                <el-dropdown-item :command="1">全部展开</el-dropdown-item>
-                                <el-dropdown-item :command="2">全部关闭</el-dropdown-item>
-                            </el-dropdown-menu>
-                        </el-dropdown>
+                        <el-button size="medium" type="" @click="delMenu" :disabled="!authData"> 删除 </el-button>
                     </div>
                     <el-alert type="warning" :closable="false">
                         <template slot="title">
                             {{
-                                actionName
-                                    ? "当前选择节点名称:" + actionName
-                                    : "当前无选择节点"
+                            checkedNode && checkedNode.length > 0
+                            ? "当前选择节点名称:" + checkedNode[0].name
+                            : "当前无选择节点"
                             }}
-                            <span v-show="actionName" class="clearStyle" @click="clearClick"
-                            >取消选择</span
-                            >
                         </template>
                     </el-alert>
-
                     <div style="margin: 10px 0">
                         <el-input
                             size="medium"
@@ -45,12 +30,12 @@
                             class="input-with-select"
                             clearable
                             @change="
-                () => {
-                  if (!filterText) {
-                    searchMenu();
-                  }
-                }
-              "
+                                () => {
+                                  if (!filterText) {
+                                    searchMenu();
+                                  }
+                                }
+                            "
                         >
                             <el-button
                                 slot="append"
@@ -61,10 +46,10 @@
                     </div>
                     <div
                         style="
-              height: calc(100% - 160px);
-              overflow-y: auto;
-              margin-top: 20px;
-            "
+                          height: calc(100% - 160px);
+                          overflow-y: auto;
+                          margin-top: 20px;
+                        "
                     >
                         <el-tree
                             ref="catalogTree"
@@ -72,27 +57,25 @@
                             :auto-expand-parent="true"
                             :default-expand-all="true"
                             :props="defaultProps"
-                            :data="menuList"
                             @node-click="nodeClick"
                             :filter-node-method="filterNode"
+                            :data="menuList"
                             node-key="id"
                         >
-              <span class="custom-tree-node" slot-scope="{ node }">
-                <span>
-<!--                  <span style="color: #009cff" class=""></span>-->
-                  <span
-                      :style="
-                      node.data.hasOwnProperty('parent')
-                        ? 'font-size:14px;padding-left:5px'
-                        : 'font-size:12px;padding-left:5px'
-                    "
-                  >{{ node.data.title }}</span
-                  >
-                </span>
-              </span>
+                            <span class="custom-tree-node" slot-scope="{ node }">
+                                <span>
+                                  <span style="color: #009cff" class=""></span>
+                                  <span
+                                      :style="
+                                      node.data.parentCode===0
+                                        ? 'font-size:14px;padding-left:5px'
+                                        : 'font-size:12px;padding-left:5px'
+                                    "
+                                  >{{ node.data.name }}</span>
+                                </span>
+                            </span>
                         </el-tree>
                     </div>
-                    <div class="tree-action"></div>
                 </div>
                 <div  class="inner-right" v-if="addOnlineWordFlag" >
                     <simple-sheet :type="type"  @save="handleSave()" :id="tmpId"/>
@@ -104,7 +87,7 @@
                     </div>
                     <div style="margin-bottom: 10px;margin-top: 10px;">
                         <el-button
-                            v-show="true"
+                            v-if="checkedNode && checkedNode.length === 2"
                             type="primary"
                             size="mini"
                             @click="addFile('addFile','')"
@@ -152,7 +135,7 @@
                                 prop="createBy"
                                 show-overflow-tooltip
                                 label="创建人"
-                                width="150"
+                                width="100"
                                 align="center"
                             >
                             </el-table-column>
@@ -160,11 +143,11 @@
                                 prop="stateNm"
                                 show-overflow-tooltip
                                 label="状态"
-                                width="150"
+                                width="100"
                                 align="center"
                             >
                             </el-table-column>
-                            <el-table-column label="操作" align="center">
+                            <el-table-column label="操作" align="center" width="150">
                                 <template slot-scope="scope">
                                     <el-button
                                         :disabled="scope.row.editFlag=='1'?false:true"
@@ -207,48 +190,103 @@
                 </div>
             </div>
         </fullscreen>
+        <el-dialog
+            class="p-new-box"
+            size="50%"
+            title="新增目录"
+            :append-to-body="true"
+            :visible.sync="addDialogStatus"
+            :close-on-click-modal="false"
+        >
+            <el-form
+                :model="formData"
+                :rules="rules"
+                ref="ruleForm"
+                label-width="100px"
+                class="demo-ruleForm"
+                style="width: 90%; margin: 30px auto"
+            >
+                <el-form-item label="目录名称:" prop="name">
+                    <el-input
+                        v-model="formData.name"
+                        placeholder="请输入目录名称"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item
+                    label="父级目录:"
+                    prop="parentName"
+                >
+                    <el-input
+                        disabled
+                        v-model="formData.parentName"
+                        placeholder="请输入父级名称"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item label="操作人:" prop="createName">
+                    <el-input
+                        v-model="formData.createId"
+                        disabled
+                    ></el-input>
+                </el-form-item>
+                <div class="drawer-footer" style="text-align: right">
+                    <el-button
+                        type="primary"
+                        size="medium"
+                        @click="submitForm('ruleForm')"
+                    >确认</el-button
+                    >
+                    <el-button
+                        style="margin-right: 40px"
+                        size="medium"
+                        @click="resetForm('ruleForm')"
+                    >取消</el-button
+                    >
+                </div>
+            </el-form>
+        </el-dialog>
     </div>
 </template>
 <script>
-import mySearch from "../../../components/search.vue";
-import toolList from "../../../components/toolList";
-import myUpload from "../../../components/upload";
 import simpleSheet from "./sheet1.vue";
 export default {
     components: {
-        mySearch,
-        toolList,
-        myUpload,
         simpleSheet
     },
     data() {
         return {
+            addDialogStatus: false,
+            tooltit: "部门工作清单",
+            filterText: "", // tree搜索value
+            menuList: [], // tree数据源
+            checkedNode: [], // 选中节点信息
+            authData: false, //是否有权限 false无全权限
+            fullscreen: false,
+            formData: {
+                name: "",
+                parentCode: "",
+                parentName: "",
+                createId: JSON.parse(sessionStorage.userInfo).loginNo,
+            },
+            defaultProps: {
+                children: "children",
+                label: "name",
+            },
+            rules: {
+                name: [
+                    {
+                        required: true,
+                        message: "请输入目录名称",
+                        trigger: "change",
+                    },
+                ],
+            },
+
             tmpId:'',
             rowData:{},
             type:'add',
             workListFlag:true,
             addOnlineWordFlag:false,
-            addButton: false,
-            loadinged: false,
-            addDialogStatus: false,
-            searchList: [
-                {
-                    type: 'input',
-                    tit: '材料名称',
-                    value: '',
-                    width: '98%',
-                },
-            ],
-            tooltit: "文件共享管理",
             loading: false,
-            defaultExpand: true,
-            functionCode: "",
-            filterText: "", // tree搜索value
-            actionName: "", // 当前选择节点名称
-            menuList: [], // tree数据源
-            checkedMenu: [], // 选中节点的functionCode
-            checkedNodes: [], // 选中节点的node值
-            roleData: "", // 某一条数据
             tableData: [
                 // {
                 //     templateName:"测试",
@@ -260,8 +298,6 @@ export default {
                 //     editFlag:"0"//1:不置灰(状态state字段为开时);0:置灰(状态state字段为关时且不是创建人时)
                 // }
             ], // 表格数据源
-            authData: "", //权限数据
-            fullscreen: false,
             infolist: {
                 isFile: "1",
                 title: "", // 材料名称
@@ -271,22 +307,6 @@ export default {
                 mkFileShareAttachList: [], // 附件数据
                 parentId: "",
             }, // 提交表单数据源
-            formData: {
-                id: "",
-                title: "",
-                createName: JSON.parse(sessionStorage.userInfo).loginName,
-                createId: JSON.parse(sessionStorage.userInfo).loginNo,
-                orgName: JSON.parse(sessionStorage.userInfo).groupName,
-                orgId: JSON.parse(sessionStorage.userInfo).groupId,
-                parentId: "",
-                parentName: "",
-                isFile: "0",
-                auth: "1",
-            },
-            defaultProps: {
-                children: "childDept",
-                label: "title",
-            },
             filerules: {
                 title: [
                     {
@@ -310,22 +330,6 @@ export default {
                     },
                 ],
             },
-            rules: {
-                title: [
-                    {
-                        required: true,
-                        message: "请输入标题",
-                        trigger: "change",
-                    },
-                ],
-                parentId: [
-                    {
-                        required: false,
-                        message: "请选择父级编码",
-                        trigger: "change",
-                    },
-                ],
-            },
             subType: "",
             total: 0,
             pageSize: 1,
@@ -347,10 +351,160 @@ export default {
             titname: "新增",
             dialogStatus: false,
             attList: [],
-            idList: [],
         };
     },
     methods: {
+        // 搜索按钮事件
+        searchMenu() {
+            this.$refs.catalogTree.filter(this.filterText);
+        },
+        // 新增目录-表单提交
+        async submitForm(formName) {
+            let valid = await this.$refs[formName].validate().catch((err) => err);
+            if (valid) {
+                this.$http({
+                    url:"/market/mkWorkListCatalogue/add",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: this.formData,
+                }).then((res) => {
+                    if (res.data.result === 0) {
+                        this.$message({
+                            type: "success",
+                            message: res.data.desc,
+                        });
+                        this.checkedNode = [];
+                        this.getData();
+                        this.addDialogStatus = false;
+                    }else {
+                        this.$message({
+                            type: "error",
+                            message: res.data.desc,
+                        });
+                    }
+                });
+            }
+        },
+        // 取消新增目录
+        resetForm(formName) {
+            this.$refs[formName].resetFields();
+            this.addDialogStatus = false;
+        },
+        // 新增目录
+        addMenu(flag) {
+            if (flag === 'detail'){
+                if (!this.checkedNode || this.checkedNode.length !== 1){
+                    this.$message({
+                        type: "warning",
+                        message: "请先选择根目录",
+                    });
+                    return;
+                }
+                this.formData.parentCode = this.checkedNode[0].id
+                this.formData.parentName = this.checkedNode[0].name
+            }else if (flag === 'root'){
+                this.formData.parentCode = 0;
+                this.formData.parentName = ''
+            }
+            this.addDialogStatus = true
+        },
+        // 删除目录
+        delMenu() {
+            if (!this.checkedNode || this.checkedNode.length === 0) {
+                this.$message("请先选中要删除的目录");
+            } else {
+                this.$confirm("即将删除此条数据, 是否删除?", "提示", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning",
+                })
+                    .then(() => {
+                        this.$http({
+                            url: "/market/mkWorkListCatalogue/del",
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data: {
+                                id: this.checkedNode[0].id,
+                            },
+                        }).then((res) => {
+                            if (res.data.result === 0) {
+                                this.$notify({
+                                    title: "成功",
+                                    message: res.data.desc,
+                                    type: "success",
+                                });
+                                this.checkedNode = [];
+                                this.getData();
+                            }else if(res.data.result === 1) {
+                                this.$notify({
+                                    title: "失败",
+                                    message: res.data.desc,
+                                    type: "error",
+                                });
+                            }
+                        });
+                    })
+                    .catch(() => {});
+            }
+        },
+        // tree过滤方法
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.name.indexOf(value) !== -1;
+        },
+        // 点击树节点事件
+        nodeClick(data, node) {
+            this.formData.parentCode = data.parentCode;
+            let clickNode = []
+            this.getParent(node, clickNode)
+            this.checkedNode = clickNode
+            if (clickNode.length === 2){
+                this.params.mkdirId = clickNode[0].id + ''
+                this.getList(this.params, this.pageSize);
+            }
+        },
+        getParent(node, list){
+            if (node.level > 0){
+                list.push(node.data)
+                this.getParent(node.parent, list);
+            }
+        },
+        // 获取目录
+        getData() {
+            this.$http({
+                url: "/market/mkWorkListCatalogue/queryList",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                data: { isFile: "0" },
+            }).then((res) => {
+                if (res.data.result === 0) {
+                    this.menuList = res.data.body;
+                }else {
+                    this.$message({
+                        message: res.data.desc,
+                        type: "error",
+                    });
+                }
+            });
+        },
+        // 获取权限
+        getAuthData() {
+            /*let menus = JSON.parse(window.sessionStorage.childrenMenus);
+            for(let n=0;n<menus.length;n++){
+                if (menus[n].jspUrl === "/workListCatalogueAuth") {
+                   this.authData = true
+                }
+            }*/
+            this.authData = true
+        },
+
+
         handleSave() {
             // switch (type) {
             //     case "add":
@@ -366,19 +520,6 @@ export default {
             // this.handleInit();
             this.getList(this.params, this.pageSize);
         },
-        addButtonShow(){
-            //
-            this.addButton=true;
-        },
-        clearClick() {
-            this.actionName = "";
-            this.params.id = "";
-            this.getList(this.params, this.pageSize);
-        },
-
-        handleSelectionChange(val) {
-            this.idList = val;
-        },
         //搜索数据
         searchInfo(v) {
             this.paramsSearch = {};
@@ -412,136 +553,6 @@ export default {
         uploadBack(v) {
             this.attList = v;
         },
-        // 关闭弹窗
-        closedia() {
-            this.infolist = {};
-            this.dialogStatus = false;
-            this.fileInfo.fileList = [];
-            this.getList(this.params, this.pageSize);
-        },
-        //添加 修改
-        dialogCli(v) {
-            this.fileInfo.fileList = [];
-            if (v === 2) {
-                this.dialogStatus = false;
-                this.getList(this.params, this.pageSize);
-                return;
-            }
-            this.$refs.infolist.validate((valid) => {
-                if (valid) {
-                    let attList = [];
-                    for (let i = 0; i < this.attList.length; i++) {
-                        attList.push({
-                            id: this.attList[i].id,
-                            fileName: this.attList[i].fileName,
-                        });
-                    }
-                    this.infolist.mkFileShareAttachList = attList;
-                    this.infolist.isFile = "1";
-                    this.loadinged = true;
-                    this.$http({
-                        url: "/market/cmkFileShareNet/add",
-                        method: "post",
-                        headers: {
-                            "Content-Type": "application/json",
-                        },
-                        data: this.infolist,
-                    }).then((res) => {
-                        this.loadinged = false;
-                        if (res.data.result === 1) {
-                            this.$message({
-                                message: res.data.desc,
-                                type: "error",
-                            });
-                        } else {
-                            this.$message({
-                                message: "成功",
-                                type: "success",
-                            });
-                            this.fileInfo.fileList = [];
-                            // this.infolist = {};
-                            this.dialogStatus = false;
-                            this.getList(this.params, this.pageSize);
-                        }
-                    });
-                }
-            });
-        },
-
-        // 新增目录-表单提交
-        async submitForm(formName) {
-            let valid = await this.$refs[formName].validate().catch((err) => err);
-            if (valid) {
-                this.$http({
-                    url:
-                        this.subType == "保存"
-                            ? "/market/cmkFileShareNet/add"
-                            : "/satisfy/qacatalog/update",
-                    method: "post",
-                    headers: {
-                        "Content-Type": "application/json",
-                    },
-                    data: this.formData,
-                }).then((res) => {
-                    if (res.data.result == 0) {
-                        this.$message({
-                            type: "success",
-                            message: res.data.desc,
-                        });
-                        this.actionName = "";
-                        this.getData();
-                        this.addDialogStatus = false;
-                    }
-                });
-            } else {
-                this.$message({
-                    type: "error",
-                    message: "新增失败",
-                });
-                this.addDialogStatus = false;
-                return false;
-            }
-        },
-        // 取消新增目录
-        resetForm(formName) {
-            this.actionName = "";
-            this.$refs[formName].resetFields();
-            this.addDialogStatus = false;
-        },
-        // 新增目录
-        addMenu() {
-            if (!this.actionName) {
-                this.$message("请先点击选中要增加菜单的位置");
-            } else {
-                this.addDialogStatus = true;
-                this.subType = "保存";
-                this.formData.parentId = this.formData.id;
-                this.formData.parentName = this.formData.title;
-                this.formData.title = "";
-                this.formData.id = "";
-            }
-        },
-        // 新增根目录
-        addRootMenu() {
-            this.addDialogStatus = true;
-            this.subType = "保存";
-            this.formData.parentId = 0;
-            this.formData.parentName = this.formData.title;
-            this.formData.title = "";
-            this.formData.id = "";
-        },
-        // 树展开\折叠
-        treeAction(val) {
-            val == 1 ? (this.defaultExpand = true) : (this.defaultExpand = false);
-            for (
-                let i = 0;
-                i < this.$refs.catalogTree.store._getAllNodes().length;
-                i++
-            ) {
-                this.$refs.catalogTree.store._getAllNodes()[i].expanded =
-                    this.defaultExpand;
-            }
-        },
         deleteOne(val) {
             this.$confirm("即将删除此条数据, 是否删除?", "提示", {
                 confirmButtonText: "确定",
@@ -576,146 +587,6 @@ export default {
                 })
                 .catch(() => {});
         },
-        // 删除目录
-        delMenu() {
-            if (!this.formData.id) {
-                this.$message("请先点击选中要删除的菜单");
-            } else {
-                this.$confirm("即将删除此条数据, 是否删除?", "提示", {
-                    confirmButtonText: "确定",
-                    cancelButtonText: "取消",
-                    type: "warning",
-                })
-                    .then(() => {
-                        this.$http({
-                            url: "/market/cmkFileShareNet/del",
-                            method: "post",
-                            headers: {
-                                "Content-Type": "application/json",
-                            },
-                            data: {
-                                id: this.formData.id,
-                                isFile: "0",
-                                createId: this.formData.createId,
-                                createName: this.formData.createName,
-                            },
-                        }).then((res) => {
-                            if (res.data.result == 0) {
-                                this.$notify({
-                                    title: "成功",
-                                    message: res.data.desc,
-                                    type: "success",
-                                });
-                                this.actionName = "";
-                                this.getData();
-                            }else if(res.data.result == 1) {
-                                this.$notify({
-                                    title: "失败",
-                                    message: res.data.desc,
-                                    type: "error",
-                                });
-                            }
-                        });
-                    })
-                    .catch(() => {});
-            }
-        },
-        // 搜索按钮事件
-        searchMenu() {
-            this.$refs.catalogTree.filter(this.filterText);
-        },
-        // tree过滤方法
-        filterNode(value, data) {
-            if (!value) return true;
-            return data.title.indexOf(value) !== -1;
-        },
-        // 点击树节点事件
-        nodeClick(a, b) {
-            let nodeData = JSON.parse(JSON.stringify(b.data));
-            this.formData.title = nodeData.title;
-            this.formData.parentId = nodeData.parentId;
-            this.formData.parentName = nodeData.parentName;
-            this.formData.id = nodeData.id;
-            delete Object["children"];
-            this.actionName = nodeData.title;
-            this.subType = "修改";
-            this.params.type = "";
-            this.params.title = "";
-            this.params.collection = "";
-            this.params.catalogId = nodeData.id;
-            this.params.id = nodeData.id;
-            this.infolist.parentId = nodeData.id;
-            this.pageSize = 1;//切换树重置分页
-            this.getList(this.params, this.pageSize);
-        },
-        // 获取目录
-        // getData() {
-        //     this.$http({
-        //         url: "/market/cmkFileShareNet/queryList",
-        //         method: "post",
-        //         headers: {
-        //             "Content-Type": "application/json",
-        //         },
-        //         data: { isFile: "0" },
-        //     }).then((res) => {
-        //         if (res.data && res.data.length > 0) {
-        //             this.menuList = res.data;
-        //         }
-        //     });
-        // },
-        // 获取权限
-        // getAuthData() {
-        //     this.$http({
-        //         url: "/market/cmkFileShareNet/queryAuth",
-        //         method: "post",
-        //         headers: {
-        //             "Content-Type": "application/json",
-        //         },
-        //         data: {},
-        //     }).then((res) => {
-        //         if (res.data) {
-        //             this.authData = res.data.auth;
-        //         }
-        //     });
-        // },
-        toTreeData(data) {
-            var pos = {};
-            var tree = [];
-            var i = 0;
-            while (data.length != 0) {
-                if (data[i].parentId == 0) {
-                    tree.push({
-                        id: data[i].id,
-                        title: data[i].title,
-                        children: [],
-                    });
-                    pos[data[i].id] = [tree.length - 1];
-                    data.splice(i, 1);
-                    i--;
-                } else {
-                    var posArr = pos[data[i].parentId];
-                    if (posArr != undefined) {
-                        var obj = tree[posArr[0]];
-                        for (var j = 1; j < posArr.length; j++) {
-                            obj = obj.children[posArr[j]];
-                        }
-                        obj.children.push({
-                            id: data[i].id,
-                            title: data[i].title,
-                            children: [],
-                        });
-                        pos[data[i].id] = posArr.concat([obj.children.length - 1]);
-                        data.splice(i, 1);
-                        i--;
-                    }
-                }
-                i++;
-                if (i > data.length - 1) {
-                    i = 0;
-                }
-            }
-            return tree;
-        },
         //功能栏
         iconCli(v) {
             if (v === 1) {
@@ -761,9 +632,8 @@ export default {
         },
     },
     mounted() {
-        // this.getData();
-        this.getList(this.params, this.pageSize);
-        // this.getAuthData();
+        this.getData();
+        this.getAuthData();
     },
 };
 </script>