瀏覽代碼

部门工作清单

liuhh 2 年之前
父節點
當前提交
7b965e294c

+ 74 - 0
src/pages/main/departWorkLists/dialog.vue

@@ -0,0 +1,74 @@
+<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>

+ 980 - 0
src/pages/main/departWorkLists/index.vue

@@ -0,0 +1,980 @@
+<template>
+    <div class="container">
+        <fullscreen :fullscreen.sync="fullscreen" class="container-box">
+
+            <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
+                        >
+                        <el-button size="mini" type="" @click="addMenu">
+                            添加子目录</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>
+                    </div>
+                    <el-alert type="warning" :closable="false">
+                        <template slot="title">
+                            {{
+                                actionName
+                                    ? "当前选择节点名称:" + actionName
+                                    : "当前无选择节点"
+                            }}
+                            <span v-show="actionName" class="clearStyle" @click="clearClick"
+                            >取消选择</span
+                            >
+                        </template>
+                    </el-alert>
+
+                    <div style="margin: 10px 0">
+                        <el-input
+                            size="medium"
+                            placeholder="请输入内容"
+                            v-model="filterText"
+                            class="input-with-select"
+                            clearable
+                            @change="
+                () => {
+                  if (!filterText) {
+                    searchMenu();
+                  }
+                }
+              "
+                        >
+                            <el-button
+                                slot="append"
+                                @click="searchMenu"
+                                icon="el-icon-search"
+                            ></el-button>
+                        </el-input>
+                    </div>
+                    <div
+                        style="
+              height: calc(100% - 160px);
+              overflow-y: auto;
+              margin-top: 20px;
+            "
+                    >
+                        <el-tree
+                            ref="catalogTree"
+                            :expand-on-click-node="true"
+                            :auto-expand-parent="true"
+                            :default-expand-all="true"
+                            :props="defaultProps"
+                            :data="menuList"
+                            @node-click="nodeClick"
+                            :filter-node-method="filterNode"
+                            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>
+                        </el-tree>
+                    </div>
+                    <div class="tree-action"></div>
+                </div>
+                <div  class="inner-right" v-show="addOnlineWordFlag">
+                    <simple-sheet type="edit" />
+                </div>
+<!--                <simple-dialog-->
+<!--                    fullscreen-->
+<!--                    title="新增模板"-->
+<!--                    width="1200px"-->
+<!--                    @confirm="handleVisible('add')"-->
+<!--                    @cancel="handleVisible('add')"-->
+<!--                    v-show="addOnlineWordFlag"-->
+<!--                >-->
+<!--&lt;!&ndash;                    <el-form inline :model="form" label-width="100px"> </el-form>&ndash;&gt;-->
+<!--                    <simple-sheet type="add" />-->
+<!--&lt;!&ndash;                    <template v-slot:footer><div></div></template>&ndash;&gt;-->
+<!--                </simple-dialog>-->
+
+                <div class="inner-right" v-show="workListFlag">
+<!--                    <div class="titbox">-->
+<!--                        <div>-->
+<!--                            <i class="el-icon-refresh" @click="iconCli(1)"></i>-->
+<!--                            <i class="el-icon-full-screen" @click="iconCli(2)"></i>-->
+<!--                            &lt;!&ndash;                    <i class="el-icon-folder-opened"></i>&ndash;&gt;-->
+<!--                            &lt;!&ndash;                    <i class="el-icon-view"></i>&ndash;&gt;-->
+<!--                            &lt;!&ndash;                    <i class="el-icon-more"></i>&ndash;&gt;-->
+<!--                        </div>-->
+<!--                    </div>-->
+                    <div class="search">
+                        <span>部门工作清单</span>
+                    </div>
+                    <div style="margin-bottom: 10px;margin-top: 10px;">
+                        <el-button
+                            v-show="true"
+                            type="primary"
+                            size="mini"
+                            @click="addFile"
+                                    style="width: 80px"
+                        >
+                            新建
+                        </el-button>
+                    </div>
+                    <div class="tabbox">
+                        <el-table
+                            height="calc(100% )"
+                            class="com-table"
+                            ref="multipleTable"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            border
+                            size="small"
+                            style="width: 100%"
+                            v-loading="loading"
+                        >
+                            <el-table-column
+                                prop="name"
+                                width="150"
+                                show-overflow-tooltip
+                                label="名称"
+                                align="center"
+                            >
+                            </el-table-column>
+                            <el-table-column
+                                prop="createTime"
+                                show-overflow-tooltip
+                                label="创建时间"
+                                width="150"
+                                align="center"
+                            />
+                            <el-table-column
+                                prop="createCity"
+                                show-overflow-tooltip
+                                label="创建科室"
+                                width="150"
+                                align="center"
+                              >
+                            </el-table-column>
+                            <el-table-column
+                                prop="createBy"
+                                show-overflow-tooltip
+                                label="创建人"
+                                width="150"
+                                align="center"
+                            >
+                            </el-table-column>
+                            <el-table-column
+                                prop="state"
+                                show-overflow-tooltip
+                                label="状态"
+                                width="150"
+                                align="center"
+                            >
+                            </el-table-column>
+                            <el-table-column label="操作" align="center">
+                                <template slot-scope="scope">
+                                    <el-button
+                                        :disabled="scope.row.editFlag=='1'?false:true"
+                                        class="font-btn"
+                                        size="mini"
+                                        type="text"
+                                        plain
+                                        @click="deleteOne(scope.row)"
+                                    >编辑
+                                    </el-button>
+                                    <el-button
+                                        class="font-btn"
+                                        size="mini"
+                                        type="text"
+                                        plain
+                                        @click="deleteOne(scope.row)"
+                                    >查看
+                                    </el-button>
+                                    <el-button
+                                        v-show="scope.row.delFlag=='1'?true:false"
+                                        class="font-btn"
+                                        size="mini"
+                                        type="text"
+                                        plain
+                                        @click="deleteOne(scope.row)"
+                                    >删除
+                                    </el-button>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                        <el-pagination
+                            class="pageBox"
+                            @current-change="currchange"
+                            layout="prev, pager, next"
+                            background
+                            :total="total"
+                        >
+                        </el-pagination>
+                    </div>
+                </div>
+            </div>
+        </fullscreen>
+    </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 {
+            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: [
+                {
+                    name:"测试",
+                    createTime:"2022-6-12",
+                    createCity:"规划开发室",
+                    createBy:"范岩",
+                    state:"开",
+                    delFlag:"1",//1:代表创建人有删除权限 0:不显示
+                    editFlag:"0"//1:不置灰(状态state字段为开时);0:置灰(状态state字段为关时且不是创建人时)
+                }
+            ], // 表格数据源
+            authData: "", //权限数据
+            fullscreen: false,
+            infolist: {
+                isFile: "1",
+                title: "", // 材料名称
+                meeting: "", // 会议名称
+                titleBg: "", // 材料背景
+                auth: "1", // 查看权限
+                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: [
+                    {
+                        required: true,
+                        message: "请输入材料名称",
+                        trigger: "change",
+                    },
+                ],
+                meeting: [
+                    {
+                        required: true,
+                        message: "请输入会议名称",
+                        trigger: "change",
+                    },
+                ],
+                titleBg: [
+                    {
+                        required: true,
+                        message: "请输入材料背景",
+                        trigger: "change",
+                    },
+                ],
+            },
+            rules: {
+                title: [
+                    {
+                        required: true,
+                        message: "请输入标题",
+                        trigger: "change",
+                    },
+                ],
+                parentId: [
+                    {
+                        required: false,
+                        message: "请选择父级编码",
+                        trigger: "change",
+                    },
+                ],
+            },
+            subType: "",
+            total: 0,
+            pageSize: 1,
+            params: {
+                isFile: "1",
+                id: "",
+            },
+            paramsSearch: {
+                isFile: "1",
+                id: "",
+            },
+            fileInfo: {
+                type: "bt1n",
+                typename: "上传文件",
+                limit: 5,
+                url: "/market/cmkFileShareNet/upload",
+                fileList: [],
+            },
+            titname: "新增",
+            dialogStatus: false,
+            attList: [],
+            idList: [],
+        };
+    },
+    methods: {
+        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 = {};
+            v[0] ? this.paramsSearch.title = v[0] : '';
+            this.paramsSearch.isFile = "1";
+            // this.paramsSearch.parentId = this.infolist.parentId;
+            this.pageSize = 1;//重置分页
+            this.getList(this.paramsSearch, this.pageSize);
+        },
+        // 新增在线文档
+        addFile() {
+            // this.titname = "新增";
+            this.workListFlag = false;
+            this.addOnlineWordFlag = true;
+        },
+        // 上传回调
+        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: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    this.pageSize = 1;
+                    this.$http({
+                        url: "/market/cmkFileShareNet/del",
+                        method: "post",
+                        headers: {
+                            "Content-Type": "application/json",
+                        },
+                        data: {
+                            id: val.id,
+                            isFile: "1",
+                            createId: val.createId,
+                            createName: val.createName,
+                        },
+                    }).then((res) => {
+                        if (res.data.result == 0) {
+                            this.$notify({
+                                title: "成功",
+                                message: res.data.desc,
+                                type: "success",
+                            });
+                            this.getList(this.params, this.pageSize);
+                        }else if(res.data.result == 1) {
+                            this.$notify({
+                                title: "失败",
+                                message: res.data.desc,
+                                type: "error",
+                            });
+                        }
+                    });
+                })
+                .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) {
+                this.getList(this.params, this.pageSize);
+            }
+            if (v === 2) {
+                this.fullscreen = !this.fullscreen;
+            }
+        },
+        // 分页
+        currchange(v) {
+            this.pageSize = v;
+            this.getList(this.params, this.pageSize);
+        },
+        //获取列表
+        getList(v, n) {
+            this.pageSize = n;
+            this.loading = true;
+            this.tableData = [];
+            this.$http({
+                url: "/market/cmkFileShareNet/queryPage",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                    page: '{"pageNo":"' + n + '","pageSize":"10"}',
+                },
+                data: v,
+            }).then((res) => {
+                if (res.data.data && res.data.data.length > 0) {
+                    let arr = res.data.data;
+                    arr.forEach((item) => {
+                        Object.keys(item).forEach((val) => {
+                            if (item[val] == null) {
+                                item[val] = "- -";
+                            }
+                        });
+                    });
+                    this.tableData = arr;
+                } else {
+                    this.tableData = res.data.data;
+                }
+                this.total = res.data.totalRecord;
+                this.loading = false;
+            });
+        },
+    },
+    mounted() {
+        this.getData();
+        // this.getList(this.params, this.pageSize);
+        this.getAuthData();
+    },
+};
+</script>
+<style scoped lang="scss">
+.radviv div {
+    width: 80% !important;
+}
+.pageBox {
+    text-align: right;
+    margin-top: 10px;
+}
+
+.info-line {
+    width: 100%;
+    display: block;
+    // padding-left: 20px;
+
+    div {
+        width: 50%;
+        display: inline-block;
+    }
+
+    span {
+        width: 100px;
+        display: inline-block;
+        text-align: right;
+        font-weight: bold;
+        font-size: 14px;
+        padding-right: 15px;
+
+        i {
+            color: red;
+            display: inline-block;
+            padding-right: 5px;
+        }
+    }
+
+    .el-select,
+    .el-input {
+        width: calc(100% - 100px);
+    }
+
+    .tree {
+        width: calc(100% - 100px);
+    }
+}
+
+.online {
+    width: 100%;
+
+    .el-select {
+        width: calc(100% - 100px);
+    }
+
+    span {
+        vertical-align: top;
+    }
+
+    .el-textarea {
+        width: calc(100% - 100px);
+    }
+}
+</style>
+
+<style lang="scss" scoped>
+.titbox {
+    div {
+        float: right;
+
+        i {
+            font-size: 22px;
+            margin-left: 20px;
+            cursor: pointer;
+        }
+    }
+}
+.container {
+    background-color: #f0f2f5;
+    .clearStyle {
+        cursor: pointer;
+        color: #0b82ff;
+    }
+    .el-col {
+        background-color: white;
+        padding: 0 20px;
+    }
+
+    .container-box {
+        padding: 0;
+        margin-top: 0;
+        height: 100%;
+        background-color: white;
+        padding: 20px;
+    }
+
+    .main-box {
+        overflow: hidden;
+        display: flex;
+        background-color: white;
+        padding: 20px 0;
+
+        > div {
+            background-color: white;
+        }
+
+        .inner-left {
+            width: 30%;
+            padding: 0 20px;
+            border: 1px solid #ddd;
+            border-radius: 5px;
+            height: calc(100vh - 220px);
+
+             .canel-style {
+             	color: #1890ff;
+             	cursor: pointer;
+             	padding-left: 10px;
+             }
+        }
+
+        .inner-right {
+            width: 68%;
+            margin-left: 2%;
+            overflow-y: auto;
+            //   border-left: 1px solid #ddd;
+            height: calc(100vh - 220px);
+        }
+    }
+}
+
+.button-list {
+    padding: 30px 0 10px 0;
+    display: flex;
+    //   justify-content: space-between;
+}
+
+.choice-style {
+    background: rgb(255, 255, 255);
+}
+
+.tree-action {
+    bottom: 0;
+    width: 100%;
+    // border-top: 1px solid #e8e8e8;
+    padding: 10px 16px;
+    text-align: left;
+    left: 0;
+    background: #fff;
+    border-radius: 0 0 2px 2px;
+}
+
+.tree-line {
+    // .el-tree-node__content {
+    //   padding-left: 0 !important;
+    // }
+
+    .el-tree-node__expand-icon.is-leaf {
+        display: none !important;
+    }
+
+    .el-tree-node {
+        position: relative;
+        padding-left: 16px; // 缩进量
+    }
+
+    .el-tree-node__children {
+        padding-left: 16px; // 缩进量
+    }
+
+    // 竖线
+    .el-tree-node::before {
+        content: "";
+        height: 100%;
+        width: 1px;
+        position: absolute;
+        left: -3px;
+        top: -17px;
+        border-width: 1px;
+        border-left: 1px dashed #52627c;
+    }
+
+    // 当前层最后一个节点的竖线高度固定
+    .el-tree-node:last-child::before {
+        height: 38px; // 可以自己调节到合适数值
+    }
+
+    // 横线
+    .el-tree-node::after {
+        content: "";
+        width: 24px;
+        height: 20px;
+        position: absolute;
+        left: -3px;
+        top: 20px;
+        border-width: 1px;
+        border-top: 1px dashed #52627c;
+    }
+
+    // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
+    & > .el-tree-node::after {
+        border-top: none;
+    }
+
+    & > .el-tree-node::before {
+        border-left: none;
+    }
+
+    // 展开关闭的icon
+    .el-tree-node__expand-icon {
+        font-size: 16px;
+
+        // 叶子节点(无子节点)
+        &.is-leaf {
+            color: transparent;
+            // display: none; // 也可以去掉
+        }
+    }
+}
+</style>

文件差異過大導致無法顯示
+ 1052 - 0
src/pages/main/departWorkLists/sheet.vue


文件差異過大導致無法顯示
+ 1057 - 0
src/pages/main/departWorkLists/sheet1.vue