Mr.Zhang
2023-09-07 def7a94103b1c68110dcfc2a7ceba3021a22a24f
minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
@@ -8,10 +8,12 @@
                  <div class="Search_item_label">计划日期</div>
                  <div class="Search_item_content" @click="isOpenDate=true">
                     <div class="Search_item_content_a" :style="form.startDate ? 'color: #000;' : ''">
                        {{ form.startDate ? form.startDate : '开始日期'}}</div>
                        {{ form.startDate ? form.startDate : '开始日期'}}
                     </div>
                     <span>-</span>
                     <div class="Search_item_content_a" :style="form.endDate ? 'color: #000;' : ''">
                        {{ form.endDate ? form.endDate : '结束日期'}}</div>
                        {{ form.endDate ? form.endDate : '结束日期'}}
                     </div>
                  </div>
               </div>
            </template>
@@ -19,239 +21,226 @@
         <div class="content_search_x"></div>
         <v-LableSelection :TagList="tagList" :isShow="true" @change="clickTag"></v-LableSelection>
      </div>
      <div class="content_total">共{{page.total}}条数据</div>
      <div class="content_list">
         <u-list @scrolltolower="scrolltolower" @scrolltoupper="scrolltoupper">
            <u-list-item  v-for="(item, i) in list" :key="i">
               <div class="content_list_item" @click="jump(item)">
                  <div class="content_list_item_top">
                     <div class="content_list_item_top_left">
                        <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
                        <div class="content_list_item_top_left_tag" v-if="item.urgent">优先{{item.urgent}}</div>
                        <div class="content_list_item_top_left_tagW" v-if="item.paused === 1">停</div>
                     </div>
                     <div class="content_list_item_top_right">
                        <span class="yellow" v-if="item.status === 0">已创建</span>
                        <span class="green" v-if="item.status === 1">已备料</span>
                        <span v-if="item.status === 2">已完工</span>
                        <span class="purple" v-if="item.status === 3">已检验</span>
                        <span v-if="item.status === 4">已报工</span>
                        <span v-if="item.status === 5">已入库</span>
                        <span v-if="item.status === 6">已取消</span>
                     </div>
                  </div>
                  <span>工单编码: {{item.code}}</span>
                  <div class="content_list_item_content">
                     <div class="content_list_item_content_item">
                        <div class="content_list_item_content_item_label">物料编码:</div>
                        <div class="content_list_item_content_item_nr" v-if="item.mmodel">{{item.mmodel.code}}
                        </div>
                     </div>
                     <div class="content_list_item_content_item">
                        <div class="content_list_item_content_item_label">计划开工:</div>
                        <div class="content_list_item_content_item_nr">{{item.planDate}}</div>
                     </div>
                     <div class="content_list_item_content_item">
                        <div class="content_list_item_content_item_label">生产批次:</div>
                        <div class="content_list_item_content_item_nr">{{item.batch}}</div>
                     </div>
                     <div class="content_list_item_content_item">
                        <div class="content_list_item_content_item_label">计划数量:</div>
                        <div class="content_list_item_content_item_nr" v-if="item.umodel">
                           {{item.planNum}}{{item.umodel.name}}</div>
                     </div>
                     <div class="content_list_item_content_item">
                        <div class="content_list_item_content_item_label">生产设备:</div>
                        <div class="content_list_item_content_item_nr" v-if="item.pgmodel">{{item.pgmodel.name}}
                        </div>
                     </div>
                     <div class="content_list_item_content_item" v-if="item.status === 5">
                        <div class="content_list_item_content_item_label">完工数量:</div>
                        <div class="content_list_item_content_item_nr">{{item.proNum}}</div>
                     </div>
                  </div>
               </div>
            </u-list-item>
         </u-list>
      <div class="content_total">共{{page.total}}条数据</div>
      <div class="content_list">
         <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing"
            @scrolltolower="loadMore" @refresherrefresh="onRefresh" :style="{height: height}">
            <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)">
               <div class="content_list_item_top">
                  <div class="content_list_item_top_left">
                     <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
                     <div class="content_list_item_top_left_tag" v-if="item.urgent">优先{{item.urgent}}</div>
                     <div class="content_list_item_top_left_tagW" v-if="item.paused === 1">停</div>
                  </div>
                  <div class="content_list_item_top_right">
                     <span class="yellow" v-if="item.status === 0">已创建</span>
                     <span class="green" v-if="item.status === 1">已备料</span>
                     <span v-if="item.status === 2">已完工</span>
                     <span class="purple" v-if="item.status === 3">已检验</span>
                     <span v-if="item.status === 4">已报工</span>
                     <span v-if="item.status === 5">已入库</span>
                     <span v-if="item.status === 6">已取消</span>
                  </div>
               </div>
               <span>工单编码: {{item.code}}</span>
               <div class="content_list_item_content">
                  <div class="content_list_item_content_item">
                     <div class="content_list_item_content_item_label">物料编码:</div>
                     <div class="content_list_item_content_item_nr" v-if="item.mmodel">{{item.mmodel.code}}
                     </div>
                  </div>
                  <div class="content_list_item_content_item">
                     <div class="content_list_item_content_item_label">计划开工:</div>
                     <div class="content_list_item_content_item_nr">{{item.planDate}}</div>
                  </div>
                  <div class="content_list_item_content_item">
                     <div class="content_list_item_content_item_label">生产批次:</div>
                     <div class="content_list_item_content_item_nr">{{item.batch}}</div>
                  </div>
                  <div class="content_list_item_content_item">
                     <div class="content_list_item_content_item_label">计划数量:</div>
                     <div class="content_list_item_content_item_nr" v-if="item.umodel">
                        {{item.planNum}}{{item.umodel.name}}
                     </div>
                  </div>
                  <div class="content_list_item_content_item">
                     <div class="content_list_item_content_item_label">生产设备:</div>
                     <div class="content_list_item_content_item_nr" v-if="item.pgmodel">{{item.pgmodel.name}}
                     </div>
                  </div>
                  <div class="content_list_item_content_item" v-if="item.status === 5">
                     <div class="content_list_item_content_item_label">完工数量:</div>
                     <div class="content_list_item_content_item_nr">{{item.proNum}}</div>
                  </div>
               </div>
            </div>
         </scroll-view>
      </div>
      <!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
         <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了~" @load="onLoad">
         </van-list>
      </van-pull-refresh> -->
      <u-calendar :show="isOpenDate" mode="range" @close="isOpenDate=false" @confirm="onConfirm"></u-calendar>
      <!-- <van-calendar v-model:show="isOpenDate" type="range" :min-date="minDate" :max-date="maxDate" color="#4275FC"
         @confirm="onConfirm" /> -->
      <!-- <v-ScanCode
                  :openCode="openCode"
                  :infos="['第一次扫码']"
                  @closePopup="closePopup"
                  @onDecode="onDecode">
              </v-ScanCode> -->
      </van-pull-refresh> -->
      <l-calendar :lunar="false" v-model="isOpenDate" @change="onConfirm" :isRange="true" activeBgColor="#305ED5"
         rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
   </view>
