Administrator
2021-08-20 3f419662a693a59ed2798721ed2de70060295432
工作汇报接收,通知公告权限控制修改
4 files modified
523 ■■■■ changed files
src/views/desk/notice.vue 15 ●●●●● patch | view | raw | blame | history
src/views/workreport/data.js 452 ●●●● patch | view | raw | blame | history
src/views/workreport/workreply.vue 4 ●●●● patch | view | raw | blame | history
src/views/workreport/workreport.vue 52 ●●●●● patch | view | raw | blame | history
src/views/desk/notice.vue
@@ -27,7 +27,7 @@
          size="small"
          icon="el-icon-delete"
          plain
          v-if="deptCategory"
          v-if="permission.notice_delete"
          @click="handleDelete"
          >删 除
        </el-button>
@@ -37,16 +37,13 @@
        <el-tag>{{ row.categoryName }}</el-tag>
      </template>
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button :size="size" :type="type" @click="handleUploadPage(row)"
        <el-button
        :size="size"
        :type="type"
        @click="handleUploadPage(row)"
        v-if="permission.notice_upload"
          >附件上传
        </el-button>
        <!-- <el-button
          v-if="!deptCategory"
          :size="size"
          :type="type"
          @click="handleUploadPage(row)"
          >附件查看
        </el-button> -->
      </template>
    </avue-crud>
  </basic-container>
