yanliming 4 سال پیش
والد
کامیت
ba41308082

+ 47 - 0
src/api/business/carryThingsOutFactory.js

@@ -0,0 +1,47 @@
+import request from '@/utils/request'
+import constant from '@/constant'
+
+function pageList(formData){
+  return request.post(constant.serverUrl + "/business/carryThingsOutFactory/pageList", formData);
+}
+
+
+function create(){
+  return request.get(constant.serverUrl + "/business/carryThingsOutFactory/create");
+}
+
+function edit(id){
+  return request.get(constant.serverUrl + "/business/carryThingsOutFactory/edit/" + id);
+}
+
+function add(formModel){
+  return request.post(constant.serverUrl + "/business/carryThingsOutFactory/add", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function update(formModel){  
+  return request.post(constant.serverUrl + "/business/carryThingsOutFactory/update", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function remove(id){
+  return request.post(constant.serverUrl + "/business/carryThingsOutFactory/delete/" + id);
+}
+
+function batchRemove(idList){
+  return request.post(constant.serverUrl + "/business/carryThingsOutFactory/batchDelete",idList,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+export default {
+  pageList,create,edit,add,update,remove,batchRemove
+}

+ 4 - 4
src/routers/modules/business.js

@@ -40,15 +40,15 @@ var routers = [
         },
         {
                 //考勤统计
-                path: '/business/workScheduleAttendance/dayList',
-                name: 'BusinessWorkScheduleAttendanceDayList',
+                path: '/business/carryThingsOutFactory/list',
+                name: 'BusinessCarryThingsOutFactoryList',
                 // route level code-splitting
                 // this generates a separate chunk (about.[hash].js) for this route
                 // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/workScheduleAttendance-day-list.vue'),
+                component: () => import('@/views/business/carryThingsOutFactory-list.vue'),
                 meta: {
                         roles: ["admin"],
-                        title: '考勤统计明细'
+                        title: '携物出厂'
                 }
         },
 ]

+ 23 - 2
src/views/base/canteenInfo-list.vue

@@ -60,13 +60,26 @@
       <el-table-column type="index" label="序号" :index="indexMethod" width="50"></el-table-column>
       <el-table-column prop="name" label="食堂名称" width="150"></el-table-column>
       <el-table-column prop="address" label="地点" width="200"></el-table-column>
+      <template v-for="item in tableHeadList">
+        <el-table-column
+          :label="item.col + ''"
+          :prop="item.prop + ''"
+          :key="item.prop + ''"
+          width="150px"
+        >
+        </el-table-column>
+      </template>
 
-      <el-table-column prop="lunchTimeRange" label="午餐时间" width="120"></el-table-column>
+
+
+      
+
+      <!-- <el-table-column prop="lunchTimeRange" label="午餐时间" width="120"></el-table-column>
       <el-table-column prop="lunchFee" label="午餐金额(元)" width="120" ></el-table-column>
       <el-table-column prop="dinnerTimeRange" label="晚餐时间"  width="120"></el-table-column>
       <el-table-column prop="dinnerFee" label="晚餐金额(元)" width="120"></el-table-column>
       <el-table-column prop="midnightTimeRange" label="宵夜时间"  width="120"></el-table-column>
-      <el-table-column prop="midnightFee" label="宵夜金额(元)" width="120"></el-table-column>
+      <el-table-column prop="midnightFee" label="宵夜金额(元)" width="120"></el-table-column> -->
       <el-table-column label="操作" width="250" fixed="right">
         <template slot-scope="{row}">
           <el-row>
@@ -165,9 +178,17 @@ export default {
       showPhotoListModal: false,
       showDeviceModal:false,
       canteenDiningList:[],
+      tableHeadList:[],
     };
   },
   created() {
+      var self = this;
+
+      canteenInfoApi.getTableHead().then(response => {
+          var jsonData = response.data;
+          this.tableHeadList = jsonData.data;
+      });
+
   },
   methods: {
     indexMethod(index) {

+ 30 - 6
src/views/base/deviceInfo-detail.vue

@@ -131,10 +131,14 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="设备用途" prop="scene">
-              <el-select v-model="formModel.scene" style="width:80%">
-                <el-option v-for="(item,index) in sceneList" 
-                :label="item.name" :value="item.value" :key="index"></el-option>
+            <el-form-item label="设备用途" prop="sceneArray">
+              <el-select v-model="formModel.sceneArray" multiple  placeholder="请选择"  style="width:80%">
+                  <el-option
+                  v-for="item in sceneList"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value">
+                  </el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -191,7 +195,7 @@
   </el-dialog>
 </template>
 <script>
-import Constant from "@/constant";
+
 import deviceInfoApi from "@/api/base/deviceInfo";
 import companyInfoApi from "@/api/base/companyInfo";
 import dataDictionaryApi from "@/api/sys/dataDictionary";
@@ -203,6 +207,8 @@ export default {
     return {
       formModel: {
         remoteOpenRangeTime: null,
+        sceneArray:[],
+        scene:"",
       },
       ruleValidate: {
         aliasName: [
@@ -244,7 +250,8 @@ export default {
       columnHeightList: [],
       moduleTypeList: [],
       deviceTypeList: [],
-      manufacturerList: []
+      manufacturerList: [],
+      sceneList:[],
     };
   },
   created() {
@@ -297,6 +304,7 @@ export default {
     }).then(response => {
       var jsonData = response.data;
       this.sceneList = jsonData.data;
+
     });
   },
   methods: {
@@ -342,6 +350,10 @@ export default {
 
             self.loading = true;
 
+            if(self.formModel.sceneArray!=null&&self.formModel.sceneArray.length>0){
+              self.formModel.scene = self.formModel.sceneArray.splice(",").toString();
+            }
+
             // if (self.formModel.companyId == null) {
             //   self.formModel.companyId = "";
             // }
@@ -359,6 +371,8 @@ export default {
               requestModel.remoteOpenRangeTime = self.formModel.remoteOpenRangeTime.join(",");
             }
 
+
+
             if (id == null || id.length == 0) {
               return deviceInfoApi.add(requestModel);
             } else {
@@ -442,6 +456,16 @@ export default {
             self.formModel.remoteOpenRangeTime = rangeTime;
           }
 
+          if(jsonData.data.sceneList!=null&&jsonData.data.sceneList.length>0){
+            var sceneTempList = jsonData.data.sceneList;
+            var sceneArray = new Array();
+            // sceneTempList.forEach((item, index) => {
+            //   sceneArray.push(item);
+            // })
+            self.formModel.sceneArray = ["1", "3", "5"];
+          }
+
+
           if (self.businessKey.length == 0){
             self.formModel.columnColor="1";
             // self.formModel.columnHeight="";

+ 11 - 4
src/views/base/deviceInfo-list.vue

@@ -162,7 +162,13 @@
       <el-table-column prop="columnColorN" label="立柱颜色"></el-table-column>
       <el-table-column prop="columnHeightN" label="立柱高度"></el-table-column>
       <el-table-column prop="manufacturerN" label="设备厂家"></el-table-column>
-      <el-table-column prop="sceneN" label="设备用途"></el-table-column>
+      <el-table-column prop="sceneN" label="设备用途">
+        <template slot-scope="{row}">
+          <div v-for="item in row.sceneList" v-bind:key="item">
+            {{item}}
+          </div>
+        </template>
+      </el-table-column>
       <el-table-column prop="heartbeatUpdateTime" sort-by="a.heartbeat_update_time"
         sortable="custom" label="心跳更新时间" width="160"></el-table-column>
       <el-table-column prop="updateTime" label="记录更新时间" width="160"></el-table-column>
@@ -423,7 +429,7 @@ export default {
         columnColor: "",
         columnHeight: "",
         moduleType: "",
-        deviceType: ""
+        deviceType: "",
       },
       loading: false,
       loadingText: "加载中",
@@ -470,7 +476,8 @@ export default {
       columnHeightList: [],
       moduleTypeList: [],
       deviceTypeList: [],
-      manufacturerList: []
+      manufacturerList: [],
+      sceneList:[],
     };
   },
   created() {
@@ -512,7 +519,7 @@ export default {
       "catalogName" : "设备用途"
     }).then(response => {
       var jsonData = response.data;
-      this.sceneList = jsonData.data;
+      this.sceneDroList = jsonData.data;
     });
 
     var self = this;

+ 368 - 0
src/views/business/carryThingsOutFactory-list.vue

@@ -0,0 +1,368 @@
+<template>
+  <div>
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">基础信息</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/carryThingsOutFactory">携物出厂明细表</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+    <!--
+      要resetFields起作用,必须配置:model和prop
+    -->
+    <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
+
+      <el-form-item label="申请人" prop="personId">
+        <el-input type="text" size="mini" v-model="queryModel.personId"></el-input>
+      </el-form-item>
+      <el-form-item label="部门" prop="companyId">
+        <el-select-tree
+          size="mini"
+          :props="props"
+          :options="companyResult"
+          v-model="queryModel.parentId"
+          height="200"
+        ></el-select-tree
+        >&nbsp;
+        <el-checkbox v-model="queryModel.subordinate"
+          >是否包含下级单位</el-checkbox
+        >
+      </el-form-item>
+      <el-form-item label="审批状态" prop="auditStatus">
+        <el-select v-model="queryModel.auditStatus" size="mini" style="width:100px;" clearable>
+          <el-option v-for="(item,index) in auditStatusList" 
+          :label="item.name" :value="item.value" :key="index"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="出厂状态" prop="releaseStatus">
+        <el-select v-model="queryModel.releaseStatus" size="mini" style="width:100px;" clearable>
+          <el-option v-for="(item,index) in releaseStatusList" 
+          :label="item.name" :value="item.value" :key="index"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="申请时间" prop="createTime">
+        <el-date-picker
+          size="mini"
+          v-model="queryModel.createTimeRange"
+          type="datetimerange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd">
+          </el-date-picker>
+      </el-form-item>
+      <el-form-item label="审核时间" prop="auditTime">
+        <el-date-picker
+          size="mini"
+          v-model="queryModel.auditTimeRange"
+          type="datetimerange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd">
+          </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="mini"
+          icon="ios-search"
+          @click="changePage(1)"
+          :loading="loading"
+        >查询</el-button>&nbsp;
+        <el-button
+          type="info"
+          size="mini"
+          style="margin-left: 8px"
+          @click="handleReset('queryForm')"
+        >重置</el-button>&nbsp;
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-table
+      ref="formTable"
+      :data="tableData"
+      v-loading="loading"
+      :element-loading-text="loadingText"
+      stripe
+      :height="tableHeight"
+      @sort-change="sortChange"
+      @selection-change="handleSelectionChange"
+    >
+        <el-table-column prop="createTime" label="申请时间" width="150px"></el-table-column>
+        <el-table-column prop="personName" label="姓名" ></el-table-column>
+        <el-table-column prop="jobNumber" label="工号" ></el-table-column>
+        <el-table-column prop="companyName" label="部门" width="150px"></el-table-column>
+        <el-table-column prop="leaveFactoryReason" label="申请理由及物品清单"  width="300px"></el-table-column>
+        <el-table-column prop="auditByN" label="审批人" ></el-table-column>
+        <el-table-column prop="auditStatusN" label="审批状态" ></el-table-column>
+        <el-table-column prop="auditTime" label="审批时间" width="150px"></el-table-column>
+        <el-table-column prop="releaseStatus" label="出厂状态" >
+          <template slot-scope="{row}">
+              <span v-if="row.releaseStatus=='0'">未出厂</span>
+              <span v-else>已出厂</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="releaseByN" label="核验人" ></el-table-column>
+        <el-table-column prop="releaseTime" label="出厂时间" width="150px"></el-table-column>
+        <el-table-column label="操作" width="180" fixed="right">
+          <template slot-scope="{row}" >
+            <el-link  type="primary" @click="handleDetailList(row)">审核记录</el-link>-
+            <el-link  type="success" @click="handlePush(row)">查看附件</el-link>
+          </template>
+        </el-table-column>
+    </el-table>
+    <el-pagination
+      :current-page.sync="pageIndex"
+      :total="totalElements"
+      :page-sizes="pageSizeList"
+      @current-change="changePage"
+      @size-change="pageSizeChange"
+      layout="total, sizes, prev, pager, next, jumper"
+    ></el-pagination>
+  </div>
+</template>
+<script>
+import carryThingsOutFactoryApi from "@/api/business/carryThingsOutFactory";
+import companyInfoApi from "@/api/base/companyInfo";
+import pageUtil from "@/utils/page";
+import "nprogress/nprogress.css"; // progress bar style
+import SelectTree from "@/components/SelectTree";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
+
+export default {
+  name: 'BusinessCarryThingsOutFactoryList',
+  data() {
+    var self = this;
+
+    return {
+      queryModel: {
+        name: "",
+      },
+      canteenId:"",
+      loading: false,
+      loadingText: "加载中",
+      tableData: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPages: 0,
+      totalElements: 0,
+      field: "",
+      direction: "",
+      pageSizeList: [10, 20, 30],
+      multipleSelection: [],
+      showModal: false,
+      modalTitle: "",
+      businessKey: "",
+      tableHeight: 400,
+      dialogVisible: false,
+      ruleDeviceId: "",
+      ruleModel: {
+        mode: "",
+        needCap: "",
+        needMask: "",
+        measureTemperature: "",
+        type: "",
+        minimum: "",
+        maximum: "",
+        preAlarmOffset: "",
+        alarmThreshold: ""
+      },
+      treeData: [],
+      companyResult:[],
+      auditStatusList:[],
+      releaseStatusList:[
+        {
+          "value":"0",
+          "name":"未出厂"
+        },
+        {
+          "value":"0",
+          "name":"已出厂"
+        }
+      ],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children"
+      },
+    };
+  },
+  created() {
+    var self = this;
+    companyInfoApi.treeList().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        self.companyResult = jsonData.data;
+      }
+    });
+
+  dataDictionaryApi.findByCatalogName({
+      "catalogName" : "审核状态"
+    }).then(response => {
+      var jsonData = response.data;
+      this.auditStatusList = jsonData.data;
+    });
+  },
+  methods: {
+    changePage(pageIndex) {
+      var self = this;
+
+      self.loading = true;
+      self.loadingText = "加载中...";
+
+      self.pageIndex = pageIndex;
+      var formData = new FormData();
+
+    formData.append("pageIndex", self.pageIndex);
+    formData.append("pageSize", self.pageSize);
+
+      carryThingsOutFactoryApi
+        .pageList(formData)
+        .then(function(response) {
+          self.loading = false;
+          var jsonData = response.data;
+          
+          if(jsonData.result) {
+              var page = jsonData.data;
+
+              self.tableData = page.data;
+              self.totalPages = page.totalPages;
+              self.totalElements = page.recordsTotal;
+          }
+          else{
+            self.$message.warning(jsonData.message + "");
+          }
+        })
+        .catch(error => {
+          self.loading = false;
+        });
+    },
+    pageSizeChange(pageSize) {
+      this.pageSize = pageSize;
+    },
+    sortChange(data) {
+      console.log(data);
+
+      this.field = data.column.sortBy;
+      this.direction = data.order == "ascending" ? "asc" : "desc";
+
+      this.changePage(this.pageIndex);
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+    },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
+    handleDelete(record) {
+      var self = this;
+
+      self
+        .$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+        .then(() => {
+          carryThingsOutFactoryApi.remove(record.id).then(function(response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              // var index = self.tableData.indexOf(record);
+              // self.tableData.splice(index, 1);
+              self.changePage(self.pageIndex);
+
+              self.$message({
+                type: "success",
+                message: "删除成功!"
+              });
+            }
+          });
+        });
+    },
+    handleBatchDelete() {
+      var self = this;
+
+      var idList = this.multipleSelection.map(record => {
+        return record.id;
+      });
+
+      this.$confirm("是否确认删除选中项?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        carryThingsOutFactoryApi.batchRemove(idList).then(function(response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "删除成功!"
+            });
+          }
+        });
+      });
+    },
+    onDetailModalClose(refreshed) {
+      //保存成功后回调
+      this.showModal = false;
+      this.showDeviceModal = false;
+
+      if (refreshed) {
+        this.changePage(this.pageIndex);
+      }
+    },
+  },
+  components: {
+    "el-select-tree": SelectTree
+  },
+  mounted: function() {
+    var self = this;
+    this.changePage(1);
+
+    setTimeout(()=>{
+      self.tableHeight = pageUtil.autoAdjustHeight(self.$refs.formTable.$el);
+    },1000);
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-left: 10px;
+  text-align: left;
+}
+</style>