xiao547607 il y a 4 ans
Parent
commit
4b58bdfa28

+ 2 - 1
.env.development

@@ -1,7 +1,8 @@
 OUT_PUT_DIR=dist/shinestar-portal
 
 #VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
-VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/shinestar-server
+#VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/shinestar-server
+VUE_APP_BACKEND_URL=http://127.0.0.1:8086/shinestar-server
 #VUE_APP_BACKEND_URL=http://xpgjapi.xiaoxinda.com
 
 #手机企业版

+ 5 - 1
src/api/base/workPersonScheduling.js

@@ -49,6 +49,10 @@ function changeScheduling(formData){
   return request.post(constant.serverUrl + "/base/workPersonScheduling/changeScheduling", formData);
 }
 
+function changePersonShift(formData){
+  return request.post(constant.serverUrl + "/base/workPersonScheduling/changePersonShift", formData);
+}
+
 export default {
-  pageList,create,edit,add,update,remove,batchRemove,findScheduling,changeScheduling
+  pageList,create,edit,add,update,remove,batchRemove,findScheduling,changeScheduling,changePersonShift
 }

+ 2 - 144
src/views/base/workPersonScheduling-change.vue

@@ -149,148 +149,6 @@
           </div>
         </div>
       </div>
-      <!-- <div class="flex-row">
-        <el-row>
-          <el-col :span="9">
-            <el-table
-              :data="shiftData"
-              height="300px"
-              style="width: 300px"
-              highlight-current-row
-              @current-change="handleCurrentChange"
-            >
-              <el-table-column prop="name" label="可选班次" width="190">
-                <template slot-scope="{ row }">
-                  <span>{{ row.number }} - {{ row.name }}</span>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-col>
-          <el-col :span="6">
-            <div class="flex-col">
-              <div>
-                <el-button round size="mini" @click="moveUp">选择</el-button>
-                <div style="height: 10px"></div>
-                <el-button round size="mini" @click="moveDown">移除</el-button>
-              </div>
-            </div>
-          </el-col>
-          <el-col :span="9">
-            <div>
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                @click="changeTag('1')"
-                >一</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="success"
-                @click="changeTag('2')"
-                >二</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="info"
-                @click="changeTag('3')"
-                >三</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="warning"
-                @click="changeTag('4')"
-                >四</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="danger"
-                @click="changeTag('5')"
-                >五</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="success"
-                @click="changeTag('6')"
-                >六</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="info"
-                @click="changeTag('7')"
-                >七</el-tag
-              >
-            </div>
-            <div>
-              <el-tag size="mini" align="middle" style="width: 25px">
-                {{ number1 }}
-              </el-tag>
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="success"
-                >{{ number2 }}</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="info"
-                >{{ number3 }}</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="warning"
-                >{{ number4 }}</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="danger"
-                >{{ number5 }}</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="success"
-                >{{ number6 }}</el-tag
-              >
-              <el-tag
-                size="mini"
-                align="middle"
-                style="width: 25px"
-                type="info"
-                >{{ number7 }}</el-tag
-              >
-            </div>
-            <div>
-              <el-tag
-                v-if="leftClickType && rightClickType"
-                closable
-                @close="closeTag()"
-                >{{ showName }}</el-tag
-              >
-            </div>
-          </el-col>
-        </el-row>
-      </div> -->
     </div>
     <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
