Bladeren bron

完成接口对接

尹帮元 2 jaren geleden
bovenliggende
commit
92f8109640

+ 43 - 11
src/components/orgTreeSelect/index.vue

@@ -2,11 +2,11 @@
     <!--  弹出框  -->
     <el-popover
       placement="bottom-start"
+      :disabled="disabled"
       v-model="visible">
-
       <!--  选中的值  -->
-      <div slot="reference" class="tags-box">
-        <i v-if="sNodeList.length > 0" class="el-icon-circle-close close-icon" @click="clickClear"></i>
+      <div  slot="reference" class="tags-box">
+        <i v-if="sNodeList.length > 0 && !disabled" class="el-icon-circle-close close-icon" @click="clickClear"></i>
         <el-tag type="success" v-for="v in sNodeList" :key="v.id">{{v.name}}</el-tag>
       </div>
 
@@ -38,7 +38,7 @@
           show-checkbox
           check-strictly
           :expand-on-click-node="false"
-          :default-checked-keys="defaultNode"
+          :default-checked-keys="nodes"
           @node-click="handleNodeClick"
           @check="onCheck"
           :filter-node-method="filterNode">
@@ -52,6 +52,17 @@ import {deptTreeSelect} from "@/api/system/public";
 
 export default {
   dicts:['org_type_number'],
+  props: {
+    defaultNode: {
+      type: Array,
+      required: false
+    },
+    disabled:{
+      type: Boolean,
+      default:false,
+      required: false
+    }
+  },
   data (){
     return {
       //清除图标
@@ -72,15 +83,25 @@ export default {
       //受否全选
       checked:false,
       //默认展示的node
-      defaultNode:[],
+      //defaultNode:[],
       //已选中的node
       sNodeList:[],
+      nodes:[],
     }
   },
   mounted(){
     this.getDeptTree();
   },
   watch: {
+    defaultNode: {
+      deep: true,
+      handler(n) {
+        this.$nextTick(() => {
+          this.sNodeList = n;
+          this.nodes = n;
+        });
+      },
+    },
     queryForm:{
       deep:true,
       handler(n,o) {
@@ -88,6 +109,14 @@ export default {
       },
     },
   },
+  // computed: {
+  //   defaultNode:
+  //   //pv: sync("value"),
+  // },
+  model:{
+    prop: 'defaultNode',
+    event: 'change'
+  },
   methods:{
     clickClear(){
       this.sNodeList = [];
@@ -162,17 +191,20 @@ export default {
     background-color: #fff;
     border-radius: 4px;
     border: 1px solid #DCDFE6;
-    box-sizing: border-box;
     color: #606266;
     outline: 0;
-    padding: 0 5px;
+    padding: 0 15px 0 5px;
     width: 100%;
     min-height: 40px;
-    display: flex;
-    flex-wrap: wrap;
+    max-height: 40px;
     position: relative;
+    overflow: hidden;
+    display: inline-block;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    cursor: pointer;
     >span{
-      margin: 5px;
+      margin: 5px 10px;
     }
     &:hover{
       .close-icon{
@@ -183,7 +215,7 @@ export default {
     .close-icon{
       position: absolute;
       top:30%;
-      right: 10px;
+      right: 5px;
       display: none;
       cursor: pointer;
     }

+ 1 - 1
src/mixins/tableList.js

@@ -14,7 +14,7 @@ export default {
   methods:{
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryParams.page = 1;
       this.getList();
     },
     /** 重置按钮操作 */

+ 5 - 4
src/utils/request.js

@@ -23,6 +23,7 @@ const service = axios.create({
 
 // request拦截器
 service.interceptors.request.use(config => {
+  console.log(config,'con')
   // 不传递默认关闭loading
   if (config.showLoading) loading = Loading.service({ fullscreen: true, background: "transparent" });
   // 是否需要设置 token
@@ -152,8 +153,8 @@ export function download(url, params, filename, config) {
     downloadLoadingInstance.close();
   })
 }
-export function upload(url, params, filename, config) { 
-  
+export function upload(url, params, filename, config) {
+
   try {
     service.post(url, params, { headers: {
       'Content-Type': 'multipart/form-data',
@@ -161,8 +162,8 @@ export function upload(url, params, filename, config) {
       // 处理上传成功的逻辑
       console.log('上传成功', data);
     });
-    
-   
+
+
   } catch (error) {
     // 处理上传失败的逻辑
     console.log('上传失败', error);

+ 13 - 5
src/utils/ruoyi.js

@@ -7,8 +7,8 @@ import dayjs from "dayjs";
 
 
 // 时间比较
-export function timeCheck(srcs) {
-  srcs = srcs.filter((s) => s);
+export function timeCheck(arr) {
+  let srcs = arr.filter((s) => s);
   for (let i = srcs.length - 1; i > 0; i--) {
     let a = timeToNumber(srcs[i]);
     let b = timeToNumber(srcs[i - 1]);
@@ -19,14 +19,22 @@ export function timeCheck(srcs) {
   return true;
 }
 
+function timeToNumber(src) {
+  return src.replace(":", "") * 1;
+}
+
 // 日期格式化 2023-12-30 00:00:00
 export function parseTime(value, format = "YYYY-MM-DD HH:mm:ss") {
-  if ((value + "").length == 10) {
+  if ((value + "").length == 10 && format != 'dddd') {
     value *= 1000;
+    return value && dayjs(value).format(format);
+  }
+  if(format == 'dddd'){
+    const weeks =  ["周一",'周二','周三','周四','周五','周六','周曰'];
+    return weeks[dayjs(value).day()];
   }
-  return value && dayjs(value).format(format);
 }
-
+// 日期格式化
 export function formatTime(value, format = "YYYY-MM-DD HH:mm:ss") {
   return value && dayjs(value).format(format);
 }

+ 57 - 9
src/views/system/workTimeSet/api.js

@@ -1,6 +1,8 @@
 import request from '@/utils/request'
 
-
+/**
+ * 作息配置页面
+ * */
 // 获取table数据
 export function tableList(params) {
   return request({
@@ -11,34 +13,80 @@ export function tableList(params) {
   })
 }
 
-
 // 修改作息信息
 export function editWorkTime(data) {
   return request({
     url: '/system/work/time/saveOneWorkTime',
     method: 'post',
+    showLoading:true,
+    data
+  })
+}
+
+// 通过id查询org信息
+export function queryOrgInfo(id) {
+  return request({
+    url: '/system/work/time/findOneWorkTimeById/'+id,
+    method: 'get',
+    showLoading:true,
+  })
+}
+
+
+/**
+ * 按周配置作息页面
+ * */
+
+//获取周配置列表
+export function weekTableList(params) {
+  return request({
+    url: '/system/work/timeSet/find',
+    method: 'get',
     showLoading:false,
+    params
+  })
+}
+
+//通过id获取详情
+export function queryInfoById(params) {
+  return request({
+    url: '/system/work/timeSet/findId',
+    method: 'get',
+    showLoading:true,
+    params
+  })
+}
+
+// 新增时数据检查是否合法
+export function checkData(data) {
+  return request({
+    url: '/system/work/time/checkData',
+    method: 'post',
+    showLoading:true,
     data
   })
 }
 
 
-// 按周配置作息
-export function editTimeWeek(data) {
+// 新增按周配置作息列表
+export function addTimeWeek(data) {
   return request({
-    url: '/system/work/time/saveOneWorkTime',
+    url: '/system/work/timeSet/add',
     method: 'post',
-    showLoading:false,
+    showLoading:true,
     data
   })
 }
 
-// 指定日期作息配置
+
+// 新增指定日期作息配置
 export function addWorkTimeDay(data) {
   return request({
-    url: '/system/work/time/saveOneWorkTime',
+    url: '/system/work/time/month/edit',
     method: 'post',
-    showLoading:false,
+    showLoading:true,
     data
   })
 }
+
+

+ 95 - 80
src/views/system/workTimeSet/dialog.add.vue

@@ -9,93 +9,108 @@
             <org-tree-select @selectNode="queryNode"></org-tree-select>
           </el-form-item >
           <el-form-item label="调整日期">
-            <el-button type="primary" @click="addData()">新增日期</el-button>
+            <el-button type="primary" @click="addData">新增日期</el-button>
           </el-form-item>
           <!--  -->
           <el-form-item label="作息规则">
-            <el-table class="w-auto" height="250" border :data="workTimeList">
-              <el-table-column label="日期" width="180px">
-                <template slot-scope="r">
-                  <el-date-picker  v-model="r.row.date" :clearable=false popper-class="no-atTheMoment" :picker-options="startDatepickerOptions" type="date" placeholder="请选择日期">
+            <el-table class="w-auto" height="350" border :data="workTimeList">
+              <el-table-column label="日期" width="160px">
+                <template slot-scope="r" >
+                  <el-date-picker
+                    style="width: 100%"
+                    v-model="r.row.date"
+                    value-format="yyyy-MM-dd hh:mm:ss"
+                    :clearable=false
+                    popper-class="no-atTheMoment"
+                    :picker-options="startDatepickerOptions"
+                    type="date"
+                    placeholder="请选择日期">
                   </el-date-picker>
                 </template>
               </el-table-column>
-              <el-table-column label="星期" width="60px">
+              <el-table-column label="星期" width="80px">
                 <template slot-scope="r">
-                  <span>{{ r.row.date | dateTime("dddd") }}</span>
+                  <span>{{parseTime(r.row.date ,'dddd')}}</span>
                 </template>
               </el-table-column>
-              <el-table-column label="状态" width="180px">
+              <el-table-column label="状态" width="160px">
                 <template slot-scope="r">
-                  <el-radio-group
-                      :disabled="r.row.disabled"
-                      v-model="r.row.isEnable"
-                      @change="onEnableChange(r.row)"
-                  >
-                    <el-radio text-color="#48bb78" :label="true">营业</el-radio>
-                    <el-radio text-color="#f56565" :label="false">歇业</el-radio>
-                  </el-radio-group>
+                  <el-switch
+                  v-model="r.row.isEnable"
+                  :active-value="1"
+                  :inactive-value="0"
+                  @change="onEnableChange(r.row)"
+                  active-text="营业"
+                  inactive-text="歇业">
+                </el-switch>
+
+<!--                  <el-radio-group-->
+<!--                      :disabled="r.row.disabled"-->
+<!--                      v-model="r.row.isEnable"-->
+<!--                      @change="onEnableChange(r.row)">-->
+<!--                    <el-radio text-color="#48bb78" :label="1">营业</el-radio>-->
+<!--                    <el-radio text-color="#f56565" :label="0">歇业</el-radio>-->
+<!--                  </el-radio-group>-->
                 </template>
               </el-table-column>
-              <el-table-column label="上班时间">
+              <el-table-column label="上班时间" >
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.workTime"/>
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.workTime"/>
                 </template>
               </el-table-column>
-              <el-table-column label="营业时间">
+              <el-table-column label="营业时间" >
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.openTime"
-                  />
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.openTime"/>
                 </template>
               </el-table-column>
               <el-table-column label="午休开始">
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.noonbreakStart"
-                  />
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.noonbreakStart"/>
                 </template>
               </el-table-column>
               <el-table-column label="午休结束">
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.noonbreakEnd"
-                  />
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.noonbreakEnd"/>
                 </template>
               </el-table-column>
               <el-table-column label="营业终了">
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.closeTime"
-                  />
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.closeTime"/>
                 </template>
               </el-table-column>
-              <el-table-column label="下班时间">
+              <el-table-column label="下班时间" >
                 <template slot-scope="r">
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      :disabled="r.row.disabled || r.row.isEnable === false"
-                      v-model="r.row.workOffTime"
-                  />
+                    style="width: 100%"
+                    :picker-options="pickerOptions"
+                    :disabled="r.row.disabled || !r.row.isEnable"
+                    v-model="r.row.workOffTime"/>
                 </template>
               </el-table-column>
-              <el-table-column label="操作列表">
+              <el-table-column label="操作列表" width="140px">
                 <template slot-scope="r">
-                  <k-btn-tip type="text" @click="deleteData(r.row,r.$index)"
-                  >删除</k-btn-tip>
-                  <el-button type="text" @click="coppy(r.$index)"
-                  >复制至全部</el-button>
+                  <btn-tip type="text" @click="deleteData(r.row,r.$index)">删除</btn-tip>
+                  <el-button type="text" @click="coppy(r.$index)">复制至全部</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -104,7 +119,7 @@
 <!--      </div>-->
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">取消</el-button>
+        <el-button @click="handleClose">取消</el-button>
         <btn-tip tip="确定要提交吗?" type="primary" @click="onSubmit">保存</btn-tip>
       </div>
     </el-dialog>
@@ -115,20 +130,18 @@
 import OrgTreeSelect from '@/components/orgTreeSelect'
 import BtnTip from "@/components/btnTip";
 import dayjs from "dayjs";
-import { timeCheck } from "@/utils/ruoyi";
+import {formatTime, timeCheck} from "@/utils/ruoyi";
+import {addWorkTimeDay} from "@/views/system/workTimeSet/api";
 
 
 export default {
   components:{OrgTreeSelect,BtnTip},
   data() {
-    let { params, query } = this.$route;
     return {
       selectTreeStrictly: true,
       isShow: false,
       workTimeList: [],
-      data: {
-        orgIdList:  [],
-      },
+      orgIdList:  [],
       startDatepickerOptions: {
         disabledDate(time) {
           const date = new Date();
@@ -143,9 +156,7 @@ export default {
 
   },
   computed: {
-    //...mapState([]),
     pickerOptions() {
-      // const now = new Date();
       return {
         start: "00:00",
         end: "24:00",
@@ -154,8 +165,9 @@ export default {
     },
   },
   methods: {
-    queryNode(){
-
+    queryNode(nodes){
+      console.log(JSON.parse(nodes),'nodes')
+      this.orgIdList = JSON.parse(nodes).map(v=>{return v.id});
     },
     add(){
       this.isShow = true;
@@ -170,7 +182,7 @@ export default {
     addData(){
       //获取workTimeList最后一条数据
       let workTime = {
-        isEnable: true,
+        isEnable: 1,
         workTime: '07:00',
         openTime: '09:00',
         noonbreakStart: null,
@@ -206,14 +218,14 @@ export default {
     },
     //
     check(other) {
-      if(other.date == null){
-        this.onError(`日期不能为空`);
-        return false;
+      if(!other.date){
+        this.$message.error(`日期不能为空`);
+        return;
       }
-      const ds = this.$date(other.date).format("YYYY-MM-DD");
-      if (!other.disabled && other.isEnable == null) {
-        this.onError(`${ds}未进行配置`);
-        return false;
+      const ds = this.parseTime(other.date,"YYYY-MM-DD");
+      if (!other.disabled && !other.isEnable) {
+        this.$message.error(`${ds}未进行配置`);
+        return;
       }
       if (other.isEnable) {
         if (
@@ -224,14 +236,13 @@ export default {
                 other.workOffTime
             )
         ) {
-          this.onError(`${ds}未配置时间`);
+          this.$message.error(`${ds}未配置时间`);
           return;
         }
         if (!other.noonbreakStart ^ !other.noonbreakEnd) {
-          this.onError(`午休开始及结束时间必须同时配置`);
+          this.$message.error(`午休开始及结束时间必须同时配置`);
           return;
         }
-
         if (
             !timeCheck([
               other.workTime,
@@ -242,7 +253,7 @@ export default {
               other.workOffTime,
             ])
         ) {
-          this.onError(
+          this.$message.error(
               `${ds}上班时间<=营业时间<=午休开始<=午休结束<=营业终了<=下班时间`
           );
           return false;
@@ -250,18 +261,13 @@ export default {
       }
       return true;
     },
-    onHide() {
-      this.isShow = false;
-      this.workTimeList = [];
-      this.data.orgIdList=[];
-    },
     handleClose() {
       this.isShow = false;
       this.workTimeList = [];
-      this.data.orgIdList=[];
+      this.orgIdList=[];
     },
     onEnableChange(workTime) {
-      if (workTime.isEnable === false) {
+      if (!workTime.isEnable) {
         workTime.openTime = null;
         workTime.closeTime = null;
         workTime.noonbreakStart = null;
@@ -273,11 +279,11 @@ export default {
     async onSubmit() {
       //判断是否有重复的日期
       let dateList = [];
-      for (let workTime of this.workTimeList) {
-        if (workTime.date) {
-          let date = this.$date(workTime.date).format("YYYY-MM-DD");
+      for (let v of this.workTimeList) {
+        if (v.date) {
+          let date = this.formatTime(v.date,"YYYY-MM-DD");
           if (dateList.indexOf(date) > -1) {
-            this.onError(`日期${date}重复`);
+            this.$message.error(`日期: ${date} 重复`);
             return;
           }
           dateList.push(date);
@@ -289,6 +295,15 @@ export default {
           return;
         }
       }
+      let data = {
+        orgIdList:this.orgIdList,
+        workTimeList:this.workTimeList
+      }
+      addWorkTimeDay(data).then(res=>{
+        this.$emit("success");
+        this.handleClose();
+      })
+
       // await this.$api.workTimeMonth.edit({
       //   ...this.data,
       //   workTimeList: this.workTimeList,

+ 33 - 47
src/views/system/workTimeSet/dialog.edit.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="question-infos">
-    <el-dialog title="编辑作息" @close="handleClose" :visible="show" >
+    <el-dialog title="编辑作息" @close="handleClose" :visible="show" width="800px">
       <div class="page-body">
         <el-form :model="formData" :rules="formData.isEnable?formDataRules:null" size="small" ref="form" label-position="right"
                  label-width="120px" label-prefix=":">
@@ -12,7 +12,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="日期:">
-                <span >{{parseTime(formData.ymdDate,"YYYY-MM-DD")}}</span>
+                <span >{{formData.ymdDate}}</span>
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -24,8 +24,8 @@
               <el-form-item prop="isEnable" label="状态:">
                 <template >
                   <el-radio-group v-model="formData.isEnable" @change="onEnableChange(formData)">
-                    <el-radio text-color="#48bb78" :label="true">营业</el-radio>
-                    <el-radio text-color="#f56565" :label="false">歇业</el-radio>
+                    <el-radio text-color="#48bb78" :label="1">营业</el-radio>
+                    <el-radio text-color="#f56565" :label="0">歇业</el-radio>
                   </el-radio-group>
                 </template>
               </el-form-item>
@@ -41,12 +41,12 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item prop="openTime" label="营业时间:">
+              <el-form-item prop="workOffTime" label="下班时间:">
                 <template >
                   <el-time-select
-                      :picker-options="pickerOptions"
-                      v-model="formData.openTime"
-                      :disabled="!formData.isEnable || formData.isEnable === false"/>
+                    :picker-options="pickerOptions"
+                    v-model="formData.workOffTime"
+                    :disabled="!formData.isEnable || formData.isEnable === false"/>
                 </template>
               </el-form-item>
             </el-col>
@@ -71,26 +71,6 @@
                 </template>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
-              <el-form-item prop="closeTime" label="营业终了:">
-                <template >
-                  <el-time-select
-                      :picker-options="pickerOptions"
-                      v-model="formData.closeTime"
-                      :disabled="!formData.isEnable || formData.isEnable === false"/>
-                </template>
-              </el-form-item>
-            </el-col>
-            <el-col :span="12">
-              <el-form-item prop="workOffTime" label="下班时间:">
-                <template >
-                  <el-time-select
-                      :picker-options="pickerOptions"
-                      v-model="formData.workOffTime"
-                      :disabled="!formData.isEnable || formData.isEnable === false"/>
-                </template>
-              </el-form-item>
-            </el-col>
           </el-row>
         </el-form>
       </div>
@@ -106,6 +86,8 @@
 <script>
 
 
+import {queryOrgInfo,editWorkTime} from "@/views/system/workTimeSet/api";
+import {timeCheck }from '@/utils/ruoyi'
 export default {
   data() {
     return {
@@ -124,23 +106,28 @@ export default {
         closeTime: [{ required: true, message: "请输入营业终了时间" }],
         workOffTime: [{ required: true, message: "请输入下班时间" }],
       },
-      //生成时间选项
-      pickerOptions() {
-        return {
-          start: "00:00",
-          end: "24:00",
-          step: "00:10",
-        };
-      },
+
     };
   },
   created() {
   },
+  computed: {
+    pickerOptions() {
+      return {
+        start: "00:00",
+        end: "24:00",
+        step: "00:10",
+      };
+    },
+  },
   methods: {
     edit(row){
+      this.orgId = row.id;
+      queryOrgInfo(row.id).then(res=>{
+        this.formData = res.data;
+        this.show = true;
+      })
       console.log(row,'11111')
-      this.show = true;
-      this.formData = row;
     },
     reset() {
       return {
@@ -172,7 +159,7 @@ export default {
       this.$refs.form.validate((isValidate) => {
         if (!isValidate) return;
         if (!this.formData.noonbreakStart ^ !this.formData.noonbreakEnd) {
-          this.onError(`午休开始及结束时间必须同时配置`);
+          this.$message.warning(`午休开始及结束时间必须同时配置`);
           return;
         }
         if (
@@ -185,17 +172,16 @@ export default {
               this.formData.workOffTime,
             ])
         ) {
-          this.onError(
-              `时间配置规则:上班时间<=营业时间<=午休开始<=午休结束<=营业终了<=下班时间`
+          this.$message.warning(
+              `时间配置规则:上班时间<=午休开始<=午休结束<=下班时间`
           );
           return false;
         }
-
-        //this.$api.workTime.saveOneWorkTime(this.formData);
-        this.$api.workTime.saveOneWorkTime(this.formData).then((v) => {
-          this.$emit("success");
-          this.onHide();
-        });
+        editWorkTime(this.formData).then(res=>{
+            this.show = false;
+            this.$message.success('操作成功')
+            this.$emit('ok')
+        })
       });
     },
   },

+ 124 - 183
src/views/system/workTimeSet/dialog.template.vue

@@ -4,18 +4,20 @@
       custom-class="gxDialog" width="75%"  append-to-body>
 <!--      <div class="p-5 work-time-modify">-->
         <el-form
+            :disabled="title === '查看作息模版'"
             label-width="140px"
             :rules="rules"
             label-suffix=":"
             label-position="left">
           <el-form-item>
             <span slot="label"> <span style="color: red"> * </span>机构 </span>
-            <org-tree-select @selectNode="queryNode"></org-tree-select>
+            <org-tree-select v-model="tagsList" :disabled="data.disabled" @selectNode="queryNode"></org-tree-select>
           </el-form-item>
           <el-form-item >
             <span slot="label"> <span style="color: red"> * </span>生效日期 </span>
             <el-date-picker
               v-model="formData.effectiveDate"
+              value-format="yyyy-MM-dd hh:mm:ss"
               :disabled="data.disabled"
               :clearable="!data.disabled"
               :picker-options="startDatepickerOptions"
@@ -31,71 +33,70 @@
             </p >
             <div class="box">
               <el-table class="w-auto" border :data="formData.dayOfWeeks">
-                <el-table-column label="星期" width="60px" prop="dayOfWeekText">
+                <el-table-column label="星期" width="100px" prop="dayOfWeekText">
                 </el-table-column>
-                <el-table-column label="营业状态" width="180px">
+                <el-table-column label="营业状态" width="160px">
                   <template slot-scope="r">
                     <el-radio-group
                         v-model="r.row.isWorkday"
-                        @change="onEnableChange(r.row)"
-                    >
-                      <el-radio text-color="#48bb78" :label="true">营业</el-radio>
-                      <el-radio text-color="#f56565" :label="false">歇业</el-radio>
+                        @change="onEnableChange(r.row)">
+                      <el-radio text-color="#48bb78" :label="1">营业</el-radio>
+                      <el-radio text-color="#f56565" :label="0">歇业</el-radio>
                     </el-radio-group>
                   </template>
                 </el-table-column>
                 <el-table-column label="上班时间">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.workTime"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.workTime"/>
                   </template>
                 </el-table-column>
                 <el-table-column label="营业时间">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.openTime"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.openTime"/>
                   </template>
                 </el-table-column>
                 <el-table-column label="午休开始">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.noonbreakStart"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.noonbreakStart"/>
                   </template>
                 </el-table-column>
                 <el-table-column label="午休结束">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.noonbreakEnd"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.noonbreakEnd"/>
                   </template>
                 </el-table-column>
                 <el-table-column label="营业终了">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.closeTime"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.closeTime"/>
                   </template>
                 </el-table-column>
                 <el-table-column label="下班时间">
                   <template slot-scope="r">
                     <el-time-select
-                        :picker-options="pickerOptions"
-                        :disabled="!r.row.isWorkday || r.row.isWorkday === false"
-                        v-model="r.row.workOffTime"
-                    />
+                      style="width: 100%"
+                      :picker-options="pickerOptions"
+                      :disabled="!r.row.isWorkday || r.row.isWorkday === false"
+                      v-model="r.row.workOffTime"/>
                   </template>
                 </el-table-column>
 
@@ -108,11 +109,12 @@
         注:保存后生成或更新本月或下月生效日期后的每日作息
       </div>
 <!--      </div>-->
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">取消</el-button>
+      <div v-if="title != '查看作息模版'" slot="footer" class="dialog-footer">
+        <el-button @click="handleClose">取消</el-button>
         <btn-tip tip="确定要提交吗?" type="primary" @click="onSubmit">保存</btn-tip>
       </div>
     </el-dialog>
+
     <el-dialog
         title="提示"
         :visible="centerDialogVisible"
@@ -134,7 +136,7 @@
         center>
       <span>已存在其他生效的配置,将会生成{{checkMsg}}的作息,是否提交?</span>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="checkDataMsg(0)">取消</el-button>
+        <el-button @click="handleClose()">取消</el-button>
         <el-button type="primary" @click="checkDataMsg(1)">提交</el-button>
       </span>
     </el-dialog>
@@ -145,18 +147,21 @@
 import BtnTip from "@/components/btnTip";
 import OrgTreeSelect from '@/components/orgTreeSelect'
 import { timeCheck } from "@/utils/ruoyi";
+import {addTimeWeek,checkData, queryInfoById} from "@/views/system/workTimeSet/api";
+import {json} from './json'
 export default {
   components:{BtnTip,OrgTreeSelect},
   data() {
-    let { params, query } = this.$route;
     return {
       title:'',
       isShow: false,
-      id:null,
+      row:null,
+      id:0,
       orgId:null,
       formData: {
         orgIdList: [],
-        dayOfWeeks: [],
+        dayOfWeeks: json,
+        effectiveDate:null,
       },
       data: {
         orgIdList: [],
@@ -171,21 +176,16 @@ export default {
           },
         ],
       },
-      options: [
-        {
-          value: new Date().getFullYear(),
-          label: new Date().getFullYear(),
-        },
-        {
-          value: new Date().getFullYear() + 1,
-          label: new Date().getFullYear() + 1,
-        },
-      ],
-      pickerOptions: {
-        start: "00:00",
-        step: "00:10",
-        end: "24:00",
-      },
+      // options: [
+      //   {
+      //     value: new Date().getFullYear(),
+      //     label: new Date().getFullYear(),
+      //   },
+      //   {
+      //     value: new Date().getFullYear() + 1,
+      //     label: new Date().getFullYear() + 1,
+      //   },
+      // ],
       startDatepickerOptions: {
         disabledDate(time) {
           const date = new Date();
@@ -197,46 +197,51 @@ export default {
       centerDialogVisiblea:false,
       checkData:null,
       checkMsg:null,
+      //回显tag
+      tagsList:[]
     };
   },
   props: {},
   watch: {
-    year() {
-      this.getData();
-    },
   },
-  mounted() {
-    this.getData();
+  computed: {
+    pickerOptions() {
+      return {
+        start: "00:00",
+        end: "24:00",
+        step: "00:10",
+      };
+    },
   },
-  computed: {},
   methods: {
     queryNode(json){
-      this.nodes = JSON.parse(json);
-      console.log(this.nodes,'nodes')
+      this.data.orgIdList = JSON.parse(json);
+      console.log(this.orgIdList,'orgIdList')
     },
     edit(row){
       this.title = '编辑作息模版';
       this.isShow = true;
       this.formData = row;
     },
-    add(tree){
+    add(){
       this.title = '新增作息模版';
       this.isShow = true;
+      //this.getData()
+      // for (let i=0; i <= 6;i++){
+      //   this.formData.dayOfWeeks.push({})
+      // }
     },
-   // ...mapMutations([]),
-    async refresh() {},
-
-    async show(id,orgId, other = {}) {
-      console.log("show",id,orgId);
+    show(row) {
+      this.title = '查看作息模版';
       this.isShow = true;
-      this.id=id;
-      this.orgId=orgId;
+      this.id = row.id;
+      this.orgId = row.orgId;
       this.getData();
     },
-    async onSubmit() {
-
-      this.formData.orgIds = this.data.orgIdList;
-
+    onSubmit() {
+      this.formData.orgIds = this.data.orgIdList.map(v=>{
+        return v.id
+      });
       if (this.data.orgIdList.length < 1) {
         this.$message.error("机构不能为空");
         return;
@@ -245,96 +250,39 @@ export default {
         this.$message.error("生效日期不能为空");
         return;
       }
-      let d=this.formData;
-      if (
-          this.formData.dayOfWeeks.filter((w) => w.isWorkday ===true || w.isWorkday)
-              .length === 0
-      ) {
+      if (this.formData.dayOfWeeks.filter((w) => w.isWorkday ===true || w.isWorkday).length === 0) {
         this.$message.error("工作日不能为空");
         return;
       }
-
-      for (let i=0;i< this.formData.dayOfWeeks.length;i++ ) {
-        let dayOfWeek=this.formData.dayOfWeeks[i];
-        if(!dayOfWeek.isWorkday && dayOfWeek.isWorkday!=true){
-          continue;
-        }
-        if (
-            !(
-                dayOfWeek.workTime &&
-                dayOfWeek.openTime &&
-                dayOfWeek.closeTime &&
-                dayOfWeek.workOffTime
-            )
-        ) {
-          this.onError(`${dayOfWeek.dayOfWeekText}的上班时间、营业时间未配置完整`);
+      this.formData.dayOfWeeks.forEach(v=>{
+        let dayOfWeek = v;
+        console.log(dayOfWeek,'dayOfWeek');
+        //是否启用
+        if(!dayOfWeek.isWorkday ) return ;
+        if (!(dayOfWeek.workTime && dayOfWeek.openTime && dayOfWeek.closeTime && dayOfWeek.workOffTime)) {
+          this.$message.error(`${dayOfWeek.dayOfWeekText}的上班时间、营业时间未配置完整`);
           return;
         }
-
         if (!dayOfWeek.noonbreakStart ^ !dayOfWeek.noonbreakEnd) {
-          this.onError(`${dayOfWeek.dayOfWeekText}的午休开始及结束时间必须同时配置`);
+          this.$message.error(`${dayOfWeek.dayOfWeekText}的午休开始及结束时间必须同时配置`);
           return;
         }
-        if (
-            !timeCheck([
-              dayOfWeek.workTime,
-              dayOfWeek.openTime,
-              dayOfWeek.noonbreakStart,
-              dayOfWeek.noonbreakEnd,
-              dayOfWeek.closeTime,
-              dayOfWeek.workOffTime,
-            ])
-        ) {
-          this.onError(
-              `${dayOfWeek.dayOfWeekText}的上班时间<=营业时间<=午休开始<=午休结束<=营业终了<=下班时间`
-          );
+        let arr = [dayOfWeek.workTime, dayOfWeek.openTime, dayOfWeek.noonbreakStart, dayOfWeek.noonbreakEnd, dayOfWeek.closeTime, dayOfWeek.workOffTime];
+        let flag = timeCheck(arr);
+        if (!flag) {
+          this.$message.error(`${dayOfWeek.dayOfWeekText}的上班时间<=营业时间<=午休开始<=午休结束<=营业终了<=下班时间`);
           return false;
         }
-      }
-
-      let data  = await this.$api.workTime.checkData(this.formData);
-      this.checkData=data.checkData
-      this.checkMsg=data.checkMsg
-
-      if((data.checkData==null||data.checkData==0)&&data.checkMsg==null) {
-        // this.$api.workTimeMonth.timeSetAdd(this.formData).then((v) => {
-        //   this.$emit("success");
-        //   this.onHide();
-        // });
-
-      }else{
-        this.checkDataDialog();
-      }
-    },
-
-    checkDataDialog(){
-      if(this.checkMsg!=null){
-        this.centerDialogVisiblea=true;
-        return;
-      }
-      if(this.checkData>0){
-        this.centerDialogVisible=true;
-        return;
-      }
-    },
-    checkDataMsg(tyep){
-      if(tyep==0){
-        this.centerDialogVisiblea=false;
-        this.checkData=null;
-        this.checkMsg=null;
-        return;
-      }else{
-        if(this.checkData>0){
-          this.centerDialogVisible=true;
-          return;
-        }else{
-          // this.$api.workTimeMonth.timeSetAdd(this.formData).then((v) => {
-          //   this.$emit("success");
-          //   this.onHide();
-          // });
+      })
+      checkData(this.formData).then(res=>{
+        this.checkData = res.checkData;
+        if(!res.checkData) {
+          addTimeWeek(this.formData).then(res=>{
+            this.$emit("success");
+            this.handleClose();
+          })
         }
-      }
-
+      })
     },
     async submitData(result){
       this.centerDialogVisible=false;
@@ -346,27 +294,30 @@ export default {
       // });
 
     },
-
     async getData() {
-      console.log("this.formData.id",this.formData.id);
-      console.log("this.formData.orgId",this.formData.orgId);
-      // this.formData = await this.$api.workTimeMonth.holiday({
-      //   id: this.id,
-      // });
-
-      // this.data.orgIdList =[];
-      if (this.id != 0) {
-        this.data.disabled=true;
-        this.data.orgIdList = [this.formData.orgId];
-        console.log(this.formData.orgIdList);
-        if (this.orgId) {
+      queryInfoById({id:this.id}).then(res=>{
+        this.formData = res.data;
+        if (this.id != 0) {
+          this.tagsList = [
+            {
+              id:res.data.orgId,
+              name:res.data.orgName
+            }
+          ];
+          this.data.disabled = true;
           this.data.orgIdList = [this.formData.orgId];
-          console.log(this.data.orgIdList);
+          console.log(this.formData.orgIdList);
+          if (this.orgId) {
+            this.data.orgIdList = [this.formData.orgId];
+            console.log(this.data.orgIdList);
+          }
+        } else {
+          this.data.orgIdList = [];
+          this.data.disabled= false;
         }
-      } else {
-        this.data.orgIdList = [];
-        this.data.disabled= false;
-      }
+      })
+
+      // this.data.orgIdList =[];
     },
     onEnableChange(workTime) {
       if (workTime.isWorkday === false) {
@@ -379,26 +330,16 @@ export default {
       }
     },
     handleClose() {
-
-      this.id=null;
-      this.formData = {
-        orgIdList: [],
-        effectiveDate: null,
-        checkDataResult:null,
-      };
-      this.checkData=null;
-      this.checkMsg=null;
-      this.centerDialogVisiblea=false;
-      this.centerDialogVisible=false;
-      this.isShow = false;
-    },
-    onHide() {
       this.id=null;
       this.formData = {
         orgIdList: [],
+        dayOfWeeks: json,
         effectiveDate: null,
         checkDataResult:null,
       };
+      this.tagsList = [];
+      this.data.orgIdList = [];
+      this.data.disabled= false;
       this.checkData=null;
       this.checkMsg=null;
       this.centerDialogVisiblea=false;

+ 93 - 198
src/views/system/workTimeSet/json.js

@@ -1,198 +1,93 @@
-export let json = {
-  "records": null,
-  "total": 744,
-  "size": 10,
-  "current": 1,
-  "orders": [],
-  "optimizeCountSql": true,
-  "hitCount": false,
-  "countId": null,
-  "maxLimit": null,
-  "content": [
-    {
-      "id": "2023D815|67",
-      "orgId": "67",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻八门城支行",
-      "createTime": "2023-07-19T20:00:02.022+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|69",
-      "orgId": "69",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻黄庄支行",
-      "createTime": "2023-07-19T20:00:02.488+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|71",
-      "orgId": "71",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻石幢支行",
-      "createTime": "2023-07-19T20:00:02.973+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|68",
-      "orgId": "68",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻方家庄支行",
-      "createTime": "2023-07-19T20:00:02.428+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|72",
-      "orgId": "72",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻新安镇支行",
-      "createTime": "2023-07-19T20:00:03.167+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|75",
-      "orgId": "75",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻城关支行",
-      "createTime": "2023-07-19T20:00:02.182+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|573",
-      "orgId": "573",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻新开口支行",
-      "createTime": "2023-07-19T20:00:03.295+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|73",
-      "orgId": "73",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻新城开发区支行",
-      "createTime": "2023-07-19T20:00:03.231+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|64",
-      "orgId": "64",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻口东支行",
-      "createTime": "2023-07-19T20:00:02.668+0000",
-      "updateTime": null,
-      "modifiedName": null,
-      "modifiedId": null,
-      "isEnableInt": null
-    },
-    {
-      "id": "2023D815|74",
-      "orgId": "74",
-      "isEnable": true,
-      "ymdDate": "2023-08-14T16:00:00.000+0000",
-      "workTime": "7:00",
-      "openTime": "9:30",
-      "noonbreakStart": null,
-      "noonbreakEnd": null,
-      "closeTime": "16:00",
-      "workOffTime": "20:00",
-      "orgName": "宝坻宝平支行",
-      "createTime": "2023-07-19T20:00:02.119+0000",
-      "updateTime": "2023-07-26T05:43:04.005+0000",
-      "modifiedName": "张倩",
-      "modifiedId": 4243357399629825,
-      "isEnableInt": null
-    }
-  ],
-  "totalElements": 744,
-  "totalPages": 75,
-  "number": 75,
-  "searchCount": true,
-  "pages": 75
-}
+export let json = [
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 1,
+    "dayOfWeek": 2,
+    "dayOfWeekText": "星期一",
+    "workTime": "07:00",
+    "openTime": "09:00",
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": "17:00",
+    "workOffTime": "20:00"
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 1,
+    "dayOfWeek": 3,
+    "dayOfWeekText": "星期二",
+    "workTime": "07:00",
+    "openTime": "09:00",
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": "17:00",
+    "workOffTime": "20:00"
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 1,
+    "dayOfWeek": 4,
+    "dayOfWeekText": "星期三",
+    "workTime": "07:00",
+    "openTime": "09:00",
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": "17:00",
+    "workOffTime": "20:00"
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 1,
+    "dayOfWeek": 5,
+    "dayOfWeekText": "星期四",
+    "workTime": "07:00",
+    "openTime": "09:00",
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": "17:00",
+    "workOffTime": "20:00"
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 1,
+    "dayOfWeek": 6,
+    "dayOfWeekText": "星期五",
+    "workTime": "07:00",
+    "openTime": "09:00",
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": "17:00",
+    "workOffTime": "20:00"
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 0,
+    "dayOfWeek": 7,
+    "dayOfWeekText": "星期六",
+    "workTime": null,
+    "openTime": null,
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": null,
+    "workOffTime": null
+  },
+  {
+    "id": null,
+    "workTimeSetId": null,
+    "isWorkday": 0,
+    "dayOfWeek": 1,
+    "dayOfWeekText": "星期日",
+    "workTime": null,
+    "openTime": null,
+    "noonbreakStart": null,
+    "noonbreakEnd": null,
+    "closeTime": null,
+    "workOffTime": null
+  }
+]

+ 16 - 21
src/views/system/workTimeSet/workTime.vue

@@ -40,7 +40,7 @@
             <el-date-picker
               v-model="queryParams.range"
               style="width: 240px"
-              value-format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd hh:mm:ss"
               type="daterange"
               range-separator="-"
               start-placeholder="开始日期"
@@ -95,7 +95,7 @@
         <el-table v-loading="loading" style="width: auto;" size="nimi" border :data="tableList">
           <el-table-column v-if="columns[0].visible" prop="orgName" label="机构"></el-table-column>
           <el-table-column v-if="columns[1].visible" label="日期" >
-            <span slot-scope="scope">{{parseTime(scope.row.ymdDate,"YYYY-MM-DD")}}</span>
+            <span slot-scope="scope">{{scope.row.ymdDate}}</span>
           </el-table-column>
           <el-table-column v-if="columns[2].visible" label="营业状态">
             <template slot-scope="r">{{r.row.isEnable!=true?'歇业':'营业'}}</template>
@@ -117,7 +117,7 @@
           </el-table-column>
           <el-table-column v-if="columns[6].visible" prop="modifiedName" label="更新人"></el-table-column>
           <el-table-column v-if="columns[7].visible" label="更新时间" >
-            <span slot-scope="scope">{{parseTime(scope.row.updateTime, "YYYY-MM-DD HH:mm:ss")}}</span>
+            <span slot-scope="scope">{{scope.row.updateTime}}</span>
           </el-table-column>
           <el-table-column v-if="columns[8].visible" label="操作列表" width="100" >
             <template slot-scope="r">
@@ -137,7 +137,7 @@
     </el-row>
 
     <!--  编辑作息  -->
-    <dialog-edit ref="modalEdit" ></dialog-edit>
+    <dialog-edit ref="modalEdit" @ok="getList" ></dialog-edit>
     <!--  指定日期配置  -->
     <dialog-add ref="modalAdd" ></dialog-add>
 
@@ -148,10 +148,11 @@
 import tableListMixins  from '@/mixins/tableList'
 import DialogEdit from './dialog.edit'
 import DialogAdd from './dialog.add'
-import {json} from'./json'
+
 /** 引入节点树接口*/
 import { deptTreeSelect } from "@/api/system/public";
 import { tableList } from "./api";
+import {formatTime} from "@/utils/ruoyi";
 
 export default {
   /**  得先引入字典才能使用 */
@@ -189,8 +190,7 @@ export default {
       queryParams: {
         checkSub: false,
         orgId: null,
-        orgType: null,
-        range: [timeb, timea],
+        range: [formatTime(timeb), formatTime(timea)],
       },
       // 列信息
       columns: [
@@ -228,19 +228,15 @@ export default {
       this.getList();
     },
     /** 查询列表 */
-    getList(id) {
-      //this.loading = true;
-      //console.log(this.queryParams,111);
-      //console.log(this.addDateRange(this.queryParams, this.dateRange),2222);
-      //this.tableList = json.content;
-      this.addDateRange(this.queryParams, this.dateRange)
-      let data = this.queryParams;
-      data.range
-      tableList().then(response => {
-          //兼容框架userId字段
-          response.rows.forEach(v=>{v.userId = v.id});
-          this.userList = response.rows;
-          this.total = response.total;
+    getList() {
+      this.loading = true;
+      let data = {
+        ...this.queryParams,
+        ...this.pages
+      }
+      tableList(data).then(response => {
+          this.tableList = response.rows;
+          this.pages.total = response.total;
           this.loading = false;
         }
       ).catch(err=>{
@@ -251,7 +247,6 @@ export default {
     getDeptTree() {
       deptTreeSelect().then(response => {
         this.deptOptions = response.data;
-        console.log( this.deptOptions,' this.deptOptions')
         this.defaultKeys.push(response.data[0].id);
         this.queryParams.orgId = response.data[0].id;
         this.handleQuery();

+ 47 - 61
src/views/system/workTimeSet/workTimeWeek.vue

@@ -38,9 +38,9 @@
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
           <el-form-item label="生效日期">
             <el-date-picker
-              v-model="queryParams.range"
+              v-model="queryParams.effectiveDate"
               style="width: 240px"
-              value-format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd hh:mm:ss"
               type="daterange"
               range-separator="-"
               start-placeholder="开始日期"
@@ -49,7 +49,7 @@
           </el-form-item>
           <el-form-item label="仅显示当前生效" label-width="120px">
             <el-switch
-              v-model="queryParams.value"
+              v-model="queryParams.isEnable"
               inactive-color="#ccc">
             </el-switch>
           </el-form-item>
@@ -76,40 +76,23 @@
 
         <el-table v-loading="loading" style="width: auto;" size="nimi" border :data="tableList">
           <el-table-column v-if="columns[0].visible" prop="orgName" label="机构"></el-table-column>
-          <el-table-column v-if="columns[1].visible" label="日期" >
-            <span slot-scope="scope">{{parseTime(scope.row.ymdDate,"YYYY-MM-DD")}}</span>
-          </el-table-column>
-          <el-table-column v-if="columns[2].visible" label="营业状态">
-            <template slot-scope="r">{{r.row.isEnable!=true?'歇业':'营业'}}</template>
-          </el-table-column>
-          <el-table-column v-if="columns[3].visible" label="上下班时间段">
-            <template slot-scope="r">
-              <span>{{r.row.workTime}}-{{r.row.workOffTime}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column v-if="columns[4].visible" label="营业时间段">
-            <template slot-scope="r">
-              <span>{{r.row.openTime}}-{{r.row.closeTime}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column v-if="columns[5].visible" label="午休时间段">
-            <template slot-scope="scope">
-              <span>{{scope.row.noonbreakStart}}-{{scope.row.noonbreakEnd}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column v-if="columns[6].visible" prop="modifiedName" label="更新人"></el-table-column>
-          <el-table-column v-if="columns[7].visible" label="更新时间" >
-            <span slot-scope="scope">{{parseTime(scope.row.updateTime, "YYYY-MM-DD HH:mm:ss")}}</span>
-          </el-table-column>
-          <el-table-column v-if="columns[8].visible" label="操作列表" width="100" >
+          <el-table-column v-if="columns[1].visible" prop="effectiveDate" label="生效日期" ></el-table-column>
+          <el-table-column v-if="columns[2].visible" prop="workDay" label="工作日"></el-table-column>
+          <el-table-column v-if="columns[3].visible" prop="modifiedName" label="更新人"></el-table-column>
+          <el-table-column v-if="columns[4].visible"  prop="updateTime" label="更新时间" ></el-table-column>
+          <el-table-column v-if="columns[5].visible" label="操作" width="100" >
             <template slot-scope="r">
-              <el-button type="text"  v-hasPermi="['system:user:edit']" @click="editTemplate(r.row)">编辑</el-button>
+<!--                <el-button type="text" v-if="r.row.timeCheck===0||r.row.timeCheck===3" @click="onEdit(r.row)">编辑</el-button>-->
+<!--                <el-button type="text" v-if="r.row.timeCheck===0" @click="onDelete(r.row.id)">删除</el-button>-->
+<!--                <el-button type="text" v-if="r.row.timeCheck===1||r.row.timeCheck===2" @click="info(r.row)">查看</el-button>-->
+                <el-button type="text"  v-hasPermi="['system:user:details']" @click="lookItem(r.row)">查看</el-button>
             </template>
+
           </el-table-column>
         </el-table>
 
         <pagination
-          v-show="pages.total>0"
+          v-show="pages.total >0"
           :total="pages.total"
           :page.sync="pages.page"
           :limit.sync="pages.size"
@@ -125,16 +108,17 @@
 </template>
 
 <script>
-import tableList  from '@/mixins/tableList'
+import tableListMixins  from '@/mixins/tableList'
 import DialogTemplate from './dialog.template'
 import {json} from'./json'
 /** 引入节点树接口*/
-import { deptTreeSelect } from "@/api/system/public";
+import { deptTreeSelect} from "@/api/system/public";
+import {weekTableList} from './api'
 
 export default {
   /**  得先引入字典才能使用 */
   dicts: ['sys_business_type'],
-  mixins:[tableList],
+  mixins:[tableListMixins],
   components: {DialogTemplate},
   data() {
     return {
@@ -161,8 +145,8 @@ export default {
       queryParams: {
         checkSub: false,
         orgId: null,
-        orgType: null,
-        range: [],
+        isEnable:false,
+        effectiveDate: null,
       },
       // 列信息
       columns: [
@@ -178,12 +162,16 @@ export default {
       ],
       //默认选中节点
       defaultKeys:[],
-      pickerOptions:{
+    };
+  },
+  computed: {
+    pickerOptions() {
+      return {
         start: "00:00",
-          end: "24:00",
+        end: "24:00",
         step: "00:10",
-      },
-    };
+      };
+    },
   },
   watch: {
     // 根据名称筛选机构树
@@ -198,35 +186,33 @@ export default {
     });
   },
   methods: {
-    /** 编辑按钮操作 */
-    editTemplate(row) {
+    /** 查看 */
+    lookItem(row) {
       this.selectRow = row;
-      this.$refs.modalTemplate.edit(row);
-      console.log(this.$refs.modalEdit,'modalEdit');
+      this.$refs.modalTemplate.show(row);
     },
+
     addTemplate(){
-      this.$refs.modalTemplate.add(this.orgTree)
+      this.$refs.modalTemplate.add();
     },
     /** 下穿状态改变*/
     changeCheckBox(){
       this.getList();
     },
     /** 查询列表 */
-    getList(id) {
-      //this.loading = true;
-      console.log(this.queryParams,111);
-      console.log(this.addDateRange(this.queryParams, this.dateRange),2222);
-      this.tableList = json.content;
-      //  tableList(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-      //     //兼容框架userId字段
-      //     response.rows.forEach(v=>{v.userId = v.id});
-      //     this.userList = response.rows;
-      //     this.total = response.total;
-      //     this.loading = false;
-      //   }
-      // ).catch(err=>{
-      //   this.loading = false;
-      // })
+    getList() {
+      let data = {
+        ...this.queryParams,
+        ...this.pages
+      }
+      weekTableList(data).then(response => {
+          this.tableList = response.data.records;
+          this.pages.total = response.data.total;
+          this.loading = false;
+        }
+      ).catch(err=>{
+        this.loading = false;
+      })
     },
     /** 查询机构树 */
     getDeptTree() {
@@ -250,7 +236,7 @@ export default {
     },
 
     /** 提交按钮 */
-    submitForm: function() {
+    submitForm() {
 
     },
     /** 导出按钮操作 */