</template>
<script>
   import vSearch from '@/components/Search.vue'
   import vLableSelection from '@/components/LabelSelection.vue'
   import { gsdate } from '@/util/utils'
   export default {
      components: {
         vSearch,
         vLableSelection
<script>
   import vSearch from '@/components/Search.vue'
   import vLableSelection from '@/components/LabelSelection.vue'
   import {
      gsdate
   } from '@/util/utils'
   import {
      getList,
      pageCount
   } from '@/util/api/WorkOrderAPI'
   export default {
      components: {
         vSearch,
         vLableSelection
      },
      data() {
         return {
            status: true,
            isOpenDate: false,
            // tagList: [1,2,3],
            form: {
               startDate: '',
               endDate: ''
            },
            list: [
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 0,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 1,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 2,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { name: '物料001', code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 3,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 4,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 5,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 6,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
               {
                  mmodel: { name: 'adsa', },
                  mmodel: { code: 'wl-001' },
                  umodel: { name: '吨' },
                  pgmodel: { name: '液压机' },
                  procedureName: '压制',
                  urgent: 10,
                  paused: 0,
                  status: 7,
                  code: '00100',
                  planDate: '2023-08-30',
                  batch: 'kk-yw',
                  planNum: 300,
                  proNum: 100,
               },
            ],
            page: {
               size: 10,
               index: 1,
               total: 0
            height: '',
            status: true,
            isOpenDate: false,
            refreshing: false,
            // tagList: [1,2,3],
            tagList: [{
                    id: [2,3,7],
                    name: '生产中',
                    num: ''
                }],
            minDate: '2021-01-01',
            maxDate: '',
            form: {
               startDate: '',
               endDate: '',
               mixParam: '',
               statusList: []
            },
            list: [],
            page: {
               capacity: 10,
               index: 1,
               total: 0
            }
         };
      },
      methods: {
         reset() {},
         submit() {},
         onConfirm(value) {
            const [start, end] = value
            this.form.startDate = gsdate(start)
            this.form.endDate = gsdate(end)
            this.isOpenDate = false
         },
         scrolltolower() {},
         scrolltoupper() {},
         jump(item) {
            uni.$emit('workOrder', item)
            uni.navigateBack()
         }
      },
      onLoad(opt) {
         this.$nextTick(() => {
            uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => {
               this.height = `calc(100vh - ${rect.height + 80}px)`
            }).exec()
         })
         if (opt.type == '1') {
            this.tagList = [{
                  id: [0, 1],
                  name: '待生产',
                  num: ''
               },
               {
                  id: [2, 3, 7],
                  name: '生产中',
                  num: ''
               }
            ]
         } else {
            this.tagList = [{
               id: [2, 3, 7],
               name: '生产中',
               num: ''
            }]
         }
         this.maxDate = gsdate(new Date(`${new Date().getFullYear() + 1}-12-30`))
         this.pageCounts()
         this.loadData()
      },
      methods: {
         reset() {
            this.form.startDate = ''
            this.form.endDate = ''
            this.search()
         },
         searchInput(val) {
            this.form.mixParam = val;
            this.search()
         },
         clickTag(v) {
            this.form.statusList = v
            this.search()
         },
         submit() {
            this.search()
         },
         onConfirm(value) {
            this.form.startDate = value.startDate
            this.form.endDate = value.endDate
            this.isOpenDate = false
         },
         onRefresh() {
            if (this.refreshing) return
            this.refreshing = true;
            this.search()
         },
         loadMore() {
            this.page.page += 1
            this.loadData()
         },
         search() {
            this.page.page = 1
            this.loadData()
         },
         loadData() {
            getList({
                  ...this.page,
                  model: {
                     ...this.form,
                     statusList: this.form.statusList.length === 0 ? this.tagList[0].id : this.form.statusList
                  }
               })
               .then(res => {
                  let {
                     data
                  } = res
                  if (data.page == 1) {
                     this.list = []
                  }
                  this.list.push(...data.records)
                  this.page.total = data.total
                  this.page.page = data.page
               })
               .catch(err => {
               })
               .finally(() => {
                  this.refreshing = false
               })
         },
         pageCounts() {
            pageCount({}).then(res => {
               if (res.code === 200) {
                  this.tagList.forEach(item => {
                     if (item.name == '待生产') {
                        item.num = res.data.startNum
                     }
                     if (item.name == '生产中') {
                        item.num = res.data.ingNum
                     }
                     if (item.name == '已完成') {
                        item.num = res.data.endNum
                     }
                  })
               }
            })
         },
         jump(item) {
            uni.$emit('workOrder', item)
            uni.navigateBack()
         }
      }
   }
</script>
@@ -363,7 +352,7 @@
      .content_list {
         width: 100%;
         height: 100%;
         // height: 100%;
         display: flex;
         flex-direction: column;