@@ -457,8 +315,8 @@ export default {
     queryShiftInfo() {
       var self = this;
       var formData = new FormData();
-      //formData.append("companyId", self.queryModel.companyId);
-      formData.append("companyId", "ee25ae8d-d102-4fcd-8d58-71e40f413337");
+      formData.append("companyId", self.queryModel.companyId);
+      //formData.append("companyId", "ee25ae8d-d102-4fcd-8d58-71e40f413337");
 
       workShiftInfoApi.shiftList(formData).then(function (response) {
         var jsonData = response.data;

+ 138 - 25
src/views/base/workPersonScheduling-list.vue

@@ -82,6 +82,7 @@
     <el-table
       :data="tableData"
       v-loading="loading"
+      ref="formTable"
       :height="tableHeight"
       stripe
       @sort-change="sortChange"
@@ -99,27 +100,23 @@
         label="部门"
         width="90"
       ></el-table-column>
-      <el-table-column
-        prop="id"
-        label="编号"
-        width="90"
-      ></el-table-column>
-      <el-table-column
-        prop="name"
-        label="名称"
-        width="150"
-      ></el-table-column>
+      <el-table-column prop="id" label="编号" width="90"></el-table-column>
+      <el-table-column prop="name" label="名称" width="150"></el-table-column>
       <template v-for="col in dayList">
         <el-table-column
-          :label="col.day+''"
-          :prop="col.id+''"
-          :key="col.id+''"
+          :label="col.day + ''"
+          :prop="col.id + ''"
+          :key="col.id + ''"
           width="80px"
         >
           <template slot-scope="{ row }">
             <div style="display: flex; flex-direction: column">
               <template v-for="(item, index) in row.personNumberMap[col.id]">
-                <div v-html="showItem(item)" :key="index+''"></div>
+                <div
+                  v-html="item"
+                  :key="index + ''"
+                  v-on:click="changeWork(row.id, row.name, col.day)"
+                ></div>
               </template>
             </div>
           </template>
@@ -138,6 +135,50 @@
       :title="modalTitle"
       @close="onDetailModalClose"
     ></workPersonScheduling-change>
+
+    <!-- 批量解绑设备 -->
+    <el-dialog
+      title="调班"
+      :visible.sync="batchChangeWork"
+      :modal-append-to-body="false"
+      style="text-align: left"
+      :close-on-click-modal="false"
+    >
+      <el-form label-width="150px" v-loading="changeWorkDisabled">
+        <el-form-item label="用户" prop="changeCompanyId">
+          <el-input
+            type="text"
+            v-model="changeUser"
+            style="width: 150px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="部门" prop="changeCompanyId">
+          <el-select-tree
+            :props="props"
+            :options="companyResult"
+            v-model="changeCompanyId"
+            height="200"
+          ></el-select-tree>
+        </el-form-item>
+        <el-form-item label="班次">
+          <el-select v-model="changeShiftId" filterable placeholder="请选择">
+            <el-option
+              v-for="shift in shiftData"
+              :key="shift.id"
+              :label="shift.name"
+              :value="shift.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="closeBatchChangeWork">关 闭</el-button>
+        <el-button type="primary" @click="handleBatchChangeWork"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 批量解绑设备end -->
   </div>
 </template>
 <script>
@@ -145,7 +186,9 @@ import Constant from "@/constant";
 import WorkPersonSchedulingDetail from "./workPersonScheduling-detail";
 import WorkPersonSchedulingChange from "./workPersonScheduling-change";
 import workPersonSchedulingApi from "@/api/base/workPersonScheduling";
+import workShiftInfoApi from "@/api/base/workShiftInfo";
 import companyInfoApi from "@/api/base/companyInfo";
+import pageUtil from "@/utils/page";
 import SelectTree from "@/components/SelectTree";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
@@ -158,9 +201,7 @@ export default {
     return {
       ruleValidate: {
         companyId: [{ required: true, message: "不能为空", trigger: "blur" }],
-        queryMonth: [
-          { required: true, message: "请选择", trigger: "blur" }
-        ]
+        queryMonth: [{ required: true, message: "请选择", trigger: "blur" }],
       },
       queryModel: {
         personName: "",
@@ -188,10 +229,18 @@ export default {
         label: "name",
         children: "children",
       },
-      companyResult:[],
-      dayList:[],
+      companyResult: [],
+      dayList: [],
       tableHeight: 300,
-      showChangeModal:false,
+      showChangeModal: false,
+      batchChangeWork: false,
+      changePersonId: "",
+      changeDay: "",
+      changeCompanyId: "",
+      shiftData: [],
+      changeShiftId: "",
+      changeWorkDisabled: false,
+      changeUser: "",
     };
   },
   created() {
@@ -206,11 +255,18 @@ export default {
       }
     });
   },
+  watch: {
+    changeCompanyId: function (val, oldval) {
+      if (val != null && val != "") {
+        this.queryShiftInfo(val);
+      }
+    },
+  },
   methods: {
     handleQuery() {
       var self = this;
 
-      this.$refs["queryForm"].validate(valid => {
+      this.$refs["queryForm"].validate((valid) => {
         if (valid) {
           self.changePage(1);
         }
@@ -251,10 +307,12 @@ export default {
           var jsonData = response.data;
           self.tableData = jsonData.personList;
           self.dayList = jsonData.dayList;
-          //45为分页栏的高度
-          //页面高度-列表上面的高度-分页栏高度
-          self.tableHeight =
-            window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
+          setTimeout(() => {
+            console.log(self.$refs.formTable.$el.offsetTop);
+            self.tableHeight = pageUtil.autoAdjustHeight(
+              self.$refs.formTable.$el
+            );
+          }, 1000);
         })
         .catch((error) => {
           self.loading = false;
@@ -294,6 +352,61 @@ export default {
         this.handleQuery();
       }
     },
+    changeWork(personId, personName, day) {
+      this.changePersonId = personId;
+      this.changeDay = day;
+      this.changeUser = personName + ",调班日期:" + day + "日";
+      this.batchChangeWork = true;
+    },
+    handleBatchChangeWork() {
+      var self = this;
+      var formData = new FormData();
+      formData.append("queryMonth", self.queryModel.queryMonth);
+      formData.append("day", self.changeDay);
+      formData.append("personId", self.changePersonId);
+      formData.append("shiftId", self.changeShiftId);
+
+      workPersonSchedulingApi
+        .changePersonShift(formData)
+        .then(function (response) {
+          var jsonData = response.data;
+          if (jsonData.result) {
+            self.changeDay = "";
+            self.changePersonId = "";
+            self.changeShiftId = "";
+            self.changeCompanyId = "";
+
+            self.changePage(1);
+
+            self.batchChangeWork = false;
+          } else {
+            self.$message({
+              showClose: true,
+              dangerouslyUseHTMLString: true,
+              message: jsonData.message,
+            });
+          }
+        });
+    },
+    closeBatchChangeWork() {
+      this.changePersonId = "";
+      this.changeDay = "";
+      this.batchChangeWork = false;
+    },
+    queryShiftInfo(companyId) {
+      var self = this;
+      var formData = new FormData();
+      formData.append("companyId", companyId);
+
+      workShiftInfoApi.shiftList(formData).then(function (response) {
+        var jsonData = response.data;
+        if (jsonData.result) {
+          if (jsonData.data != null && jsonData.data != "") {
+            self.shiftData = jsonData.data;
+          }
+        }
+      });
+    },
   },
   mounted: function () {
     //this.changePage(1);