Merge branch 'dev' of ssh://139.186.142.91:29418/productDev/dmMes into dev
| | |
| | | module.exports = {
|
| | | // baseUrl: 'http://106.14.20.42/test_hfznzz/',
|
| | | // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
|
| | | baseUrl: 'http://192.168.0.15:10021/',
|
| | | baseUrl: 'http://192.168.0.15:10021',
|
| | | // baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api',
|
| | | phoneRegular: /^1[3456789]\d{9}$/,
|
| | | mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
| | |
| | | <template> |
| | | <scroll-view class="tag" scroll-x> |
| | | <view class="tag_list"> |
| | | <view v-for="item in TagList" |
| | | :key="item.id" |
| | | :class="{'tag_item': true, 'tagActive': item.id == activeId}" |
| | | @click="change(item)"> |
| | | <view v-for="(item, index) in TagList" |
| | | :key="index" |
| | | :class="{'tag_item': true, 'tagActive': index == activeId}" |
| | | @click="change(item, index)"> |
| | | <text>{{item.name}}</text> |
| | | <text v-if="isShow && item.num">({{item.num}})</text> |
| | | </view> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | activeId: '' |
| | | activeId: 0 |
| | | }; |
| | | }, |
| | | methods: { |
| | | change(item) { |
| | | if (this.activeId !== item.id) { |
| | | this.activeId = item.id |
| | | change(item, index) { |
| | | if (this.activeId !== index) { |
| | | this.activeId = index |
| | | this.$emit('change', item.id) |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | TagList: { |
| | | immediate: true, |
| | | handler(news, old) { |
| | | let list = news |
| | | if (list && list.length !== 0) { |
| | | this.activeId = list[0].id |
| | | } |
| | | } |
| | | } |
| | | // TagList: { |
| | | // immediate: true, |
| | | // handler(news, old) { |
| | | // let list = news |
| | | // if (list && list.length !== 0) { |
| | | // this.activeId = list[0].id |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | text { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | line-height: 26rpx; |
| | | color: #555555; |
| | | } |
| | | } |
| | |
| | | </v-Search>
|
| | | <div class="content_total">å
±{{pages.total}}æ¡æ°æ®</div>
|
| | | <view class="scroll-content"> |
| | | <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower"> |
| | | <u-list-item v-for="(item1, index) in list" :key="index"> |
| | | <view class="flex mb20" @click="selectMaterialAction(index)"> |
| | | <view class="img36 mr20 pt10"> |
| | | <u-checkbox-group style="display: block;" name="" @change="selectMaterialAction(index)"> |
| | | <u-checkbox :checked="item1.isActive"></u-checkbox> |
| | | </u-checkbox-group> |
| | | </view> |
| | | <view class="fx1"> |
| | | <div class="page_content_title_top"> |
| | | <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item1.qualityType == 0"> |
| | | åæ ¼ |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span class="orange" v-else-if="item1.qualityType == 1"> |
| | | ä¸è¯ |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span class="red" v-else-if="item1.qualityType == 2"> |
| | | æ¥åº |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span v-else> |
| | | - |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span> |
| | | {{item1.procedureName ? item1.procedureName : '-'}} |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span>{{item1.batch ? item1.batch : '-'}}</span> |
| | | </div> |
| | | <div class="mt20 plr25 ptb20 bg_f7 f26"> |
| | | <div class="c2 mb10"><span class="c6">è´§ä½ï¼</span>{{ item1.locationName }}</div> |
| | | <div class="c2"><span class="c6">æ°éï¼</span>{{ item1.num }}{{ item1.unitName }}</div> |
| | | </div> |
| | | </view> |
| | | <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing" @scrolltolower="loadMore" |
| | | @refresherrefresh="onRefresh"> |
| | | <view v-for="(item1, index) in list" :key="index" class="flex mb20" @click="selectMaterialAction(index)"> |
| | | <view class="img36 mr20 pt10"> |
| | | <u-checkbox-group style="display: block;" name="" @change="selectMaterialAction(index)"> |
| | | <u-checkbox :checked="selectIndex.includes(index)"></u-checkbox> |
| | | </u-checkbox-group> |
| | | </view> |
| | | </u-list-item> |
| | | </u-list> |
| | | </view> |
| | | <view style="height: 98rpx;"></view> |
| | | <!-- <view class=""> |
| | | <u-safe-bottom></u-safe-bottom> |
| | | </view> --> |
| | | <view class="fixedBottom bottom cY"> |
| | | <view class="fx1 bbox plr30"> |
| | | <u-checkbox-group style="display: block;" name="" @change="selectAll()"> |
| | | <u-checkbox :checked="isAll" label="å
¨é"></u-checkbox> |
| | | </u-checkbox-group> |
| | | </view> |
| | | <view class="submit sbtn_green bbox tc">æäº¤()</view> |
| | | <view class="fx1"> |
| | | <div class="page_content_title_top"> |
| | | <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item1.qualityType == 0"> |
| | | åæ ¼ |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span class="orange" v-else-if="item1.qualityType == 1"> |
| | | ä¸è¯ |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span class="red" v-else-if="item1.qualityType == 2"> |
| | | æ¥åº |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span v-else> |
| | | - |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span> |
| | | {{item1.procedureName ? item1.procedureName : '-'}} |
| | | <text class="c1" decode>{{ splite }}</text> |
| | | </span> |
| | | <span>{{item1.batch ? item1.batch : '-'}}</span> |
| | | </div> |
| | | <div class="mt20 plr25 ptb20 bg_f7 f26"> |
| | | <div class="c2 mb10"><span class="c6">è´§ä½ï¼</span>{{ item1.locationName }}</div> |
| | | <div class="c2"><span class="c6">æ°éï¼</span>{{ item1.num }}{{ item1.unitName }}</div> |
| | | </div> |
| | | </view> |
| | | </view> |
| | | </scroll-view>
|
| | | <!-- <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
|
| | | <u-list-item v-for="(item1, index) in list" :key="index">
|
| | | |
| | | </u-list-item>
|
| | | </u-list> -->
|
| | | </view>
|
| | | <view style="height: 98rpx;"></view>
|
| | | <!-- <view class="">
|
| | | <u-safe-bottom></u-safe-bottom>
|
| | | </view> -->
|
| | | <view class="fixedBottom bottom cY">
|
| | | <view class="fx1 bbox plr30">
|
| | | <u-checkbox-group style="display: block;" name="" @change="selectAll()">
|
| | | <u-checkbox :checked="isAll" label="å
¨é"></u-checkbox>
|
| | | </u-checkbox-group>
|
| | | </view>
|
| | | <view class="submit sbtn_green bbox tc" @click="submitAction">{{ `æäº¤(${selectIndex.length})`}}</view>
|
| | | </view>
|
| | | </view>
|
| | | </u-popup>
|
| | |
| | |
|
| | | <script>
|
| | | import vSearch from '@/components/Search.vue'
|
| | | import {
|
| | | choiceStockListPage,
|
| | | choiceStockPageForStandard
|
| | | } from '@/util/api/agencyAPI'
|
| | | export default {
|
| | | name: "selectMaterial",
|
| | | components: {
|
| | |
| | | },
|
| | | data() {
|
| | | return {
|
| | | show: false, |
| | | splite:' | ', |
| | | show: false,
|
| | | splite: ' | ',
|
| | | isAll: false, |
| | | refreshing: false,
|
| | | pages: {
|
| | | size: 10,
|
| | | index: 1,
|
| | | capacity: 10,
|
| | | page: 1,
|
| | | total: 0
|
| | | },
|
| | | list: []
|
| | | list: [], |
| | | selectIndex: []
|
| | | };
|
| | | },
|
| | | methods: {
|
| | | open(target) {
|
| | | this.show = true
|
| | | this.show = true |
| | | this.refreshing = false
|
| | | this.workorderId = target.workorderId
|
| | | this.deviceId = target.deviceId
|
| | | this.list = []
|
| | | this.list = [] |
| | | this.selectIndex = [] |
| | | |
| | | // console.log(this.selectIndex);
|
| | | this.pages = {
|
| | | size: 10,
|
| | | index: 1,
|
| | | capacity: 10,
|
| | | page: 1,
|
| | | total: 0
|
| | | }
|
| | | this.loadData()
|
| | | },
|
| | | loadData() {
|
| | | this.list = [{
|
| | | batch: '1',
|
| | | materialName: 'dsadas',
|
| | | materialCode: '1m0001',
|
| | | locationName: 'aä»2å·ä½',
|
| | | num: '1',
|
| | | unitName: 'å',
|
| | | qualityType: 0,
|
| | | procedureName: 'åå¶', |
| | | isActive: false
|
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | }, |
| | | { |
| | | batch: '1', |
| | | materialName: 'dsadas', |
| | | materialCode: '1m0001', |
| | | locationName: 'aä»2å·ä½', |
| | | num: '1', |
| | | unitName: 'å', |
| | | qualityType: 0, |
| | | procedureName: 'åå¶', |
| | | isActive: false |
| | | } |
| | | ]
|
| | | choiceStockPageForStandard({
|
| | | ...this.pages,
|
| | | model: {
|
| | | workorderId: this.workorderId,
|
| | | deviceId: this.deviceId
|
| | | }
|
| | | }).then(res => { |
| | | let {data} = res |
| | | if (data.page == 1) {
|
| | | this.list = [];
|
| | | } |
| | | this.pages.page = data.page |
| | | this.pages.total = data.total |
| | | this.list.push(...data.records)
|
| | | }).catch((err) => {
|
| | | |
| | | }) |
| | | .finally(() => { |
| | | this.refreshing = false; |
| | | })
|
| | | },
|
| | | scrolltoupper() {
|
| | | loadMore() { |
| | | this.pages.page += 1
|
| | | this.loadData()
|
| | | },
|
| | | scrolltolower() {
|
| | | onRefresh() { |
| | | if (this.refreshing) return |
| | | this.refreshing = true; |
| | | this.pages.page = 1
|
| | | this.loadData()
|
| | | },
|
| | | selectMaterialAction(index) { |
| | | // console.log('12'); |
| | | this.list[index].isActive = !this.list[index].isActive
|
| | | let i = this.selectIndex.findIndex(item => item==index) |
| | | if (i == -1 ) { |
| | | this.selectIndex.push(index) |
| | | } else { |
| | | this.selectIndex.splice(i) |
| | | }
|
| | | },
|
| | | selectAll() { |
| | | this.selectIndex = [] |
| | | this.selectIndex = [...new Array(this.list.length).keys()] |
| | | }, |
| | | selectAll() {}
|
| | | submitAction () { |
| | | this.show = false |
| | | let selectValue = [] |
| | | this.selectIndex.forEach(item => { |
| | | selectValue.push(this.list[item]) |
| | | }) |
| | | this.$emit('selectes', { materials: selectValue }) |
| | | }
|
| | | }
|
| | | } |
| | | /* |
| | | */
|
| | | }
|
| | | /* |
| | | */
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .material-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 1200rpx; |
| | | box-sizing: border-box; |
| | | .scroll-content { |
| | | height: calc(1100rpx - env(safe-area-inset-bottom)); |
| | | overflow: scroll; |
| | | .material-content {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | height: 1200rpx;
|
| | | box-sizing: border-box;
|
| | |
|
| | | .scroll-content {
|
| | | height: calc(1100rpx - env(safe-area-inset-bottom));
|
| | | overflow: scroll;
|
| | | }
|
| | | }
|
| | |
|
| | | .content_total { |
| | | margin-top: 20rpx; |
| | | .content_total {
|
| | | margin-top: 20rpx;
|
| | | margin-bottom: 20rpx;
|
| | | // padding: 24rpx 30rpx;
|
| | | // background: #F7F7F7;
|
| | |
| | | display: flex;
|
| | | flex-direction: column;
|
| | | margin-bottom: 10rpx;
|
| | | |
| | |
|
| | |
|
| | |
|
| | | } |
| | | .bottom { |
| | | height: 98rpx; |
| | | .submit { |
| | | width: 272rpx; |
| | | height: 98rpx; |
| | | line-height: 98rpx; |
| | | } |
| | |
|
| | | }
|
| | |
|
| | | .bottom {
|
| | | height: 98rpx;
|
| | |
|
| | | .submit {
|
| | | width: 272rpx;
|
| | | height: 98rpx;
|
| | | line-height: 98rpx;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <u-popup :show="show" :round="10" closeable @close="show=false">
|
| | | <view class="material-content bbox p30">
|
| | | <view class="tc b f24 c2">éæ©ç©æ</view>
|
| | | <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
|
| | | <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing"
|
| | | @scrolltolower="loadMore" @refresherrefresh="onRefresh">
|
| | | <view v-for="(item1, index) in list" :key="index" class="" style="height: 20px;" @click="jump(item1)">
|
| | | <div class="page_content_title_top">
|
| | | <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
|
| | | </div>
|
| | | <div class="page_content_title_bottom">
|
| | | <span>{{ item1.locationName }} / </span>
|
| | | <span>{{ item1.num }}{{ item1.unitName }}</span>
|
| | | </div>
|
| | | <div class="page_content_title_bottom">
|
| | | <span class="green" v-if="item1.qualityType == 0">åæ ¼ <span class="c1">/</span> </span>
|
| | | <span class="orange" v-else-if="item1.qualityType == 1">ä¸è¯ <span
|
| | | class="c1">/</span> </span>
|
| | | <span class="red" v-else-if="item1.qualityType == 2">æ¥åº <span
|
| | | class="c1">/</span> </span>
|
| | | <span v-else>- / </span>
|
| | | <span>{{item1.procedureName ? item1.procedureName : '-'}} / </span>
|
| | | <span>{{item1.batch ? item1.batch : '-'}}</span>
|
| | | </div>
|
| | | </view>
|
| | | </scroll-view>
|
| | | <!-- <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
|
| | | <u-list-item v-for="(item1, index) in list" :key="index">
|
| | | <view class="" style="height: 20px;" @click="jump(item1)">
|
| | | <div class="page_content_title_top">
|
| | | <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
|
| | | </div>
|
| | | <div class="page_content_title_bottom">
|
| | | <span>{{ item1.locationName }} / </span>
|
| | | <span>{{ item1.num }}{{ item1.unitName }}</span>
|
| | | </div>
|
| | | <div class="page_content_title_bottom">
|
| | | <span class="green" v-if="item1.qualityType == 0">åæ ¼ <span
|
| | | class="c1">/</span> </span>
|
| | | <span class="orange" v-else-if="item1.qualityType == 1">ä¸è¯ <span
|
| | | class="c1">/</span> </span>
|
| | | <span class="red" v-else-if="item1.qualityType == 2">æ¥åº <span
|
| | | class="c1">/</span> </span>
|
| | | <span v-else>- / </span>
|
| | | <span>{{item1.procedureName ? item1.procedureName : '-'}} / </span>
|
| | | <span>{{item1.batch ? item1.batch : '-'}}</span>
|
| | | </div>
|
| | | </view>
|
| | | </u-list-item>
|
| | | </u-list>
|
| | | </u-list> -->
|
| | | </view>
|
| | | </u-popup>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | choiceStockListPage,
|
| | | choiceStockPageForStandard
|
| | | } from '@/util/api/agencyAPI'
|
| | | export default {
|
| | | name: "selectMaterial",
|
| | | data() {
|
| | | return {
|
| | | show: false,
|
| | | pages: {
|
| | | size: 10,
|
| | | index: 1,
|
| | | total: 0
|
| | | show: false, |
| | | refreshing: false,
|
| | | pages: { |
| | | capacity: 10, |
| | | page: 1, |
| | | total: 0 |
| | | },
|
| | | list: [
|
| | | 1, 2, 3, 4, 5, 6, 7, 8
|
| | |
| | | methods: {
|
| | | open(target) {
|
| | | this.show = true
|
| | | this.workorderId = target.workorderId
|
| | | this.refreshing = false |
| | | this.workorderId = target.workorderId |
| | | this.deviceId = target.deviceId
|
| | | this.list = []
|
| | | this.pages = {
|
| | | size: 10,
|
| | | index: 1,
|
| | | total: 0
|
| | | this.pages = { |
| | | capacity: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }
|
| | | this.loadData()
|
| | | },
|
| | | loadData() {
|
| | | this.list = [{
|
| | | batch: '1',
|
| | | materialName: 'dsadas',
|
| | | materialCode: '1m0001',
|
| | | locationName: 'aä»2å·ä½',
|
| | | num: '1',
|
| | | unitName: 'å',
|
| | | qualityType: 0,
|
| | | procedureName: 'åå¶',
|
| | | }]
|
| | | // this.list = [{
|
| | | // batch: '1',
|
| | | // materialName: 'dsadas',
|
| | | // materialCode: '1m0001',
|
| | | // locationName: 'aä»2å·ä½',
|
| | | // num: '1',
|
| | | // unitName: 'å',
|
| | | // qualityType: 0,
|
| | | // procedureName: 'åå¶',
|
| | | // }]
|
| | | choiceStockPageForStandard({
|
| | | ...this.pages,
|
| | | model: {
|
| | | workorderId: this.workorderId,
|
| | | deviceId: this.deviceId
|
| | | }
|
| | | }).then(res => {
|
| | | let {
|
| | | data
|
| | | } = res
|
| | | if (data.page == 1) {
|
| | | this.list = [];
|
| | | }
|
| | | this.pages.page = data.page
|
| | | this.pages.total = data.total
|
| | | this.list.push(...data.records)
|
| | | }).catch((err) => {
|
| | |
|
| | | })
|
| | | .finally(() => {
|
| | | this.refreshing = false;
|
| | | })
|
| | | },
|
| | | scrolltoupper() {
|
| | | console.log('scrolltoupper');
|
| | | loadMore() { |
| | | this.pages.page += 1
|
| | | this.loadData()
|
| | | },
|
| | | scrolltolower() {
|
| | | console.log('scrolltolower');
|
| | | onRefresh() { |
| | | if (this.refreshing) return |
| | | this.refreshing = true; |
| | | this.pages.page = 1
|
| | | this.loadData()
|
| | | }, |
| | | jump(item) { |
| | | this.$emit('selectAction', item) |
| | | this.show = false |
| | | },
|
| | | jump(item) {
|
| | | this.$emit('selectAction', item)
|
| | | this.show = false
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | <view class="p30 bg_w order-info">
|
| | | <view class="bX">
|
| | | <view class="cY">
|
| | | <view class="mr10 b">å¢ä½ç ï½ç å</view>
|
| | | <view class="mr10 b">{{ `${orederMessage.mmodel.name} |${orederMessage.procedureName}`}}</view>
|
| | | <u-tag size="mini" bgColor="#03AF76" text="æ£å¸¸"></u-tag>
|
| | | </view>
|
| | | <view class="status" :class="orederMessage.status==0?'wc':orederMessage.status==1?'green':orederMessage.status==3?'blue':orederMessage.status==7?'green':'c6'">{{ stausToStr(1) }}</view>
|
| | |
| | | <view class="mt20 bg_f7 ptb20 plr30 n"> |
| | | <view class="c2 mb20"> |
| | | <span class="c6">ç©æç¼ç ï¼</span> |
| | | {{ orederMessage.mmodel ? orederMessage.mmodel.code : '03K-0K-0-1' }} |
| | | {{ orederMessage.mmodel ? orederMessage.mmodel.code : '-' }} |
| | | </view> |
| | | <view class="c2 mb20"> |
| | | <span class="c6">计åå¼å·¥ï¼</span> |
| | | {{ orederMessage.planDate || '2022/01/11' }} |
| | | {{ orederMessage.planDate || '-' }} |
| | | </view> |
| | | <view class="c2 mb20"> |
| | | <span class="c6">çäº§æ¹æ¬¡ï¼</span> |
| | | {{ orederMessage.batch || 'PH20221023001' }} |
| | | {{ orederMessage.batch || '-' }} |
| | | </view> |
| | | <view class="c2 mb20"> |
| | | <span class="c6">è®¡åæ°éï¼</span> |
| | | {{ orederMessage.planNum || '1000' }}{{ orederMessage.umodel ? orederMessage.umodel.name : 'A1' }} |
| | | {{ orederMessage.planNum || '-' }}{{ orederMessage.umodel ? orederMessage.umodel.name : '-' }} |
| | | </view> |
| | | <view class="c2 mb20"> |
| | | <span class="c6">ç产设å¤ï¼</span> |
| | | {{ orederMessage.pgmodel ? `${orederMessage.pgmodel.code} - ${orederMessage.pgmodel.name}` : 'A1' }} |
| | | {{ orederMessage.pgmodel ? `${orederMessage.pgmodel.code} - ${orederMessage.pgmodel.name}` : '-' }} |
| | | </view> |
| | | <view class="c2 flex"> |
| | | <view class="c6" style="flex-shrink: 0;">ç产人åï¼</view> |
| | | <view class="flex1"> |
| | | {{ orederMessage.proUserList ? orederMessage.proUserList.map(item => item.proUserDepartName).join(' / ') : '侯泽æ
§-åå¿é£éªæ°å建æ' }} |
| | | {{ orederMessage.proUserList ? orederMessage.proUserList.map(item => item.proUserDepartName).join(' / ') : '-' }} |
| | | </view> |
| | | </view> |
| | | </view>
|
| | |
| | | export default {
|
| | | name: "workOrderInfo", |
| | | props: { |
| | | orederMessage: {} |
| | | orederMessage: { |
| | | type: Object, |
| | | default: () => {} |
| | | } |
| | | },
|
| | | data() {
|
| | | return {
|
| | |
| | | "enablePullDownRefresh": false
|
| | | }
|
| | |
|
| | | }, {
|
| | | "path": "pages/OutOperation/OutOperation",
|
| | | "style": {
|
| | | "navigationBarTitleText": "åºåºæä½",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | |
|
| | | }, {
|
| | | "path": "pages/InOperation/InOperation",
|
| | | "style": {
|
| | | "navigationBarTitleText": "å
¥åºæä½",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | |
|
| | | }
|
| | | ,{
|
| | | "path" : "pages/OutOperation/OutOperation",
|
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "åºåºæä½", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }
|
| | | ,{
|
| | | "path" : "pages/InOperation/InOperation",
|
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "å
¥åºæä½", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }
|
| | | ],
|
| | | ],
|
| | | "subPackages": [{
|
| | | "root": "pages_adjust",
|
| | | "pages": [{
|
| | |
| | | "navigationBarTitleText": "鿩工åºè®¡å",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }, {
|
| | | "path": "pages/workOrder/workOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "ç产工å",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | |
|
| | | }, {
|
| | | "path": "pages/spotCheck/spotCheck",
|
| | | "style": {
|
| | | "navigationBarTitleText": "çäº§ç¹æ£",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | |
|
| | | }
|
| | | ]
|
| | | },
|
| | |
| | | ]
|
| | | },
|
| | | "uniIdRouter": {}
|
| | | } |
| | | } |
| | |
| | | å¾
å</view>
|
| | | <view class="cY">
|
| | | <u-search placeholder="æç´¢å
³é®å" bgColor="#f7f7f7" :showAction="false" @search="scrolltoupper"
|
| | | shape="square" v-model="searchForm.name"></u-search>
|
| | | shape="square" v-model="searchForm.mixParam"></u-search>
|
| | | <image src="../../static/filter@2x.png" class="img48 ml20" @click="filterAction" mode=""></image>
|
| | | </view>
|
| | | <view class="cY mt30">
|
| | | <view class="sbtn rd8" :class="searchForm.status==0?'sbtn_green':'sbtn_black_rim'"
|
| | | @click="selectType(0)">å¾
å</view>
|
| | | <view class="sbtn rd8 ml20" :class="searchForm.status==1?'sbtn_green':'sbtn_black_rim'"
|
| | | @click="selectType(1)">å·²å</view>
|
| | | <view v-for="item in tagList" :key="item.id" class="sbtn rd8 mr10"
|
| | | :class="searchForm.status==item.id?'sbtn_green':'sbtn_black_rim'" @click="selectType(item.id)">
|
| | | {{`${item.name}(${item.num})`}}
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </u-sticky>
|
| | |
|
| | | <u-list :showScrollbar="false" @scrolltolower="scrolltolower" @scrolltoupper="scrolltoupper"
|
| | | :height="windowHeight - (statusbarHeight + navHeight + 120) + 'px'">
|
| | | <u-list-item v-for="(item, index) in projectList" :key="index">
|
| | | <scroll-view v-if="projectList.length" :style="windowHeight - (statusbarHeight + navHeight + 120) + 'px'"
|
| | | scroll-y="true" refresher-enabled="true" :refresher-triggered="triggered" :refresher-threshold="100"
|
| | | refresher-background="lightgreen" @refresherpulling="scrolltolower" @refresherrefresh="scrolltoupper"
|
| | | @refresherrestore="onRestore" @refresherabort="onAbort">
|
| | | <view v-for="(item, index) in projectList" :key="index">
|
| | | <view class="box_list">
|
| | | <view class="box_list_item" @click="jump(item)">
|
| | | <view class="box_list_item_icon">
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </u-list-item>
|
| | | </u-list>
|
| | | </view>
|
| | | </scroll-view>
|
| | | <view v-else class="tc c6">ææ æ°æ®...</view>
|
| | | <u-popup :show="show" @close="close" :round="8" zIndex="20000">
|
| | | <view class="rp p40 contanir">
|
| | | <view class="c2 b">ç±»å</view>
|
| | | <view class="content">
|
| | | <u-grid col="2" :border="false">
|
| | | <u-grid-item v-for="item in types" :key="item.id">
|
| | | <view class="ptb20 c9 type-style tc rd10"
|
| | | :class="type===item.id?'sbtn_green':'sbtn_gray'"
|
| | | <view class="ptb20 c9 type-style tc rd10" :class="type===item.id?'sbtn_green':'sbtn_gray'"
|
| | | @click="type=item.id">{{ item.name }}</view>
|
| | | </u-grid-item>
|
| | | </u-grid>
|
| | |
| | |
|
| | | <script>
|
| | | import myTabbar from "@/components/myTabber.vue"
|
| | | import {
|
| | | getList,
|
| | | pageCount
|
| | | } from '@/util/api/agencyAPI'
|
| | | import {
|
| | | mapState
|
| | | } from 'vuex'
|
| | |
| | | id: 8,
|
| | | name: '客é/è¿åå忣éª'
|
| | | }
|
| | | ], |
| | | ],
|
| | | tagList: [{
|
| | | id: 0,
|
| | | name: 'å¾
å',
|
| | | num: 0
|
| | | },
|
| | | {
|
| | | id: 1,
|
| | | name: 'å·²å',
|
| | | num: 0
|
| | | }
|
| | | ],
|
| | | type: '',
|
| | | searchForm: {
|
| | | name: '',
|
| | | mixParam: '',
|
| | | status: 0,
|
| | | type: ''
|
| | | },
|
| | | projectList: [{
|
| | | title: '212132',
|
| | | createTime: '2023-08-28',
|
| | | content: 'asdsadsaxææå¤§è¨è¾¾çå宿as'
|
| | | },
|
| | | {
|
| | | title: '212132',
|
| | | createTime: '2023-08-28',
|
| | | content: 'asdsadsaxææå¤§è¨è¾¾çå宿as'
|
| | | },
|
| | | {
|
| | | title: '212132',
|
| | | createTime: '2023-08-28',
|
| | | content: 'asdsadsaxææå¤§è¨è¾¾çå宿as'
|
| | | },
|
| | | {
|
| | | title: '212132',
|
| | | createTime: '2023-08-28',
|
| | | content: 'asdsadsaxææå¤§è¨è¾¾çå宿as'
|
| | | },
|
| | | ]
|
| | | page: {
|
| | | total: 0,
|
| | | capacity: 10,
|
| | | page: 1,
|
| | | },
|
| | | projectList: []
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | ...mapState(['statusbarHeight', 'navHeight']),
|
| | | },
|
| | | async mounted() {
|
| | | await this.$store.dispatch('getUpcomingNum')
|
| | | this.tagList[0].num = this.$store.state.upcomingNum.d
|
| | | this.tagList[1].num = this.$store.state.upcomingNum.y
|
| | | },
|
| | | onLoad() {
|
| | | uni.getSystemInfo({
|
| | | success: res => {
|
| | | this.windowHeight = res.windowHeight
|
| | |
|
| | | }
|
| | | })
|
| | |
|
| | | var that = this
|
| | | uni.login({
|
| | | provider: 'weixin',
|
| | | success: function(loginRes) {
|
| | | // console.log(loginRes);
|
| | | that.code = loginRes.code
|
| | | }
|
| | | });
|
| | | this.loadData()
|
| | | },
|
| | | methods: {
|
| | | scrolltolower() {},
|
| | | scrolltoupper() {},
|
| | | loadData() {
|
| | | getList({
|
| | | model: this.searchForm,
|
| | | ...this.page
|
| | | })
|
| | | .then(res => {
|
| | | let data = res.data
|
| | | if (data.page == 1) {
|
| | | this.projectList = []
|
| | | }
|
| | | this.page.page = data.page
|
| | | this.page.total = data.total
|
| | | this.projectList.push(...data.records)
|
| | | })
|
| | | .catch(err => {
|
| | |
|
| | | })
|
| | | },
|
| | | onRestore() {
|
| | | this.triggered = 'restore'; // éè¦éç½®
|
| | | console.log("onRestore");
|
| | | },
|
| | | onAbort() {
|
| | | console.log("onAbort");
|
| | | },
|
| | | scrolltolower() {
|
| | | this.page.page = 1
|
| | | this.loadData()
|
| | | },
|
| | | scrolltoupper() {
|
| | | this.page.page += 1
|
| | | this.loadData()
|
| | | },
|
| | | selectType(status) {
|
| | | if (this.searchForm.status == status) return
|
| | | this.searchForm.status = status
|
| | | this.scrolltoupper()
|
| | | this.scrolltolower()
|
| | | },
|
| | | jump(item) {
|
| | | if ((item.type === 0 || item.type === 2 || item.type === 5) && item.status === 0) { // 跳转åºåº(转åºå)
|
| | | router.push({
|
| | | name: 'issueOperation',
|
| | | if ((item.type === 0 || item.type === 2 || item.type === 5) && item.status === 0) { // 跳转åºåº(转åºå) |
| | | uni.navigateTo({ |
| | | url: 'pages/OutOperation/OutOperation', |
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id,
|
| | | type: 7
|
| | | }
|
| | | })
|
| | | } |
| | | })
|
| | | // router.push({
|
| | | // name: 'issueOperation',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id,
|
| | | // type: 7
|
| | | // }
|
| | | // })
|
| | | } else if ((item.type === 0 || item.type === 2 || item.type === 5) && item.status === 1) {
|
| | | router.push({
|
| | | name: 'wTransferDetail',
|
| | | query: {
|
| | | id: item.objId,
|
| | | status: item.status,
|
| | | type: item.type,
|
| | | dbid: item.id
|
| | | }
|
| | | })
|
| | | // router.push({ name: 'wTransferDetail', query: { id: item.objId, status: 0, type: item.type, dbid: item.id } })
|
| | | // router.push({
|
| | | // name: 'wTransferDetail',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // status: item.status,
|
| | | // type: item.type,
|
| | | // dbid: item.id
|
| | | // }
|
| | | // })
|
| | | } else if ((item.type === 1 || item.type === 4 || item.type === 6) && item.status === 0) { // 跳转å
¥åº(转åºå)
|
| | | if (item.type === 4) { // 跳转å®å·¥å
¥åºè¯¦æ
|
| | | router.push({
|
| | | name: 'completionDetails',
|
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id,
|
| | | type: 7,
|
| | | isShow: 1,
|
| | | Type: item.type
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'completionDetails',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id,
|
| | | // type: 7,
|
| | | // isShow: 1,
|
| | | // Type: item.type
|
| | | // }
|
| | | // })
|
| | | return
|
| | | }
|
| | | router.push({
|
| | | name: 'warehousing',
|
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id,
|
| | | type: 7
|
| | | }
|
| | | } |
| | | uni.navigateTo({ |
| | | url: '/pages/InOperation/InOperation', |
| | | query: { |
| | | id: item.objId, |
| | | dbid: item.id, |
| | | type: 7 |
| | | } |
| | | })
|
| | | // router.push({
|
| | | // name: 'warehousing',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id,
|
| | | // type: 7
|
| | | // }
|
| | | // })
|
| | | } else if ((item.type === 1 || item.type === 4 || item.type === 6) && item.status === 1) {
|
| | | if (item.type === 4) { // è·³èå®å·¥å
¥åºè¯¦æ
|
| | | router.push({
|
| | | name: 'completionDetails',
|
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id,
|
| | | type: 7,
|
| | | isShow: 2
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'completionDetails',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id,
|
| | | // type: 7,
|
| | | // isShow: 2
|
| | | // }
|
| | | // })
|
| | | return
|
| | | }
|
| | | router.push({
|
| | | name: 'wTransferDetail',
|
| | | query: {
|
| | | id: item.objId
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'wTransferDetail',
|
| | | // query: {
|
| | | // id: item.objId
|
| | | // }
|
| | | // })
|
| | | } else if (item.type === 3 && item.status === 0) { // ç¡®è®¤å¤æ
|
| | | router.push({
|
| | | name: 'orderStock',
|
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'orderStock',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id
|
| | | // }
|
| | | // })
|
| | | } else if (item.type === 3 && item.status === 1) { // 夿ï¼è½¬åºå详æ
ï¼
|
| | | // router.push({ name: 'wInboundDetail', query: { id: item.objId } })
|
| | | router.push({
|
| | | name: 'wTransferDetail',
|
| | | query: {
|
| | | id: item.objId
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'wTransferDetail',
|
| | | // query: {
|
| | | // id: item.objId
|
| | | // }
|
| | | // })
|
| | | } else if (item.type === 9 && item.status === 0) { // è°æ´å
¥åº(å
¥åºå)
|
| | | router.push({
|
| | | name: 'warehousing',
|
| | | query: {
|
| | | id: item.objId,
|
| | | dbid: item.id,
|
| | | type: 9
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'warehousing',
|
| | | // query: {
|
| | | // id: item.objId,
|
| | | // dbid: item.id,
|
| | | // type: 9
|
| | | // }
|
| | | // })
|
| | | } else if (item.type === 9 && item.status === 1) {
|
| | | router.push({
|
| | | name: 'wInboundDetail',
|
| | | query: {
|
| | | id: item.objId
|
| | | }
|
| | | })
|
| | | // router.push({
|
| | | // name: 'wInboundDetail',
|
| | | // query: {
|
| | | // id: item.objId
|
| | | // }
|
| | | // })
|
| | | }
|
| | | },
|
| | | filterAction() {
|
| | |
| | | close() {
|
| | | this.show = false
|
| | | },
|
| | | resetType() { |
| | | resetType() {
|
| | | this.type = ''
|
| | | this.searchForm.type = ''
|
| | | this.confirm()
|
| | | },
|
| | | confirm() { |
| | | confirm() {
|
| | | this.searchForm.type = this.type
|
| | | this.show = false
|
| | | this.scrolltoupper()
|
| | |
| | | <template>
|
| | | <view>
|
| | | <workOrderInfo :orederMessage="{proUserList:[]}" />
|
| | | <workOrderInfo :orederMessage="info" />
|
| | | <view class="bg_cate">
|
| | | <view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
|
| | | v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
|
| | |
| | | </template>
|
| | |
|
| | | <script>
|
| | | import workOrderInfo from '@/components/workOrderInfo.vue'
|
| | | import workOrderInfo from '@/components/workOrderInfo.vue' |
| | | import { |
| | | queryById, |
| | | createMaterial, |
| | | createMaterialStandard |
| | | } from '@/util/api/WorkOrderAPI'
|
| | | export default {
|
| | | components: {
|
| | | workOrderInfo
|
| | |
| | | duration: 0,
|
| | | type: 0,
|
| | | index: 0
|
| | | },
|
| | | }, |
| | | info: {},
|
| | | TimeShow: false,
|
| | | badShow: false,
|
| | | typeView: 0,
|
| | |
| | | // return Number(from.qualified) * infoBox.value.salary;
|
| | | }
|
| | | }
|
| | | }, |
| | | onLoad(obj) { |
| | | this.workorderId = obj.id |
| | | queryById(this.workorderId) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | this.deviceId = res.data.pgmodel.id |
| | | } |
| | | }) |
| | | },
|
| | | methods: {
|
| | | click() {
|
| | |
| | | <template>
|
| | | <view class="tl">
|
| | | <workOrderInfo :orederMessage="{proUserList:[]}" />
|
| | | <workOrderInfo :orederMessage="info" />
|
| | | <div class="tl_title">
|
| | | <div class="tl_title_left">
|
| | | <div class="tl_title_left_x"></div>
|
| | | <span>ææä¿¡æ¯</span>
|
| | | <!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> --> |
| | | <!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
|
| | | <!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
|
| | | </div>
|
| | | <div class="tl_title_right" @click="add">
|
| | |
| | | </div>
|
| | | </div>
|
| | | </u-swipe-action-item>
|
| | | </u-swipe-action> |
| | | <SelectMaterial ref="selectMaterial" @selectAction="getValue"/> |
| | | <SelectMultipleMaterial ref="selectMultipleMaterial"/>
|
| | | </u-swipe-action>
|
| | | <SelectMaterial ref="selectMaterial" @selectAction="getValue" />
|
| | | <!-- <SelectMultipleMaterial ref="selectMultipleMaterial" @selected="getMaterails"/> -->
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import workOrderInfo from '@/components/workOrderInfo.vue' |
| | | import SelectMaterial from '@/components/selectMaterial.vue' |
| | | import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue' |
| | | |
| | | import workOrderInfo from '@/components/workOrderInfo.vue'
|
| | | import SelectMaterial from '@/components/selectMaterial.vue'
|
| | | // import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue'
|
| | | import {
|
| | | queryById,
|
| | | createMaterial,
|
| | | createMaterialStandard
|
| | | } from '@/util/api/WorkOrderAPI'
|
| | | import {
|
| | | positiveInteger,
|
| | | number
|
| | | } from '@/common/config'
|
| | | export default {
|
| | | components: {
|
| | | workOrderInfo, |
| | | SelectMaterial, |
| | | SelectMultipleMaterial
|
| | | workOrderInfo,
|
| | | SelectMaterial,
|
| | | // SelectMultipleMaterial
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | deviceId: '',
|
| | | workorderId: '',
|
| | | // formList: [{
|
| | | // id: Date.now(),
|
| | | // toolingTypeId: '', // å·¥è£
ç±»å
|
| | |
| | | // dw: '', // ç©æåä½
|
| | | // unitAttribute: ''
|
| | | // }],
|
| | | info: {},
|
| | | materialList: [{
|
| | | id: '',
|
| | | materialName: '',
|
| | |
| | | }
|
| | | }],
|
| | | };
|
| | | }, |
| | | },
|
| | | onLoad(obj) {
|
| | | this.workorderId = obj.id
|
| | | queryById(this.workorderId)
|
| | | .then(res => {
|
| | | if (res.code === 200) {
|
| | | this.info = res.data
|
| | | this.deviceId = res.data.pgmodel.id
|
| | | }
|
| | | })
|
| | | },
|
| | | methods: {
|
| | | open1(index) { |
| | | // this.$refs.selectMaterial.open({}) |
| | | this.$refs.selectMultipleMaterial.open({}) |
| | | open1(index) {
|
| | | // this.$refs.selectMaterial.open({})
|
| | | this.index = index
|
| | | this.$refs.selectMaterial.open({
|
| | | workorderId: this.workorderId,
|
| | | deviceId: this.deviceId
|
| | | })
|
| | | },
|
| | | deleItem(index) {
|
| | | if (this.materialList.length === 1) {
|
| | |
| | | }
|
| | | this.materialList.splice(index, 1)
|
| | | },
|
| | | add() { |
| | | add() {
|
| | | this.total += 1
|
| | | this.materialList.unshift({
|
| | | id: '',
|
| | |
| | | })
|
| | | this.materialList[index].num = ''
|
| | | }
|
| | | }, |
| | | getValue(item) { |
| | | console.log(item); |
| | | }
|
| | | },
|
| | | getValue(v) {
|
| | | for (let i = 0; i < this.materialList.length; i++) {
|
| | | if (item.id === this.materialList[i].id) {
|
| | | uni.$u.toast({
|
| | | message: 'ä¸è½éå¤éæ©ç¸åç©æ'
|
| | | })
|
| | | return
|
| | | }
|
| | | }
|
| | | this.materialList[this.index].id = item.id
|
| | | this.materialList[this.index].materialName = item.materialName
|
| | | this.materialList[this.index].num = item.num
|
| | | this.materialList[this.index].batch = item.batch
|
| | | this.materialList[this.index].locationName = item.locationName
|
| | | this.materialList[this.index].materialCode = item.materialCode
|
| | | this.materialList[this.index].procedureName = item.procedureName
|
| | | this.materialList[this.index].qualityType = item.qualityType
|
| | | this.materialList[this.index].unitAttribute = item.unitAttribute
|
| | | },
|
| | | // getMaterails({materials}) {
|
| | | // console.log(item);
|
| | | // }
|
| | | }
|
| | | }
|
| | | </script>
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template>
|
| | | <view class="tl">
|
| | | <V-WorkOrderInfo :orederMessage="info"></V-WorkOrderInfo>
|
| | | <div class="tl_title">
|
| | | <div class="tl_title_left">
|
| | | <div class="tl_title_left_x"></div>
|
| | | <span>çäº§ç¹æ£</span>
|
| | | </div>
|
| | | <div class="tl_title_right" @click="add">
|
| | | <image src="../../static/gongdan_ic_shoudong@2x.png" class="img24" mode=""></image>
|
| | | <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
|
| | | <span>å¢å 屿§</span>
|
| | | </div>
|
| | | </div>
|
| | | <u-swipe-action>
|
| | | <u-swipe-action-item v-for="(item, index) in formList" :key="index" :options="options1"
|
| | | @click="dele(index)">
|
| | | <div class="tl_list">
|
| | | <div class="tl_list_item" @click="open(index)">
|
| | | <div class="tl_list_item_label">çäº§å±æ§</div>
|
| | | <div class="tl_list_item_go">
|
| | | <span
|
| | | :style="item.attributeName ? 'color: #000;' : ''">{{ item.attributeName ? item.attributeName : 'è¯·éæ©'}}</span>
|
| | | <van-icon name="arrow" color="#999999" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-if="item.type === ''">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <input type="text" v-model="item.num" placeholder="请è¾å
¥" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 0">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <u-radio-group v-model="item.num" placement="row">
|
| | | <u-radio v-for="(item1, i) in item.data" :key="i" activeColor="#4275FC" :label="item1">
|
| | | </u-radio>
|
| | | </u-radio-group>
|
| | | <!-- <van-radio-group v-model="item.num" direction="horizontal">
|
| | | <van-radio :name="item1" checked-color="#4275FC" v-for="(item1, i) in item.data" :key="i">
|
| | | {{item1}}
|
| | | </van-radio>
|
| | | </van-radio-group> -->
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 1">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <u-checkbox-group v-model="item.num" placement="row">
|
| | | <u-checkbox v-for="(item1, i) in item.data" :key="i" :label="item1" :name="item1">
|
| | | </u-checkbox>
|
| | | </u-checkbox-group>
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 2 || item.type === 3">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <input type="text" v-model="item.num" :placeholder="item.tips" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" @click="openTimer(index)" v-else-if="item.type === 4">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <span :style="item.num ? 'color: #000;' : ''">{{item.num ? item.num : item.tips}}</span>
|
| | | <u-icon name="arrow" color="#999999" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </u-swipe-action-item>
|
| | | </u-swipe-action>
|
| | | <!-- <van-swipe-cell v-for="(item, index) in formList" :key="index">
|
| | | <div class="tl_list">
|
| | | <div class="tl_list_item" @click="open(index)">
|
| | | <div class="tl_list_item_label">çäº§å±æ§</div>
|
| | | <div class="tl_list_item_go">
|
| | | <span
|
| | | :style="item.attributeName ? 'color: #000;' : ''">{{ item.attributeName ? item.attributeName : 'è¯·éæ©'}}</span>
|
| | | <van-icon name="arrow" color="#999999" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-if="item.type === ''">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <input type="text" v-model="item.num" placeholder="请è¾å
¥" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 0">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <u-radio-group v-model="item.num" placement="row">
|
| | | <u-radio v-for="(item1, i) in item.data" :key="i" activeColor="#4275FC" :label="item1">
|
| | | </u-radio>
|
| | | </u-radio-group>
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 1">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <u-checkbox-group v-model="item.num" placement="row">
|
| | | <u-checkbox v-for="(item1, i) in item.data" :key="i" :label="item1" :name="item1">
|
| | | </u-checkbox>
|
| | | </u-checkbox-group>
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 2">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <input type="text" v-model="item.num" :placeholder="item.tips" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" v-else-if="item.type === 3">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <input type="text" v-model="item.num" :placeholder="item.tips" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="tl_list_item" @click="openTimer(index)" v-else-if="item.type === 4">
|
| | | <div class="tl_list_item_label">屿§å¼</div>
|
| | | <div class="tl_list_item_go">
|
| | | <span :style="item.num ? 'color: #000;' : ''">{{item.num ? item.num : item.tips}}</span>
|
| | | <u-icon name="arrow" color="#999999" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <template #right>
|
| | | <van-button square style="height: 100%;" type="danger" text="å é¤" @click="dele(index)" />
|
| | | </template>
|
| | | </van-swipe-cell> -->
|
| | |
|
| | | <div class="tl_zw"></div>
|
| | | <div class="tl_footer">
|
| | | <button class="tl_footer_submit" v-preventReClick @click="submit">æäº¤</button>
|
| | | </div>
|
| | | <u-picker :show="show" :columns="[gzqjData]" title="éæ©çäº§å±æ§" @confirm="gzqjConfirm" @cancel="show=false">
|
| | | </u-picker>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import VWorkOrderInfo from '@/components/workOrderInfo.vue'
|
| | | import {
|
| | | setTimeO
|
| | | } from '@/util/utils.js'
|
| | | import {
|
| | | queryById,
|
| | | getJdList,
|
| | | createDJ
|
| | | } from '@/util/api/WorkOrderAPI'
|
| | | export default {
|
| | | components: {
|
| | | VWorkOrderInfo
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | options1: [{
|
| | | text: 'å é¤'
|
| | | }],
|
| | | show: false,
|
| | | index: '',
|
| | | workOrderId: '',
|
| | | info: {},
|
| | | gzqjData: [],
|
| | | formList: [{
|
| | | id: Date.now(),
|
| | | attribute: '', // 屿§å¼
|
| | | attributeName: '', // 屿§å¼åç§°
|
| | | data: '', // æ°æ®
|
| | | type: '', // ç±»å
|
| | | tips: '', // æç¤ºå
|
| | | num: '' // æ°é
|
| | | }]
|
| | | }
|
| | | },
|
| | | onLoad(obj) {
|
| | | this.workOrderId = obj.id
|
| | | this.queryByIds()
|
| | | this.getJdLists()
|
| | | },
|
| | | methods: {
|
| | | queryByIds() {
|
| | | queryById(this.workOrderId)
|
| | | .then(res => {
|
| | | console.log(res);
|
| | | this.info = res.data
|
| | | })
|
| | | },
|
| | | getJdLists() {
|
| | | getJdList({
|
| | | workOrderID: this.workOrderId
|
| | | })
|
| | | .then(res => {
|
| | | if (res.code === 200 && res.data && res.data.length !== 0) {
|
| | | res.data.forEach(item => {
|
| | | this.gzqjData.push({
|
| | | text: item.name,
|
| | | id: item.id,
|
| | | type: item.type,
|
| | | data: item.remark ? item.remark.split(' ') : '',
|
| | | tips: item.tips
|
| | | })
|
| | | })
|
| | | }
|
| | | })
|
| | | },
|
| | | add() {
|
| | | this.formList.push({
|
| | | id: Date.now(),
|
| | | attribute: '',
|
| | | attributeName: '',
|
| | | num: '',
|
| | | type: '',
|
| | | data: '',
|
| | | tips: ''
|
| | | })
|
| | | },
|
| | | open(index) {
|
| | | this.index = index
|
| | | this.show = true
|
| | | },
|
| | | gzqjConfirm({
|
| | | value
|
| | | }) {
|
| | | console.log(value);
|
| | | let temp = value[0]
|
| | | this.formList[this.index] = {
|
| | | attribute: temp.id,
|
| | | attributeName: temp.text,
|
| | | type: temp.type,
|
| | | data: temp.data,
|
| | | tips: temp.tips,
|
| | | num: '',
|
| | | }
|
| | | if (temp.type === 1) {
|
| | | this.formList[this.index].num = []
|
| | | } else if (temp.type === 0) {
|
| | | this.formList[this.index].num = temp.data[0]
|
| | | } else if (temp.type === 4) {
|
| | | this.formList[this.index].num = setTimeO(new Date(), '-')
|
| | | }
|
| | | // this.formList.forEach((item, index) => {
|
| | | // if (this.index === index) {
|
| | | // item.attribute = value.id
|
| | | // item.attributeName = value.text
|
| | | // item.type = value.type
|
| | | // item.data = value.data
|
| | | // item.tips = value.tips
|
| | | // console.log(value)
|
| | | // item.num = ''
|
| | | // if (item.type === 1) {
|
| | | // item.num = []
|
| | | // } else if (item.type === 0) {
|
| | | // item.num = item.data[0]
|
| | | // }
|
| | | // if (value.type === 4) {
|
| | | // formList.value[indexs.value].num = setTimeO(new Date(), '-')
|
| | | // }
|
| | | // }
|
| | | // })
|
| | | this.show = false
|
| | | },
|
| | | dele(index) {
|
| | | if (this.formList.length === 1) {
|
| | | uni.$u.toast('è³å°ä¿ç䏿¡ç¹æ£ä¿¡æ¯')
|
| | | return
|
| | | }
|
| | | this.formList.splice(index, 1)
|
| | | },
|
| | | submit() {
|
| | | let isOpen = true |
| | | let attrList = [] |
| | | |
| | | this.formList.forEach(item => {
|
| | | if (item.type === 1) { |
| | | if (item.attribute === '' || item.num.length === 0) {
|
| | | isOpen = false |
| | | return
|
| | | } else { |
| | | attrList.push({ |
| | | val: item.num.join(' '), |
| | | attrId: item.attribute |
| | | }) |
| | | }
|
| | | } else { |
| | | if (item.attribute === '' || item.num === '') {
|
| | | isOpen = false |
| | | return
|
| | | } else { |
| | | attrList.push({ |
| | | val: item.num, |
| | | attrId: item.attribute |
| | | }) |
| | | }
|
| | | }
|
| | | })
|
| | | if (!isOpen) {
|
| | | uni.$u.toast('请å°ä¿¡æ¯å¡«å宿´')
|
| | | return
|
| | | }
|
| | | |
| | | createDJ({
|
| | | attrList: attrList,
|
| | | id: this.workOrderId
|
| | | }).then(res => {
|
| | | if (res.code === 200) { |
| | | uni.$u.toast('å建æå')
|
| | | setTimeout(() => {
|
| | | uni.navigateBack()
|
| | | }, 1000)
|
| | | }
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .tl {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | position: absolute;
|
| | | background: #F7F7F7;
|
| | |
|
| | | .tl_title {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | padding: 30rpx;
|
| | |
|
| | | .tl_title_left {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | .tl_title_left_x {
|
| | | width: 8rpx;
|
| | | height: 30rpx;
|
| | | background: $nav-color;
|
| | | border-radius: 2rpx;
|
| | | margin-right: 12rpx;
|
| | | }
|
| | |
|
| | | span {
|
| | | font-size: 32rpx;
|
| | | font-weight: 500;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | |
|
| | | .tl_title_right {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | img {
|
| | | width: 28rpx;
|
| | | height: 28rpx;
|
| | | margin-right: 12rpx;
|
| | | }
|
| | |
|
| | | span {
|
| | | font-size: 28rpx;
|
| | | font-weight: 400;
|
| | | color: $nav-color;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .tl_list {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | background: white;
|
| | | padding: 0 30rpx;
|
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .tl_list_item {
|
| | | min-height: 98rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | border-bottom: 1rpx solid #E5E5E5;
|
| | |
|
| | | &:last-child {
|
| | | border: none;
|
| | | }
|
| | |
|
| | | .tl_list_item_label {
|
| | | font-size: 30rpx;
|
| | | font-weight: 400;
|
| | | color: #222222;
|
| | | }
|
| | |
|
| | | .tl_list_item_go {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | input {
|
| | | text-align: right;
|
| | | width: 450rpx;
|
| | | height: 60rpx;
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #E5E5E5;
|
| | | padding: 0 30rpx;
|
| | | box-sizing: border-box;
|
| | | font-size: 28rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | }
|
| | |
|
| | | span {
|
| | | font-size: 28rpx;
|
| | | font-weight: 400;
|
| | | color: #999999;
|
| | | margin-right: 10rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .tl_zw {
|
| | | height: 160rpx;
|
| | | }
|
| | |
|
| | | .tl_footer {
|
| | | width: 100%;
|
| | | position: fixed;
|
| | | bottom: 0;
|
| | | left: 0;
|
| | | padding: 0 30rpx 68rpx 30rpx;
|
| | | box-sizing: border-box;
|
| | |
|
| | | .tl_footer_submit {
|
| | | width: 690rpx;
|
| | | height: 88rpx;
|
| | | border: none;
|
| | | background: #4275FC;
|
| | | box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
|
| | | border-radius: 8rpx;
|
| | | font-size: 30rpx;
|
| | | font-weight: 500;
|
| | | color: #FFFFFF;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template>
|
| | | <view class="content p30">
|
| | | <div class="content_search">
|
| | | <v-Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
|
| | | placeholder="æç´¢å·¥åç¼ç /å·¥åºåç§°">
|
| | | <template v-slot:content>
|
| | | <div class="Search_item">
|
| | | <div class="Search_item_label">è®¡åæ¥æ</div>
|
| | | <div class="Search_item_content" @click="isOpenDate = true">
|
| | | <div class="Search_item_content_a" :style="searchForm.startDate ? 'color: #000;' : ''">
|
| | | {{ searchForm.startDate ? searchForm.startDate : 'å¼å§æ¥æ'}}
|
| | | </div>
|
| | | <span>-</span>
|
| | | <div class="Search_item_content_a" :style="searchForm.endDate ? 'color: #000;' : ''">
|
| | | {{ searchForm.endDate ? searchForm.endDate : 'ç»ææ¥æ'}}
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </template>
|
| | | </v-Search>
|
| | | <div class="content_search_x"></div>
|
| | | <v-LableSelection :TagList="tagList" :isShow="true" @change="clickTag"></v-LableSelection>
|
| | | </div>
|
| | | <div class="content_total mt20">å
±{{page.total}}æ¡æ°æ®</div>
|
| | | <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="triggered" @scrolltolower="getLists"
|
| | | @refresherrefresh="onRefresh">
|
| | | <div class="content_list">
|
| | | <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_tag backgreen" v-if="item.type === 0">æ£å¸¸</div>
|
| | | <div class="content_list_item_top_left_tag backyellow" v-if="item.type === 2">è¿å·¥è¿ä¿®</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>
|
| | | <span class="green" v-if="item.status === 7">è¿è¡ä¸</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.code}}
|
| | | </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>
|
| | | </div>
|
| | | </scroll-view>
|
| | | <u-calendar :show="isOpenDate" mode="range" @confirm="dateConfirm"></u-calendar>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import vSearch from '@/components/Search.vue'
|
| | | import vLableSelection from '@/components/LabelSelection.vue'
|
| | | import {
|
| | | getList,
|
| | | pageCount
|
| | | } from '@/util/api/WorkOrderAPI.js'
|
| | | export default {
|
| | | components: {
|
| | | vSearch,
|
| | | vLableSelection
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | isOpenDate: false,
|
| | | tagList: [{
|
| | | id: [0, 1],
|
| | | name: 'å¾
ç产',
|
| | | num: '0'
|
| | | },
|
| | | {
|
| | | id: [2, 3, 7],
|
| | | name: 'ç产ä¸',
|
| | | num: '0'
|
| | | },
|
| | | {
|
| | | id: [4, 5, 6],
|
| | | name: '已宿',
|
| | | num: '0'
|
| | | }
|
| | | ],
|
| | | triggered: false,
|
| | | _freshing: false,
|
| | | searchForm: {
|
| | | mixParam: '',
|
| | | startDate: '',
|
| | | endDate: '',
|
| | | statusList: []
|
| | | },
|
| | | page: {
|
| | | total: 0,
|
| | | capacity: 10,
|
| | | page: 1
|
| | | },
|
| | | list: [],
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | this.pageCounts()
|
| | | this.loadData()
|
| | | },
|
| | | methods: {
|
| | | loadData() {
|
| | |
|
| | | getList({
|
| | | ...this.page,
|
| | | model: {
|
| | | ...this.searchForm,
|
| | | endDate: this.searchForm.endDate ? (this.searchForm.endDate + ' 23:59:59') : '',
|
| | | statusList: this.searchForm.statusList.length === 0 ? this.tagList[0].id : this.searchForm
|
| | | .statusList
|
| | | }
|
| | | })
|
| | | .then(res => {
|
| | | let {
|
| | | data
|
| | | } = res
|
| | |
|
| | | if (data.page == 1) {
|
| | | this.list = []
|
| | | }
|
| | | this.page.total = data.total
|
| | | this.page.page = data.page
|
| | | this.list.push(...data.records)
|
| | | this.triggered = false
|
| | | })
|
| | | },
|
| | | pageCounts() {
|
| | | pageCount({
|
| | | ...this.searchForm,
|
| | | endDate: this.searchForm.endDate ? (this.searchForm.endDate + ' 23:59:59') : '',
|
| | | statusList: this.searchForm.statusList.length === 0 ? this.tagList[0].id : this.searchForm
|
| | | .statusList
|
| | | }).then(res => { |
| | | console.log(res);
|
| | | if (res.code === 200) {
|
| | | this.tagList[0].num = String(res.data.startNum)
|
| | | this.tagList[1].num = String(res.data.ingNum)
|
| | | this.tagList[2].num = String(res.data.endNum)
|
| | | }
|
| | | })
|
| | | },
|
| | | clickTag(v) {
|
| | | this.searchForm.statusList = v
|
| | | this.page.page = 1
|
| | | this.loadData()
|
| | | },
|
| | | dateConfirm(v) {
|
| | | this.isOpenDate = false
|
| | | this.searchForm.startDate = v[0]
|
| | | this.searchForm.endDate = v[v.length - 1]
|
| | | },
|
| | | getLists() {
|
| | | this.page.page += 1
|
| | | this.loadData()
|
| | | },
|
| | | onRefresh() {
|
| | | if (this.triggered) return
|
| | | this.triggered = true;
|
| | | this.page.page = 1
|
| | | this.loadData()
|
| | | },
|
| | | jump(item) { |
| | | // uni.navigateTo({ |
| | | // url: `/pages_adjust/pages/OrderDetail/OrderDetail?id=${item.id}` |
| | | // })
|
| | | if (item.status === 4 || item.status === 6 || item.paused === 1) {
|
| | | uni.navigateTo({ |
| | | url: `/pages_adjust/pages/OrderDetail/OrderDetail?id=${item.id}` |
| | | })
|
| | | } else { |
| | | uni.navigateTo({ |
| | | url: `/pages_adjust/pages/workOrderReporting/workOrderReporting?id=${item.id}` |
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .content {
|
| | | .content_code {
|
| | | position: fixed;
|
| | | right: 30rpx;
|
| | | bottom: 100rpx;
|
| | |
|
| | | img {
|
| | | width: 138rpx;
|
| | | height: 138rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .content_top {
|
| | | top: 0 !important;
|
| | | }
|
| | |
|
| | | .content_search {
|
| | | background: white;
|
| | | z-index: 9;
|
| | |
|
| | | .Search_item {
|
| | | margin-bottom: 40rpx;
|
| | |
|
| | | .Search_item_label {
|
| | | font-size: 30rpx;
|
| | | font-weight: 500;
|
| | | color: #222222;
|
| | | }
|
| | |
|
| | | .Search_item_content {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | margin-top: 30rpx;
|
| | |
|
| | | .tag {
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | align-items: center;
|
| | |
|
| | | .tag_active {
|
| | | background: $nav-color !important;
|
| | | color: #ffffff !important;
|
| | | }
|
| | |
|
| | | .tag_item {
|
| | | width: 156rpx;
|
| | | height: 70rpx;
|
| | | box-sizing: border-box;
|
| | | background: #F2F2F2;
|
| | | border-radius: 8rpx;
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | margin-right: 22rpx;
|
| | | margin-bottom: 22rpx;
|
| | |
|
| | | &:nth-child(4n) {
|
| | | margin-right: 0;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | span {
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | }
|
| | |
|
| | | .Search_item_content_a {
|
| | | width: 308rpx;
|
| | | height: 70rpx;
|
| | | background: #F7F7F7;
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #EEEEEE;
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: #B2B2B2;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .content_search_x {
|
| | | height: 24rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .content_total {
|
| | | padding: 24rpx 30rpx;
|
| | | background: #F7F7F7;
|
| | | font-size: 24rpx;
|
| | | font-weight: 400;
|
| | | color: #666666;
|
| | | }
|
| | |
|
| | | .content_list {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | |
|
| | | .content_list_item {
|
| | | background: white;
|
| | | padding: 30rpx;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | border-bottom: 1rpx solid #ececec;
|
| | |
|
| | | span {
|
| | | color: #5a5a5a;
|
| | | margin-top: 15rpx;
|
| | | }
|
| | |
|
| | | .content_list_item_top {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | |
|
| | | .content_list_item_top_left {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | width: 80%;
|
| | |
|
| | | span {
|
| | | font-size: 32rpx;
|
| | | font-weight: 500;
|
| | | color: #333333;
|
| | | overflow: hidden;
|
| | | white-space: nowrap;
|
| | | text-overflow: ellipsis;
|
| | | -o-text-overflow: ellipsis;
|
| | | }
|
| | |
|
| | | .content_list_item_top_left_tagW {
|
| | | margin-top: 14rpx;
|
| | | flex-shrink: 0;
|
| | | box-sizing: border-box;
|
| | | padding: 5rpx 10rpx;
|
| | | background: $nav-stateColor5;
|
| | | border-radius: 8rpx;
|
| | | font-size: 22rpx;
|
| | | font-weight: 400;
|
| | | color: #FFFFFF;
|
| | | margin-left: 16rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | |
|
| | | .content_list_item_top_left_tag {
|
| | | margin-top: 14rpx;
|
| | | flex-shrink: 0;
|
| | | padding: 5rpx 10rpx;
|
| | | background: $nav-stateColor4;
|
| | | border-radius: 8rpx;
|
| | | font-size: 22rpx;
|
| | | font-weight: 400;
|
| | | color: #FFFFFF;
|
| | | margin-left: 16rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | | }
|
| | |
|
| | | .content_list_item_top_right {
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: #666666;
|
| | | flex-shrink: 0;
|
| | |
|
| | | .purple {
|
| | | color: $nav-color !important;
|
| | | }
|
| | |
|
| | | .green {
|
| | | color: $nav-stateColor6 !important;
|
| | | }
|
| | |
|
| | | .yellow {
|
| | | color: $nav-stateColor1 !important;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .content_list_item_content {
|
| | | padding: 24rpx 30rpx;
|
| | | background: #F7F7F7;
|
| | | border-radius: 16rpx;
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | justify-content: space-between;
|
| | | margin-top: 25rpx;
|
| | |
|
| | | .content_list_item_content_item {
|
| | | width: 50%;
|
| | | display: flex;
|
| | | margin-top: 24rpx;
|
| | |
|
| | | &:nth-child(1) {
|
| | | margin-top: 0 !important;
|
| | | }
|
| | |
|
| | | &:nth-child(2) {
|
| | | margin-top: 0 !important;
|
| | | }
|
| | |
|
| | | .content_list_item_content_item_label {
|
| | | font-size: 24rpx;
|
| | | font-weight: 400;
|
| | | color: #666666;
|
| | | flex-shrink: 0;
|
| | | }
|
| | |
|
| | | .content_list_item_content_item_nr {
|
| | | flex: 1;
|
| | | overflow: hidden;
|
| | | white-space: nowrap;
|
| | | text-overflow: ellipsis;
|
| | | -o-text-overflow: ellipsis;
|
| | | font-size: 24rpx;
|
| | | font-weight: 400;
|
| | | color: #222222;
|
| | | margin-right: 10rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <template>
|
| | | <view>
|
| | | <view class="tips-label">å½åä»»å¡éè¦è´¨æ£ï¼äº§åºåï¼è¯·èå¿çå¾
è´¨æ£åæ£éªï¼å¹¶æ ¹æ®æ£éªç»æè°æ´äº§åºæ°æ®å忥工ã</view>
|
| | | <workOrderInfo :orederMessage="{proUserList:[]}" />
|
| | | <workOrderInfo :orederMessage="info" />
|
| | | <!-- <u-tabs :list="tab" lineColor="#305ED5" :activeStyle="{color:'#305ED5'}" lineWidth="50%" :itemStyle="{width: '50%', boxSizing: 'border-box', height: '88rpx'}" @click="click"></u-tabs> -->
|
| | | <view class="bg_cate">
|
| | | <view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
|
| | |
| | | <div class="bg_list_item_top_left_x bg_m"></div>
|
| | | <span>æææç»</span>
|
| | | </div>
|
| | | <div class="bg_list_item_top_right" @click="jumpTL">
|
| | | <!-- proxy.$auth('h5:workorderinput:create') && -->
|
| | | <div class="bg_list_item_top_right" @click="jumpTL"
|
| | | v-if="info.bomType !== 1 || info.bomType == 0 || !info.bomType">
|
| | | <!-- v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)" -->
|
| | | <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
|
| | | <!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> -->
|
| | |
| | | </div>
|
| | | <div class="details_dj" v-if="typeView === 1">
|
| | |
|
| | | <div class="details_dj_list">
|
| | | <div class="details_dj_list"> |
| | | |
| | | <u-swipe-action>
|
| | | <u-swipe-action-item v-for="(item, index) in djData" :key="index" :options="options"
|
| | | @click="dele(item.id)">
|
| | |
| | | <view class="c2 b tc">ä¸è¯é¡¹</view>
|
| | | <view class="content bl_list">
|
| | | <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
|
| | | <div class="bl_list_item_left"> |
| | | <u-checkbox-group> |
| | | <u-checkbox :key="index" :checked="item.active" :label="item.name" |
| | | :name="item.name"> |
| | | </u-checkbox> |
| | | <div class="bl_list_item_left">
|
| | | <u-checkbox-group @change="changeChecked(i)">
|
| | | <u-checkbox :key="index" :checked="item.active" :label="item.name" :name="item.name">
|
| | | </u-checkbox>
|
| | | </u-checkbox-group>
|
| | | </div>
|
| | | <div class="bl_list_item_right">
|
| | |
| | |
|
| | | <script>
|
| | | import workOrderInfo from '@/components/workOrderInfo.vue'
|
| | | import {
|
| | | getBarcodeContent,
|
| | | queryById,
|
| | | getOrocessRecord,
|
| | | deleteCT,
|
| | | updateById,
|
| | | comfirmDone,
|
| | | comfirmDoneStandard,
|
| | | getListByCondition,
|
| | | allForStandard,
|
| | | pageDJ,
|
| | | deletedj,
|
| | | dealWorkorderRecordStandard,
|
| | | getWorkorderRecordListStandard
|
| | | } from '@/util/api/WorkOrderAPI'
|
| | | import {
|
| | | categoryExtList,
|
| | | queryOne,
|
| | | queryList
|
| | | } from '@/util/api/PlanningAPI'
|
| | | export default {
|
| | | components: {
|
| | | workOrderInfo
|
| | |
| | | TimeShow: false,
|
| | | badShow: false,
|
| | | typeView: 0,
|
| | | feedingData: [{
|
| | | id: 0,
|
| | | materialName: 'å¢ä½ç ',
|
| | | procedureName: 'åå¶',
|
| | | qualityType: 1,
|
| | | locationName: 'CP-01',
|
| | | batch: '20230713',
|
| | | num: 2,
|
| | | maxNum: 10,
|
| | | unitAttribute: 1,
|
| | | unitName: 'å'
|
| | | }],
|
| | | workorderId: '',
|
| | | info: {},
|
| | | feedingData: [
|
| | | // {
|
| | | // id: 0,
|
| | | // materialName: 'å¢ä½ç ',
|
| | | // procedureName: 'åå¶',
|
| | | // qualityType: 1,
|
| | | // locationName: 'CP-01',
|
| | | // batch: '20230713',
|
| | | // num: 2,
|
| | | // maxNum: 10,
|
| | | // unitAttribute: 1,
|
| | | // unitName: 'å'
|
| | | // },
|
| | | ],
|
| | | options: [{
|
| | | text: 'å é¤',
|
| | | style: {
|
| | |
| | | qualifiedId: '',
|
| | | qualified: '', // åæ ¼
|
| | | undesirableId: '',
|
| | | undesirable: 5 // ä¸è¯
|
| | | undesirable: '' // ä¸è¯
|
| | | },
|
| | | djData: [{
|
| | | attrName: 'åºæ°´æ¶é´',
|
| | |
| | | userName: 'å¼ ä¸ ',
|
| | | createTime: '2022-05-28 16:32:'
|
| | | }],
|
| | | cateList: [{
|
| | | active: false,
|
| | | name: 'æ¯åº',
|
| | | num: 0
|
| | | }]
|
| | | cateList: [
|
| | | // {
|
| | | // active: false,
|
| | | // name: 'æ¯åº',
|
| | | // num: 0
|
| | | // },
|
| | | ], |
| | | pages: { |
| | | capacity: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }
|
| | | };
|
| | | },
|
| | | onLoad(obj) {
|
| | | this.workorderId = obj.id
|
| | | this.queryByIds()
|
| | | this.getOrocessRecords()
|
| | | this.getData()
|
| | | },
|
| | | computed: {
|
| | | expectedSalary() {
|
| | |
| | | return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
|
| | | }
|
| | | },
|
| | | complianceRate() {
|
| | | if (this.arrType.length === 0) return 0;
|
| | | if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
|
| | | if (!this.form.duration) return 0;
|
| | | complianceRate() { |
| | | if (this.arrType.length === 0) return 0; |
| | | if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0; |
| | | if (!this.form.duration) return 0; |
| | | if (!this.arrType[this.form.index].num) return 0;
|
| | | // æä»¶è®¡ç®
|
| | | // if (infoBox.value.type == 0) {
|
| | |
| | | return ((Number(a) / Number(b)) * 100).toFixed(2)
|
| | | // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
|
| | | // return total * infoBox.value.salary;
|
| | | } else {
|
| | | } else { |
| | | let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
|
| | | let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
|
| | | let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2) |
| | | return ((Number(a) / Number(b)) * 100).toFixed(2)
|
| | | // return Number(from.qualified) * infoBox.value.salary;
|
| | | }
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | queryByIds() {
|
| | | queryById(this.workorderId)
|
| | | .then(res => {
|
| | | this.info = res.data
|
| | | queryList({
|
| | | deleted: 0,
|
| | | departId: res.data.factoryId,
|
| | | materialId: res.data.materialId,
|
| | | procedureId: res.data.procedureId
|
| | | }).then(result => {
|
| | | if (result.code === 200) {
|
| | | if (result.data && result.data.length > 0) {
|
| | | result.data.forEach((item, index) => {
|
| | | item.name = item.type == 0 ? '计件' : '计æ¶'
|
| | | item.id = item.type
|
| | | item.active = index == 0
|
| | | })
|
| | | this.arrType = result.data
|
| | | } else {
|
| | | this.arrType = []
|
| | | }
|
| | | }
|
| | | })
|
| | | })
|
| | | },
|
| | | getOrocessRecords() {
|
| | | this.feedingData = []
|
| | | allForStandard({
|
| | | workorderId: this.workorderId,
|
| | | type: 0
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | this.feedingData = res.data
|
| | | }
|
| | | })
|
| | | },
|
| | | getData() {
|
| | | categoryExtList({
|
| | | cateType: "3"
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | res.data.forEach(item => {
|
| | | item.active = false
|
| | | item.num = ''
|
| | | })
|
| | | this.cateList = res.data
|
| | | }
|
| | | })
|
| | | },
|
| | | click() {
|
| | |
|
| | | },
|
| | |
| | | // }
|
| | | // })
|
| | | },
|
| | | changeCC(downType, num, recordId) {
|
| | | if (!num) return |
| | | console.log(Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable))
|
| | | if ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) > this.info.planNum) { |
| | | uni.showToast({ title:'äº§åºæ°éä¸è½å¤§äºè®¡åæ°é', duration: 2000, icon:'none' })
|
| | | return
|
| | | }
|
| | | if (num >= 0) {
|
| | | this.form.defective = []
|
| | | this.form.defectiveName = ''
|
| | | // dealWorkorderRecordStandard({
|
| | | // downType, num, recordId, workorderId: route.query.id
|
| | | // }).then(res => {
|
| | | // if (res.code === 200) {
|
| | | // getOrocessRecordCC()
|
| | | // }
|
| | | // })
|
| | | } else {
|
| | | if (downType == 0) {
|
| | | this.produceFrom.qualified = 0
|
| | | } else {
|
| | | this.produceFrom.undesirable = 0
|
| | | } |
| | | uni.showToast({ title:'äº§åºæ°éä¸è½å°äº', duration: 2000, icon:'none' }) |
| | | }
|
| | | },
|
| | | clickPerformanceType(item, index) {
|
| | | this.form.index = index
|
| | | this.form.type = item.type
|
| | | },
|
| | | submit() {},
|
| | | jumpdj() {},
|
| | | jumpdj() { |
| | | uni.navigateTo({ |
| | | url: `/pages_adjust/pages/spotCheck/spotCheck?id=${this.workorderId}` |
| | | }) |
| | | },
|
| | | pageDJs() {},
|
| | | dele(id) {
|
| | | // deletedj(id)
|
| | |
| | | // }
|
| | | // })
|
| | | },
|
| | | confirm() { |
| | | // console.log('confirm');
|
| | | confirm() {
|
| | | console.log('confirm', this.cateList);
|
| | | let isOpen = false
|
| | | this.cateList.forEach((item, index) => {
|
| | | if (item.active) {
|
| | | isOpen = true
|
| | | }
|
| | | })
|
| | | if (!isOpen) { |
| | | uni.showToast({ title:'è¯·éæ©ä¸è¯é¡¹', duration: 2000, icon:'none' }) |
| | | return |
| | | }
|
| | | let arr = []
|
| | | let total = 0
|
| | | let name = ''
|
| | | this.cateList.forEach((item, index) => {
|
| | | if (item.active) {
|
| | | if (item.num <= 0) { |
| | | uni.showToast({ title:'ä¸è¯æ°éå¿
须大äº0', duration: 2000, icon:'none' })
|
| | | return
|
| | | }
|
| | | total = total += item.num
|
| | | arr.push(item)
|
| | | name += item.name + item.num + 'ï¼'
|
| | | }
|
| | | })
|
| | | if (total != Number(this.produceFrom.undesirable)) { |
| | | uni.showToast({ title:'ä¸è¯æ°å¿
é¡»çäºäº§åºä¸è¯æ°', duration: 2000, icon:'none' }) |
| | | return |
| | | }
|
| | | this.form.defective = arr
|
| | | this.form.defectiveName = name
|
| | | this.badShow = false
|
| | | },
|
| | | changeChecked(i) {
|
| | | this.cateList[i].active = !this.cateList[i].active
|
| | | }, |
| | | jumpTL() { |
| | | uni.navigateTo({ |
| | | // url: '' |
| | | url: `/pages_adjust/pages/manualFeed/manualFeed?id=${this.workorderId}` |
| | | }) |
| | | }
|
| | | }
|
| | | }
|
| | |
| | | },
|
| | | actions: {
|
| | | // åå端è·åèåæ æé
|
| | | async getMenuList(content, type) {
|
| | | async getMenuList(content, type) { |
| | | let res = await getTreeList({
|
| | | type: type
|
| | | })
|
| | |
| | | menuButtonWidth
|
| | | })
|
| | | },
|
| | | async getUpcomingNum() {
|
| | | async getUpcomingNum(context) {
|
| | | let res = await pageCount({})
|
| | | if (res.code === 200) {
|
| | | content.commit('SETNUM', {
|
| | | context.commit('SETNUM', {
|
| | | d: res.data.startNum,
|
| | | y: res.data.endNum
|
| | | })
|
| | |
| | | uni.showToast({ title: response.data.message, icon: 'none', duration: 2000 });
|
| | | }
|
| | | return data || {}
|
| | | }, (response) => {
|
| | | uni.hideLoading();
|
| | | let code;
|
| | | }, (error) => {
|
| | | uni.hideLoading(); |
| | | let code = error.code |
| | | if (error.code === "ECONNABORTED") {
|
| | | code = 999
|
| | | } else {
|
| | | code = error.response.status
|
| | | }
|
| | | } |
| | | switch (code) {
|
| | | case 404:
|
| | | uni.showToast({ title: '请æ±èµæºä¸åå¨', icon: 'none', duration: 2000 });
|
| | |
| | | uni.showToast({ title: '请æ±è¶
æ¶', icon: 'none', duration: 2000 });
|
| | | break;
|
| | | } |
| | | return Promise.reject(response)
|
| | | return Promise.reject(error)
|
| | | })
|
| | | } |
| | |
| | | return [year, Sign, month , Sign, day, ' ', hour , ':', minute, ':', second ].join(''); |
| | | } |
| | | |
| | | export { gsdate, setTime } |
| | | /*** |
| | | * |
| | | * @param time æ¥æ å¹´ææ¥æ¶åç§ |
| | | * @param Sign é´é |
| | | */ |
| | | function setTimeO (time, Sign) { |
| | | let year = time.getFullYear(); |
| | | let month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : `0${time.getMonth() + 1}`; |
| | | let day = time.getDate() >= 10 ? time.getDate() : `0${time.getDate()}`; |
| | | let hour = time.getHours() >= 10 ? time.getHours() : `0${time.getHours()}`; |
| | | let minute = time.getMinutes() >= 10 ? time.getMinutes() : `0${time.getMinutes()}`; |
| | | let second = time.getSeconds() >= 10 ? time.getSeconds() : `0${time.getSeconds()}`; |
| | | return [year, Sign, month , Sign, day, ' ', hour , ':', minute, ':', '00' ].join(''); |
| | | } |
| | | |
| | | export { gsdate, setTime, setTimeO } |
| | |
| | | <TableLayout :permissions="['system:loginLog:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="ç»å½ç¨æ·å" prop="loginUsername"> |
| | | <el-form-item label="ç¨æ·å" prop="loginUsername"> |
| | | <el-input v-model="searchForm.loginUsername" placeholder="请è¾å
¥ç»å½ç¨æ·å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="ç»å½IP" prop="ip"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="æå¡å¨IP" prop="serverIp"> |
| | | <el-input v-model="searchForm.serverIp" placeholder="请è¾å
¥æå¡å¨IP" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦ç»å½æå" prop="success"> |
| | | </el-form-item>--> |
| | | <el-form-item label="ç¶æ" prop="success"> |
| | | <el-select v-model="searchForm.success" placeholder="è¯·éæ©æ¯å¦ç»å½ç¶æ" clearable @change="search"> |
| | | <el-option value="true" label="ç»å½æå"/> |
| | | <el-option value="false" label="ç»å½å¤±è´¥"/> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æº" prop="orgin"> |
| | | <el-select v-model="searchForm.orgin" placeholder="è¯·éæ©ç»å½æ¥æº" clearable @change="search"> |
| | | <el-option value="0" label="PCç»é"/> |
| | |
| | | <el-option value="4" label="微信å°ç¨åº"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="ç»å½æ¶é´" prop="loginTime"> |
| | | <el-form-item label="æ¶é´" prop="loginTime"> |
| | | <el-date-picker |
| | | v-model="searchDateRange" |
| | | type="datetimerange" |
| | |
| | | end-placeholder="ç»ææ¶é´" |
| | | @change="handleSearchTimeChange" |
| | | ></el-date-picker> |
| | | </el-form-item> --> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button :loading="isWorking.export" @click="exportExcel">导åº</el-button> |
| | |
| | | public class SystemDictController extends BaseController { |
| | | |
| | | @Autowired |
| | | private SystemDictService systemDictService; |
| | | private SystemDictService systemDictService ; |
| | | |
| | | @Autowired |
| | | private SystemDictBiz systemDictBiz; |
| | |
| | | timeout: PT3H #表示12å°æ¶ |
| | | |
| | | spring: |
| | | # æ°æ®æºé
ç½® |
| | | |
| | | datasource: |
| | | url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/doumee_mes_standard_pro?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8 |