src/views/workreport/data.js
@@ -1,240 +1,242 @@
//已发送列表信息
export var workreportColumn = [{
    label: "汇报时间",
    prop: "reportTime",
    type: "datetime",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    searchRange: true,
    searchSpan: 6,
    hide: false,
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
    search: false,
    rules: [{
        required: true,
        message: "请输入时间",
        trigger: "blur"
    }]
}, {
    label: "汇报类别",
    prop: "category",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
    props: {
        label: "dictValue",
        value: "dictKey"
        label: "汇报时间",
        prop: "reportTime",
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        searchRange: true,
        searchSpan: 6,
        hide: false,
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
        search: false,
        rules: [{
            required: true,
            message: "请输入时间",
            trigger: "blur"
        }]
    },
    dataType: "number",
    // searchSpan: 4,
    // search: true,
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
    rules: [{
        required: true,
        message: "请选择汇报类别",
        trigger: "blur"
    }]
}, {
    label: "汇报类型",
    prop: "type",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
    props: {
        label: "dictValue",
        value: "dictKey"
    //  {
    //     label: "汇报类别",
    //     prop: "category",
    //     type: "select",
    //     dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
    //     props: {
    //         label: "dictValue",
    //         value: "dictKey"
    //     },
    //     dataType: "number",
    //     // searchSpan: 4,
    //     // search: true,
    //     hide: true,
    //     addDisplay: false,
    //     editDisplay: false,
    //     viewDisplay: false,
    //     rules: [{
    //         required: true,
    //         message: "请选择汇报类别",
    //         trigger: "blur"
    //     }]
    // },
    {
        label: "汇报类型",
        prop: "type",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        rules: [{
            required: true,
            message: "请选择汇报类型",
            trigger: "blur"
        }]
    },
    dataType: "number",
    searchSpan: 4,
    search: true,
    rules: [{
        required: true,
        message: "请选择汇报类型",
        trigger: "blur"
    }]
},
{
    label: "接收人",
    prop: "receivedIds",
    // span: 12,
    type: "tree",
    dicUrl: "/api/blade-system/dept/lazy-tree-user",
    hide: true,
    leafOnly: true,
    props: {
        label: "title",
        value: "id",
    {
        label: "接收人",
        prop: "receivedIds",
        // span: 12,
        type: "tree",
        // dicUrl: "/api/blade-system/dept/lazy-tree-users?type=3&deptId=" + this.deptId,
        hide: true,
        leafOnly: true,
        props: {
            label: "title",
            value: "id",
        },
        multiple: true,
        // dataType: "number",
        rules: [{
            required: true,
            message: "请选择接收人",
            trigger: "blur"
        }]
    },
    multiple: true,
    // dataType: "number",
    rules: [{
        required: true,
        message: "请选择接收人",
        trigger: "blur"
    }]
},
{
    label: "汇报人身份证号",
    prop: "idCardNo",
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
},
{
    label: "汇报内容",
    prop: "content",
    type: "textarea",
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        trigger: "blur"
    }]
},
    {
        label: "汇报人身份证号",
        prop: "idCardNo",
        hide: true,
        addDisplay: false,
        editDisplay: false,
        viewDisplay: false,
    },
    {
        label: "汇报内容",
        prop: "content",
        type: "textarea",
        span: 24,
        rules: [{
            required: true,
            message: "请输入汇报内容",
            trigger: "blur"
        }]
    },
{
    label: "接收人",
    prop: "replyRealName",
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
},
{
    label: "接收人单位",
    prop: "replyDeptName",
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
},
{
    label: "回复内容",
    prop: "replyContent",
    type: "textarea",
    span: 24,
    addDisplay: false,
    editDisplay: false,
    rules: [{
        required: true,
        message: "请输入回复内容",
        trigger: "blur"
    }]
}
    {
        label: "接收人",
        prop: "replyRealName",
        addDisplay: false,
        editDisplay: false,
        viewDisplay: false,
    },
    {
        label: "接收人单位",
        prop: "replyDeptName",
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
    },
    {
        label: "回复内容",
        prop: "replyContent",
        type: "textarea",
        span: 24,
        addDisplay: false,
        editDisplay: false,
        rules: [{
            required: true,
            message: "请输入回复内容",
            trigger: "blur"
        }]
    }
]
//接收人列信息
export var workreplyColumn = [{
    label: "汇报人",
    prop: "realName",
    disabled: true,
    span: 24,
    rules: [{
        required: true,
        message: "请选择接收人",
        trigger: "blur"
    }]
},
{
    label: "汇报人单位",
    prop: "deptName",
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
}, {
    label: "汇报时间",
    prop: "reportTime",
    type: "datetime",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    searchRange: true,
    searchSpan: 6,
    hide: false,
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
    search: false,
    rules: [{
        required: true,
        message: "请输入时间",
        trigger: "blur"
    }]
}, {
    label: "汇报类别",
    prop: "category",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
    props: {
        label: "dictValue",
        value: "dictKey"
        label: "汇报人",
        prop: "realName",
        disabled: true,
        span: 24,
        rules: [{
            required: true,
            message: "请选择接收人",
            trigger: "blur"
        }]
    },
    dataType: "number",
    // searchSpan: 4,
    // search: true,
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
    hide: true,
    editDisplay: false,
    rules: [{
        required: true,
        message: "请选择汇报类别",
        trigger: "blur"
    }]
}, {
    label: "汇报类型",
    prop: "type",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
    props: {
        label: "dictValue",
        value: "dictKey"
    {
        label: "汇报人单位",
        prop: "deptName",
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
    }, {
        label: "汇报时间",
        prop: "reportTime",
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        searchRange: true,
        searchSpan: 6,
        hide: false,
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
        search: false,
        rules: [{
            required: true,
            message: "请输入时间",
            trigger: "blur"
        }]
    },
    dataType: "number",
    searchSpan: 4,
    search: true,
    disabled: true,
    rules: [{
        required: true,
        message: "请选择汇报类型",
        trigger: "blur"
    }]
},
// {
//     label: "汇报人身份证号",
//     prop: "idCardNo",
//     hide: true,
//     addDisplay: false,
//     editDisplay: false,
//     viewDisplay: false,
// },
{
    label: "汇报内容",
    prop: "content",
    type: "textarea",
    // editDisplay: false,
    disabled: true,
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        trigger: "blur"
    }]
},
{
    label: "回复内容",
    prop: "replyContent",
    type: "textarea",
    span: 24,
    rules: [{
        required: true,
        message: "请输入回复内容",
        trigger: "blur"
    }]
}
    {
        label: "汇报类别",
        prop: "category",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        // searchSpan: 4,
        // search: true,
        hide: true,
        addDisplay: false,
        editDisplay: false,
        viewDisplay: false,
        rules: [{
            required: true,
            message: "请选择汇报类别",
            trigger: "blur"
        }]
    },
    {
        label: "汇报类型",
        prop: "type",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        disabled: true,
        rules: [{
            required: true,
            message: "请选择汇报类型",
            trigger: "blur"
        }]
    },
    // {
    //     label: "汇报人身份证号",
    //     prop: "idCardNo",
    //     hide: true,
    //     addDisplay: false,
    //     editDisplay: false,
    //     viewDisplay: false,
    // },
    {
        label: "汇报内容",
        prop: "content",
        type: "textarea",
        // editDisplay: false,
        disabled: true,
        span: 24,
        rules: [{
            required: true,
            message: "请输入汇报内容",
            trigger: "blur"
        }]
    },
    {
        label: "回复内容",
        prop: "replyContent",
        type: "textarea",
        span: 24,
        rules: [{
            required: true,
            message: "请输入回复内容",
            trigger: "blur"
        }]
    }
]
src/views/workreport/workreply.vue
@@ -101,9 +101,9 @@
    permissionList() {
      return {
        addBtn: this.vaildData(null, false),
        viewBtn: this.vaildData(this.permission.notice_view, false),
        viewBtn: this.vaildData(this.permission.workreply_view, false),
        delBtn: this.vaildData(null, false),
        editBtn: this.vaildData(this.permission.notice_edit, false),
        editBtn: this.vaildData(this.permission.workreply_say, false),
      };
    },
    ids() {
src/views/workreport/workreport.vue
@@ -27,6 +27,7 @@
          size="small"
          icon="el-icon-delete"
          plain
          v-if="permission.workreport_delete"
          @click="handleDelete"
          >删 除
        </el-button>
@@ -41,7 +42,6 @@
</template>
<script>
import { workreportColumn } from "./data";
import {
  getListPage,
  remove,
@@ -51,6 +51,8 @@
} from "@/api/workreport/workreport";
import { getDept } from "@/api/system/dept";
import { mapGetters } from "vuex";
import { mapState } from "vuex";
import { workreportColumn } from "./data";
export default {
  data() {
@@ -89,7 +91,7 @@
        excelBtn: false,
        menuWidth: 320,
        dialogClickModal: false,
        column: workreportColumn,
        column:workreportColumn,
      },
      data: [],
    };
@@ -98,10 +100,10 @@
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.notice_add, false),
        viewBtn: this.vaildData(this.permission.notice_view, false),
        delBtn: this.vaildData(this.permission.notice_delete, false),
        editBtn: this.vaildData(this.permission.notice_edit, false),
        addBtn: this.vaildData(this.permission.workreport_add, false),
        viewBtn: this.vaildData(this.permission.workreport_view, false),
        delBtn: this.vaildData(this.permission.workreport_delete, false),
        editBtn: this.vaildData(this.permission.workreport_edit, false),
      };
    },
    ids() {
@@ -111,6 +113,9 @@
      });
      return ids.join(",");
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
  },
  mounted() {},
  methods: {
@@ -139,6 +144,7 @@
    rowUpdate(row, index, done, loading) {
      row.deptId = this.deptId;
      row.userId = this.userId;
      row.category = 3;
      // row.receivedIds = row.receivedIds.join(",");
      update(row).then(
        () => {
@@ -238,36 +244,22 @@
      ).content.user_id;
      var that = this;
      getDept(this.deptId).then((res) => {
        var deptCategory = res.data.data.deptCategory;
        deptCategory == 1
          ? (that.deptCategory = true)
          : (that.deptCategory = false);
      getDept(this.deptId).then(() => {
        const columnReceivedIds = that.findObject(that.option.column, "receivedIds");
        columnReceivedIds.dicUrl = "/api/blade-system/dept/lazy-tree-users?type=3&deptId="+that.deptId;
        params["deptId"] = that.deptId;
        params["userId"] = that.userId;
        // const { releaseTimeRange } = this.query;
        // if (that.deptCategory) {
        params["deptId"] = this.deptId;
        params["userId"] = this.userId;
        // }
        let values = {
          ...params,
        };
        // if (releaseTimeRange) {
        //   values = {
        //     ...params,
        //     startTime: releaseTimeRange[0],
        //     endTime: releaseTimeRange[1],
        //     ...this.query,
        //   };
        //   values.releaseTimeRange = null;
        // }
        this.loading = true;
        that.loading = true;
        getListPage(page.currentPage, page.pageSize, values).then((res) => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
          this.loading = false;
          this.selectionClear();
          that.page.total = data.total;
          that.data = data.records;
          that.loading = false;
          that.selectionClear();
        });
      });
    },