ysy 2 yıl önce
ebeveyn
işleme
5eee72ec26

+ 15 - 0
src/api/workforceManagement/schedule.js

@@ -23,6 +23,21 @@ export async function teamqueuedetailSave(data) {
     }
     return Promise.reject(new Error(res.data.message));
 }
+
+// 发布
+
+export async function teamqueueUpdate(data) {
+    const res = await request.put(`main/teamqueue/update`, data);
+    if (res.data.code == 0) {
+        return res.data.message;
+    }
+    return Promise.reject(new Error(res.data.message));
+}
+
+
+
+
+
 // 修改
 export async function teamqueuedetailupdate(data) {
     const res = await request.put(`/main/teamqueuedetail/update`, data);

+ 2 - 1
src/views/system/menu/index.vue

@@ -180,11 +180,12 @@ export default {
   methods: {
     /* 表格数据源 */
     datasource({ where }) {
+      console.log(listMenus({ ...where }))
       return listMenus({ ...where });
     },
     /* 数据转为树形结构 */
     parseData(data) {
- 
+           console.log(data)
       // data.map(item=>{
       //    item.id = parseInt(item.id)
       // })

+ 67 - 0
src/views/workforceManagement/schedule/components/use-search.vue

@@ -0,0 +1,67 @@
+<!-- 搜索表单 -->
+<template>
+    <el-form label-width="77px" size="small" class="ele-form-search" @keyup.enter.native="search" @submit.native.prevent>
+        <el-row :gutter="10">
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="名称:">
+                    <el-input clearable size="small" v-model="where.name" placeholder="请输入排班组名称" />
+                </el-form-item>
+            </el-col>
+
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="状态:">
+                    <el-select v-model="where.status">
+                        <el-option label="发布" :value="1" />
+                        <el-option label="草稿" :value="0" />
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item>
+                    <el-button size="small" type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
+                        查询
+                    </el-button>
+                    <el-button size="small" type="primary" icon="el-icon-refresh-left" class="ele-btn-icon" @click="reset">
+                        重置
+                    </el-button>
+                    <slot></slot>
+                </el-form-item>
+            </el-col>
+        </el-row>
+    </el-form>
+</template>
+  
+<script>
+export default {
+    data() {
+        // 默认表单数据
+        const defaultWhere = {
+            name: '',
+            status: '',
+
+        };
+        return {
+            // 表单数据
+            where: { ...defaultWhere }
+        };
+    },
+    computed: {
+        // 是否开启响应式布局
+        styleResponsive() {
+            return this.$store.state.theme.styleResponsive;
+        }
+    },
+    methods: {
+        /* 搜索 */
+        search() {
+            this.$emit('search', this.where);
+        },
+        /*  重置 */
+        reset() {
+            this.where = { ...this.defaultWhere };
+            this.search();
+        }
+    }
+};
+</script>
+  

+ 157 - 137
src/views/workforceManagement/schedule/index.vue

@@ -1,53 +1,48 @@
 <template>
   <div class="ele-body">
     <el-card shadow="never">
-      <ele-pro-table
-        ref="table"
-        :columns="columns"
-        :datasource="datasource"
-        cache-key="systemRoleTable18"
-      >
+      <useSearch @search="reload" ></useSearch>
+      <ele-pro-table ref="table" :columns="columns" :datasource="datasource" cache-key="systemRoleTable18">
         <!-- 表头工具栏 -->
         <template v-slot:toolbar>
-          <el-button
-            size="small"
-            type="primary"
-            icon="el-icon-plus"
-            class="ele-btn-icon"
-            @click="openAdd('add')"
-          >
+          <el-button size="small" type="primary" icon="el-icon-plus" class="ele-btn-icon" @click="openAdd('add')">
             新建
           </el-button>
         </template>
+
+
+        <template v-slot:status="{ row }">
+          {{ dict.enabled[row.status] }}
+        </template>
+
+
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
-          <el-link
-            type="primary"
-            :underline="false"
-            icon="el-icon-edit"
-            @click="SchedulingGroupPeople(row)"
-          >
+          <el-link type="primary" :underline="false" icon="el-icon-edit" @click="SchedulingGroupPeople(row)">
             按人排班
           </el-link>
-          <el-link
-            type="primary"
-            :underline="false"
-            icon="el-icon-edit"
-            @click="bpb(row)"
-          >
+          <el-link type="primary" :underline="false" icon="el-icon-edit" @click="bpb(row)">
             按班排班
           </el-link>
-          <el-popconfirm
-            class="ele-action"
-            title="确定要删除此角色吗?"
-            @confirm="remove(row)"
-          >
+          <el-popconfirm class="ele-action" title="确定要删除此排班吗?" v-if="row.status == 0" @confirm="remove(row)">
             <template v-slot:reference>
               <el-link type="danger" :underline="false" icon="el-icon-delete">
                 删除
               </el-link>
             </template>
           </el-popconfirm>
+
+
+          <el-popconfirm class="ele-action" title="确定要发布此排班?" @confirm="issue(row)" v-if="row.status == 0">
+            <template v-slot:reference>
+              <el-link type="primary" :underline="false">
+                发布
+              </el-link>
+            </template>
+          </el-popconfirm>
+
+
+
         </template>
       </ele-pro-table>
     </el-card>
@@ -55,115 +50,140 @@
   </div>
 </template>
 <script>
-  import SchedulingGroup from './components/SchedulingGroup.vue';
-  import {
-    teamqueuepage,
-    deleteteamtime
-  } from '@/api/workforceManagement/schedule';
-  export default {
-    components: {
-      SchedulingGroup
+import SchedulingGroup from './components/SchedulingGroup.vue';
+import {
+  teamqueuepage,
+  deleteteamtime,
+  teamqueueUpdate
+} from '@/api/workforceManagement/schedule';
+import useSearch from './components/use-search'
+export default {
+  components: {
+    SchedulingGroup,
+    useSearch
+  },
+  data() {
+    return {
+      columns: [
+        {
+          width: 45,
+          type: 'index',
+          columnKey: 'index',
+          align: 'center',
+          fixed: 'left'
+        },
+        {
+          prop: 'name',
+          label: '排班组名称'
+        },
+        {
+          label: '总人数',
+          prop: 'totalPersonNumber'
+        },
+        {
+          label: '创建人',
+          prop: 'createUserName'
+        },
+        {
+          label: '状态',
+          prop: 'status',
+          slot: 'status',
+        },
+
+        {
+          label: '创建时间',
+          prop: 'createTime'
+        },
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 300,
+          align: 'center',
+          resizable: false,
+          slot: 'action',
+          showOverflowTooltip: true,
+          fixed: 'right'
+        }
+      ],
+      dict: {
+        enabled: {
+          1: '发布',
+          0: '草稿'
+        },
+      }
+    };
+  },
+  methods: {
+    datasource({ page, where, limit }) {
+      let data = teamqueuepage({
+        ...where,
+        pageNum: page,
+        size: limit
+      });
+      console.log(data);
+      return data;
+    },
+
+    /* 刷新表格 */
+    reload(where) {
+      this.$refs.table.reload({ where: where });
     },
-    data () {
-      return {
-        columns: [
-          {
-            width: 45,
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-            fixed:'left'
-          },
-          {
-            prop: 'name',
-            label: '排班组名称'
-          },
-          {
-            label: '总人数',
-            prop: 'totalPersonNumber'
-          },
-          {
-            label: '创建人',
-            prop: 'createUserName'
-          },
-          {
-            label: '创建时间',
-            prop: 'createTime'
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 260,
-            align: 'center',
-            resizable: false,
-            slot: 'action',
-            showOverflowTooltip: true,
-            fixed:'right'
-          }
-        ],
-        dict: {
-          enabled: {
-            1: '生效',
-            0: '未生效'
-          },
-          groupId: []
+
+    // 按人排班
+    SchedulingGroupPeople(row) {
+      this.$router.push({
+        path: '/workforceManagement/schedule/detail',
+        query: {
+          type: 'edit',
+          id: row.id
         }
-      };
+      });
     },
-    methods: {
-      datasource ({ page, where, limit }) {
-        let data = teamqueuepage({
-          ...where,
-          pageNum: page,
-          size: limit
-        });
-        console.log(data);
-        return data;
-      },
-      // 按人排班
-      SchedulingGroupPeople (row) {
-        this.$router.push({
-          path: '/workforceManagement/schedule/detail',
-          query: {
-            type: 'edit',
-            id: row.id
-          }
-        });
-      },
-      // 按班排班
-      bpb (row) {
-        this.$router.push({
-          path: '/workforceManagement/schedule/detail',
-          query: {
-            type: 'edit',
-            id: row.id,
-            isSchedule: '1'
-          }
-        });
-      },
-      // 排版组
-      openAdd () {
-        this.$refs.SchedulingGroup.open();
-      },
-      remove (row) {
-        let par = [row.id];
-        deleteteamtime(par)
-          .then((message) => {
-            this.$message.success(message);
-            this.done();
-          })
-          .catch((e) => {
-            this.$message.error(e.message);
-          });
-      },
-      done () {
-        this.$refs.table.reload({
-          page: 1
-        });
-      },
-      openclass () {
-        this.$refs.setclasses.open();
+    // 按班排班
+    bpb(row) {
+      this.$router.push({
+        path: '/workforceManagement/schedule/detail',
+        query: {
+          type: 'edit',
+          id: row.id,
+          isSchedule: '1'
+        }
+      });
+    },
+    // 排版组
+    openAdd() {
+      this.$refs.SchedulingGroup.open();
+    },
+    remove(row) {
+      let par = [row.id];
+      deleteteamtime(par)
+        .then((message) => {
+          this.$message.success(message);
+          this.done();
+        })
+
+    },
+    done() {
+      this.$refs.table.reload({
+        page: 1
+      });
+    },
+    openclass() {
+      this.$refs.setclasses.open();
+    },
+
+    issue(row) {
+      let param = {
+        id: row.id,
+        status: 1
       }
-    }
-  };
+      teamqueueUpdate(param).then((msg) => {
+        this.$message.success(message);
+        this.done();
+      }).catch((e) => {
+        this.$message.error(e.message);
+      });
+    },
+  }
+};
 </script>