From f414b2494547116c058a135c4e37ab402cecaf2b Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期四, 30 十月 2025 17:02:21 +0800
Subject: [PATCH] 完善首件检验单 逻辑 添加 检验项目 任务单 流转卡 工序 产品 检验仪器选单弹出窗口
---
components/ZLGL/ICMOBillPopup.vue | 365 +++++++++
components/ZLGL/SampleSchemePopup.vue | 2
pages/ZLGL/shoujianjianyan/form.vue | 463 ++++++++++-
components/ZLGL/CheckItemPopup.vue | 269 ++++++
components/ZLGL/MaterialPopup.vue | 306 +++++++
components/ZLGL/ProcExchBillPopup.vue | 369 +++++++++
manifest.json | 4
pages/index/login.vue | 3
components/ZLGL/ProcessPopup.vue | 269 ++++++
pages/index/index.vue | 11
components/ZLGL/InspectMentPopup.vue | 288 +++++++
pages/shengchanlingliao/form.vue | 28
12 files changed, 2,313 insertions(+), 64 deletions(-)
diff --git a/components/ZLGL/CheckItemPopup.vue b/components/ZLGL/CheckItemPopup.vue
new file mode 100644
index 0000000..f08c2af
--- /dev/null
+++ b/components/ZLGL/CheckItemPopup.vue
@@ -0,0 +1,269 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>浠g爜: </text></view>
+ <view class="right"><input type="text" v-model="HCode" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鍚嶇О: </text></view>
+ <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['鍚嶇О']" :extra="`浠g爜: ${bill['浠g爜']}`"
+ @tap="clickCard(bill, index)">
+ <view class="item">
+ <view class="left">妫�楠岄」鐩被鍒�: </view>
+ <view class="right">{{bill['妫�楠岄」鐩被鍒�']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">绛夌骇: </view>
+ <view class="right">{{bill['绛夌骇']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">绂佺敤鏍囪: </view>
+ <view class="right">{{bill['绂佺敤鏍囪']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">澶囨敞: </view>
+ <view class="right">{{bill['澶囨敞']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤鏍囪: </view>
+ <view class="right">{{bill['浣跨敤鏍囪']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤缁勭粐: </view>
+ <view class="right">{{bill['浣跨敤缁勭粐鍚嶇О']}}</view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size"
+ :total="length"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HName: '',
+ HCode: '',
+ HBillList: [],
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere = ` and 绂佺敤鏍囪 !='Y' and ISNULL(瀹℃牳浜�,'')!='' and 浣跨敤缁勭粐鍚嶇О = '${ uni.getStorageSync("Organization")}'`
+
+ if (this.HCode) {
+ swhere += ` and 浠g爜 like '%${this.HCode}%'`
+ }
+ if (this.HName) {
+ swhere += ` and 鍚嶇О like '%${this.HName}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = 0
+ this.page = 0
+ this.curPage = 1
+ CommonUtils.doRequest(
+ "/Gy_CheckItem/list", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc']
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ this.length = Array.from(data).length
+ const result = [];
+ for (let i = 0; i < data.length; i += this.size) {
+ result.push(data.slice(i, i + this.size));
+ }
+ this.HBillList = result
+ this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: grid;
+ grid-template-columns: repeat(1, 1fr);
+ gap: 20rpx;
+
+ >view {
+ margin: 0 !important;
+ box-sizing: border-box;
+
+ }
+
+ .item {
+ .left {
+ display: inline-block;
+ width: 6rem;
+ }
+
+ .right {
+ display: inline-block;
+ }
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/ICMOBillPopup.vue b/components/ZLGL/ICMOBillPopup.vue
new file mode 100644
index 0000000..cb72dc2
--- /dev/null
+++ b/components/ZLGL/ICMOBillPopup.vue
@@ -0,0 +1,365 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>鏃ユ湡: </text></view>
+ <view class="daterange" style="flex: 1;">
+ <view class="right general">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="HBeginDate">
+ <view>{{HBeginDate}}</view>
+ </uni-datetime-picker>
+ </view>
+ <view>鈥�</view>
+ <view class="right general">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="HEndDate">
+ <view>{{HEndDate}}</view>
+ </uni-datetime-picker>
+ </view>
+ </view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鐗╂枡缂栫爜: </text></view>
+ <view class="right"><input type="text" v-model="HCode" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>涓氬姟鐘舵��: </text></view>
+ <view class="right">
+ <uni-combox :candidates="HStatusList" v-model="HStatus"></uni-combox>
+ </view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList" :key="index" :title="bill['鏃ユ湡']" :extra="`${bill['鏃ユ湡']}`"
+ @tap="clickCard(bill, index)">
+ <view class="item-wrapper">
+ <view class="item" v-if="bill['鍗曟嵁鐘舵��']">
+ <view class="left">鍗曟嵁鐘舵��: </view>
+ <view class="right">{{bill['鍗曟嵁鐘舵��']}}</view>
+ </view>
+ <view class="item" v-if="bill['鐘舵��']">
+ <view class="left" >鐘舵��: </view>
+ <view class="right">{{bill['鐘舵��']}}</view>
+ </view>
+ <view class="item" v-if="bill['棰嗘枡鐘舵��']">
+ <view class="left" >棰嗘枡鐘舵��: </view>
+ <view class="right">{{bill['棰嗘枡鐘舵��']}}</view>
+ </view>
+ <view class="item" v-if="bill['鏄惁鎺掍骇']">
+ <view class="left" >鏄惁鎺掍骇: </view>
+ <view class="right">{{bill['鏄惁鎺掍骇']}}</view>
+ </view>
+ <view class="item" v-if="bill['宸叉眹鎶ユ暟閲�']">
+ <view class="left" >宸叉眹鎶ユ暟閲�: </view>
+ <view class="right">{{bill['宸叉眹鎶ユ暟閲�']}}</view>
+ </view>
+ <view class="item" v-if="bill['宸叉眹鎶ュ鏍告暟閲�']">
+ <view class="left" >宸叉眹鎶ュ鏍告暟閲�: </view>
+ <view class="right">{{bill['宸叉眹鎶ュ鏍告暟閲�']}}</view>
+ </view>
+ <view class="item" v-if="bill['宸ヨ壓璺嚎浠g爜']">
+ <view class="left" >宸ヨ壓璺嚎浠g爜: </view>
+ <view class="right">{{bill['宸ヨ壓璺嚎浠g爜']}}</view>
+ </view>
+ <view class="item" v-if="bill['宸ヨ壓璺嚎']">
+ <view class="left" >宸ヨ壓璺嚎: </view>
+ <view class="right">{{bill['宸ヨ壓璺嚎']}}</view>
+ </view>
+ <view class="item" v-if="bill['榻愬鏁伴噺']">
+ <view class="left" >榻愬鏁伴噺: </view>
+ <view class="right">{{bill['榻愬鏁伴噺']}}</view>
+ </view>
+ <view class="item" v-if="bill['浜у搧浠g爜']">
+ <view class="left">浜у搧浠g爜: </view>
+ <view class="right">{{bill['浜у搧浠g爜']}}</view>
+ </view>
+ <view class="item" v-if="bill['浜у搧鍚嶇О']">
+ <view class="left" >浜у搧鍚嶇О: </view>
+ <view class="right">{{bill['浜у搧鍚嶇О']}}</view>
+ </view>
+ <view class="item" v-if="bill['瑙勬牸鍨嬪彿']">
+ <view class="left">瑙勬牸鍨嬪彿: </view>
+ <view class="right">{{bill['瑙勬牸鍨嬪彿']}}</view>
+ </view>
+ <view class="item" v-if="bill['璁¢噺鍗曚綅浠g爜']">
+ <view class="left" >璁¢噺鍗曚綅浠g爜: </view>
+ <view class="right">{{bill['璁¢噺鍗曚綅浠g爜']}}</view>
+ </view>
+ <view class="item" v-if="bill['璁¢噺鍗曚綅']">
+ <view class="left">璁¢噺鍗曚綅: </view>
+ <view class="right">{{bill['璁¢噺鍗曚綅']}}</view>
+ </view>
+ <view class="item" v-if="bill['鐢熶骇浠诲姟鍗曟暟閲�']">
+ <view class="left">鐢熶骇浠诲姟鍗曟暟閲�: </view>
+ <view class="right">{{bill['鐢熶骇浠诲姟鍗曟暟閲�']}}</view>
+ </view>
+ <view class="item" v-if="bill['娴佽浆鍗℃暟閲�']">
+ <view class="left">娴佽浆鍗℃暟閲�: </view>
+ <view class="right">{{bill['娴佽浆鍗℃暟閲�']}}</view>
+ </view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size" :total="length"
+ @update:modelValue="pageUpdate"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HStatus: '寮�宸�',
+ HStatusList: ['寮�宸�', '璁″垝', '璁″垝纭', '涓嬭揪', '鍏ㄩ儴', '瀹屽伐', '缁撴'],
+ HCode: '',
+ HBillList: [],
+ HBeginDate: dayjs(new Date()).subtract(30, 'd').format("YYYY-MM-DD"),
+ HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ async pageUpdate(e) {
+ console.log('e: ', e);
+ this.curPage = e
+ await this.$nextTick()
+ this.getBillList()
+ },
+ popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere =
+ ` and 鍗曟嵁鐘舵�� = '宸插鏍�' and 琛岀姸鎬� = '' and HPRDORGID = '${uni.getStorageSync("OrganizationID")}'`
+
+ if (this.HBeginDate && this.HEndDate) {
+ sWhere += ` and CONVERT(varchar(100),鏃ユ湡, 23) between '${this.HBeginDate}' and '${this.HEndDate}'`
+ }
+ if (this.HCode) {
+ sWhere += ` and 鐗╂枡缂栫爜 like '%${this.HCode}%'`
+ }
+ if (this.HStatus) {
+ sWhere += ` and 鐘舵�� like '%${this.HStatus}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = this.length || 0
+ this.page = 0
+ this.curPage = this.curPage || 1
+ CommonUtils.doRequest(
+ "/LEMS/MES_IF_ICMOBillList_Json_byPage", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc'],
+ Organization: uni.getStorageSync("Organization"),
+ page: this.curPage,
+ size: this.size
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count > 0) {
+ this.length = count
+ // const result = [];
+ // for (let i = 0; i < data.length; i += this.size) {
+ // result.push(data.slice(i, i + this.size));
+ // }
+ this.HBillList = data
+ // this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ button {}
+
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+
+ .uni-combox {
+ padding: 0;
+ height: auto;
+
+ .uni-input-placeholder,
+ .uni-input-input {
+ font-size: 26rpx;
+ }
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+
+ .item-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 8rpx 0;
+ }
+
+ view {
+ margin: 0 !important;
+ box-sizing: border-box;
+
+ }
+
+ .item {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+
+ .left {
+ padding: 0 20rpx;
+ }
+
+ .right {}
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/InspectMentPopup.vue b/components/ZLGL/InspectMentPopup.vue
new file mode 100644
index 0000000..401b4e5
--- /dev/null
+++ b/components/ZLGL/InspectMentPopup.vue
@@ -0,0 +1,288 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>浠g爜: </text></view>
+ <view class="right"><input type="text" v-model="HCode" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鍚嶇О: </text></view>
+ <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['妫�楠屼华鍣ㄥ悕绉�']"
+ :extra="`浠g爜: ${bill['妫�楠屼华鍣ㄤ唬鐮�']}`" @tap="clickCard(bill, index)">
+ <view class="item-wrapper">
+ <view class="item">
+ <view class="left">鏍″噯鐘舵��: </view>
+ <view class="right">{{bill['鏍″噯鐘舵��']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">鏍″噯鏃ユ湡: </view>
+ <view class="right">{{dayjs(bill['鏍″噯鏃ユ湡']).format("YYYY-MM-DD")}}</view>
+ </view>
+ <view class="item">
+ <view class="left">鏈夋晥鏃ユ湡: </view>
+ <view class="right">{{dayjs(bill['鏈夋晥鏃ユ湡']).format("YYYY-MM-DD")}}</view>
+ </view>
+ <view class="item">
+ <view class="left">鍒版湡澶╂暟: </view>
+ <view class="right">{{bill['鍒版湡澶╂暟']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">绂佺敤鏍囧織: </view>
+ <view class="right">{{bill['绂佺敤鏍囧織']}}</view>
+ </view>
+ <view class="item" v-if="bill['澶囨敞']">
+ <view class="left">澶囨敞: </view>
+ <view class="right">{{bill['澶囨敞']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤鐘舵��: </view>
+ <view class="right">{{bill['浣跨敤鐘舵��']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤缁勭粐: </view>
+ <view class="right">{{bill['浣跨敤缁勭粐鍚嶇О']}}</view>
+ </view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="" v-model="curPage" :pageSize="size"
+ :total="length"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HName: '',
+ HCode: '',
+ HBillList: [],
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere =
+ ` and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync("Organization")}' and 绂佺敤鏍囧織 !='鏄�' and ISNULL(瀹℃牳浜�,'')!='' `
+
+ if (this.HCode) {
+ swhere += ` and 妫�楠屼华鍣ㄤ唬鐮� like '%${this.HCode}%'`
+ }
+ if (this.HName) {
+ swhere += ` and 妫�楠屼华鍣ㄥ悕绉� like '%${this.HName}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = 0
+ this.page = 0
+ this.curPage = 1
+ CommonUtils.doRequest(
+ "/Gy_BadReason/Gy_InspectInstruMentList", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc']
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ this.length = Array.from(data).length
+ const result = [];
+ for (let i = 0; i < data.length; i += this.size) {
+ result.push(data.slice(i, i + this.size));
+ }
+ this.HBillList = result
+ this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+
+ view {
+ margin: 0 !important;
+ box-sizing: border-box;
+ }
+ .item-wrapper{
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 8rpx 20rpx;
+ }
+
+ .item {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+
+
+ .left {
+ width: 5rem;
+ }
+
+ .right {}
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/MaterialPopup.vue b/components/ZLGL/MaterialPopup.vue
new file mode 100644
index 0000000..9561b5b
--- /dev/null
+++ b/components/ZLGL/MaterialPopup.vue
@@ -0,0 +1,306 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>鐗╂枡浠g爜: </text></view>
+ <view class="right"><input type="text" v-model="HCode" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鐗╂枡鍚嶇О: </text></view>
+ <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList" :key="index" :title="bill['鐗╂枡鍚嶇О']"
+ :extra="`浠g爜: ${bill['鐗╂枡浠g爜']}`" @tap="clickCard(bill, index)">
+ <view class="item-wrapper">
+ <view class="item">
+ <view class="left" v-if="bill['瑙勬牸鍨嬪彿'].trim()">瑙勬牸鍨嬪彿: </view>
+ <view class="right">{{bill['瑙勬牸鍨嬪彿']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['璁¢噺鍗曚綅鍚嶇О']">璁¢噺鍗曚綅鍚嶇О: </view>
+ <view class="right">{{bill['璁¢噺鍗曚綅鍚嶇О']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['浠撳簱鍚嶇О']">浠撳簱鍚嶇О: </view>
+ <view class="right">{{bill['浠撳簱鍚嶇О']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['鐗╂枡鍒嗙被鍚嶇О']">鐗╂枡鍒嗙被鍚嶇О: </view>
+ <view class="right">{{bill['鐗╂枡鍒嗙被鍚嶇О']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['鐗╂枡灞炴��']">鐗╂枡灞炴��: </view>
+ <view class="right">{{bill['鐗╂枡灞炴��']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['鍩烘湰璁¢噺鍗曚綅']">鍩烘湰璁¢噺鍗曚綅: </view>
+ <view class="right">{{bill['鍩烘湰璁¢噺鍗曚綅']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['浜嬩笟閮�']">浜嬩笟閮�: </view>
+ <view class="right">{{bill['浜嬩笟閮�']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['缁勭粐鍚嶇О']">缁勭粐鍚嶇О: </view>
+ <view class="right">{{bill['缁勭粐鍚嶇О']}}</view>
+ </view>
+ <view class="item">
+ <view class="left" v-if="bill['澶囨敞']">澶囨敞: </view>
+ <view class="right">{{bill['澶囨敞']}}</view>
+ </view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size" :total="length"
+ @update:modelValue="pageUpdate"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HName: '',
+ HCode: '',
+ HBillList: [],
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ async pageUpdate(e) {
+ console.log('e: ', e);
+ this.curPage = e
+ await this.$nextTick()
+ this.getBillList()
+ },
+ popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere =
+ ` and 1=1 and 绂佺敤鏍囪 = '' and ISNULL(瀹℃牳浜�,'') <> '' and HUSEORGID = '${uni.getStorageSync("OrganizationID")}'`
+
+ if (this.HCode) {
+ sWhere += ` and 鐗╂枡浠g爜 like '%${this.HCode}%'`
+ }
+ if (this.HName) {
+ sWhere += ` and 鐗╂枡鍚嶇О like '%${this.HName}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = this.length || 0
+ this.page = 0
+ this.curPage = this.curPage || 1
+ CommonUtils.doRequest(
+ "/Gy_Material/page", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc'],
+ Organization: uni.getStorageSync("Organization"),
+ page: this.curPage,
+ size: this.size
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count > 0) {
+ this.length = count
+ // const result = [];
+ // for (let i = 0; i < data.length; i += this.size) {
+ // result.push(data.slice(i, i + this.size));
+ // }
+ this.HBillList = data
+ // this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ button {
+
+ }
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+
+ .item-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 8rpx 0;
+ }
+
+ view {
+ margin: 0 !important;
+ box-sizing: border-box;
+
+ }
+
+ .item {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+
+ .left {
+ padding: 0 20rpx;
+ }
+
+ .right {
+
+ }
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/ProcExchBillPopup.vue b/components/ZLGL/ProcExchBillPopup.vue
new file mode 100644
index 0000000..85aa2ee
--- /dev/null
+++ b/components/ZLGL/ProcExchBillPopup.vue
@@ -0,0 +1,369 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>鏃ユ湡: </text></view>
+ <view class="daterange" style="flex: 1;">
+ <view class="right general">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="HBeginDate">
+ <view>{{HBeginDate}}</view>
+ </uni-datetime-picker>
+ </view>
+ <view>鈥�</view>
+ <view class="right general">
+ <uni-datetime-picker type="date" :clear-icon="false" v-model="HEndDate">
+ <view>{{HEndDate}}</view>
+ </uni-datetime-picker>
+ </view>
+ </view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鐢熶骇璁㈠崟鍙�: </text></view>
+ <view class="right"><input type="text" v-model="HPrdOrderBillNo" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>鐢熶骇杞﹂棿: </text></view>
+ <view class="right">
+ <uni-combox :candidates="HWorkShopList" v-model="HWorkShop"></uni-combox>
+ </view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList" :key="index" :title="bill['鍗曟嵁鍙�']" :extra="`${bill['鏃ユ湡']}`"
+ @tap="clickCard(bill, index)">
+ <view class="item-wrapper">
+ <view class="item" v-if="bill['鐢熶骇璁㈠崟鍙�']">
+ <view class="left">鐢熶骇璁㈠崟鍙�: </view>
+ <view class="right">{{bill['鐢熶骇璁㈠崟鍙�']}}</view>
+ </view>
+ <view class="item" v-if="bill['鍗曟嵁鐘舵��']">
+ <view class="left">鍗曟嵁鐘舵��: </view>
+ <view class="right">{{bill['鍗曟嵁鐘舵��']}}</view>
+ </view>
+ <view class="item" v-if="bill['浜у搧浠g爜']">
+ <view class="left">浜у搧浠g爜: </view>
+ <view class="right">{{bill['浜у搧浠g爜']}}</view>
+ </view>
+ <view class="item" v-if="bill['浜у搧鍚嶇О']">
+ <view class="left">浜у搧鍚嶇О: </view>
+ <view class="right">{{bill['浜у搧鍚嶇О']}}</view>
+ </view>
+ <view class="item" v-if="bill['浜у搧瑙勬牸']">
+ <view class="left">浜у搧瑙勬牸: </view>
+ <view class="right">{{bill['浜у搧瑙勬牸']}}</view>
+ </view>
+ <view class="item" v-if="bill['娴佽浆鍗℃暟閲�']">
+ <view class="left">娴佽浆鍗℃暟閲�: </view>
+ <view class="right">{{bill['娴佽浆鍗℃暟閲�']}}</view>
+ </view>
+ <view class="item" v-if="bill['鍗曚綅']">
+ <view class="left">鍗曚綅: </view>
+ <view class="right">{{bill['鍗曚綅']}}</view>
+ </view>
+ <view class="item" v-if="bill['瀹㈡埛']">
+ <view class="left">瀹㈡埛: </view>
+ <view class="right">{{bill['瀹㈡埛']}}</view>
+ </view>
+ <view class="item" v-if="bill['涓氬姟鍛�']">
+ <view class="left">涓氬姟鍛�: </view>
+ <view class="right">{{bill['涓氬姟鍛�']}}</view>
+ </view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size" :total="length"
+ @update:modelValue="pageUpdate"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HWorkShop: '鍏ㄩ儴杞﹂棿',
+ HWorkShopList: ['鍏ㄩ儴杞﹂棿'],
+ HWorkShopValues: [],
+ HCode: '',
+ HBillList: [],
+ HPrdOrderBillNo: '',
+ HBeginDate: dayjs(new Date()).subtract(30, 'd').format("YYYY-MM-DD"),
+ HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ async pageUpdate(e) {
+ console.log('e: ', e);
+ this.curPage = e
+ await this.$nextTick()
+ this.getBillList()
+ },
+ async popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async getDept() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/Sc_ICMOBill/GetHDeptList',
+ data: {
+ "HOrgID": uni.getStorageSync("OrganizationID")
+ }
+ })
+
+ let {data, count, Message} = res.data
+ if(count == 1) {
+ this.HWorkShopList = ['鍏ㄩ儴杞﹂棿']
+ this.HWorkShopList.push(...Array.from(data).map(e => e.HName))
+ this.HWorkShopValues = data
+ }else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栬溅闂村け璐�: ${Message}`
+ })
+ }
+ }catch(err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栬溅闂村け璐�: ${err}`
+ })
+ }
+
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere =
+ ` and 鎵撳嵃娆℃暟 >= 0 and HPRDORGID = '${uni.getStorageSync("OrganizationID")}' and ISNULL(瀹℃牳浜�,'') != '' and ISNULL(鍏抽棴浜�,'')='' and HBillSubType<>'SUB'`
+
+ if (this.HBeginDate && this.HEndDate) {
+ sWhere += ` and CONVERT(varchar(100),鏃ユ湡, 23) between '${this.HBeginDate}' and '${this.HEndDate}'`
+ }
+ if (this.HPrdOrderBillNo) {
+ sWhere += ` and 鐢熶骇璁㈠崟鍙� like'%${this.HPrdOrderBillNo}%`
+ }
+ if (this.HWorkShop != '鍏ㄩ儴杞﹂棿') {
+ let workshopValue = this.HWorkShopValues.find(e => e.HName = this.HStatus )
+ sWhere += ` and HWorkShopID like '%${workshopValue.HItemID}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = this.length || 0
+ this.page = 0
+ this.curPage = this.curPage || 1
+ CommonUtils.doRequest(
+ "/LEMS/Sc_ProcessExchangeBillList_Query_byPage", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc'],
+ Organization: uni.getStorageSync("Organization"),
+ page: this.curPage,
+ size: this.size,
+ HBillSubType: 3772
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count > 0) {
+ this.length = count
+ // const result = [];
+ // for (let i = 0; i < data.length; i += this.size) {
+ // result.push(data.slice(i, i + this.size));
+ // }
+ this.HBillList = data
+ // this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ button {}
+
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+
+ .uni-combox {
+ padding: 0;
+ height: auto;
+
+ .uni-input-placeholder,
+ .uni-input-input {
+ font-size: 26rpx;
+ }
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 20rpx;
+
+ .item-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 8rpx 0;
+ }
+
+ view {
+ margin: 0 !important;
+ box-sizing: border-box;
+
+ }
+
+ .item {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+
+ .left {
+ padding: 0 20rpx;
+ }
+
+ .right {}
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/ProcessPopup.vue b/components/ZLGL/ProcessPopup.vue
new file mode 100644
index 0000000..7420f34
--- /dev/null
+++ b/components/ZLGL/ProcessPopup.vue
@@ -0,0 +1,269 @@
+<template>
+ <view>
+ <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
+ <view class="content">
+ <view class="search-condition">
+ <view class="title"><text>宸ュ簭浠g爜: </text></view>
+ <view class="right"><input type="text" v-model="HCode" @confirm="getBillList" /></view>
+ </view>
+ <view class="search-condition">
+ <view class="title"><text>宸ュ簭鍚嶇О: </text></view>
+ <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
+ </view>
+ <view class="buttons">
+ <button size="mini" type="primary" @click="search">鏌ヨ</button>
+ <view style="flex: 1;"></view>
+ <button size="mini" type="primary" @click="exit">閫�鍑�</button>
+ </view>
+ <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
+ <view class="options-wrapper" v-show="HBillList.length != 0">
+ <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+ v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['宸ュ簭鍚嶇О']" :extra="`${bill['宸ュ簭浠g爜']}`"
+ @tap="clickCard(bill, index)">
+ <view class="item">
+ <view class="left">妫�楠岄」鐩被鍒�: </view>
+ <view class="right">{{bill['妫�楠岄」鐩被鍒�']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">绛夌骇: </view>
+ <view class="right">{{bill['绛夌骇']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">绂佺敤鏍囪: </view>
+ <view class="right">{{bill['绂佺敤鏍囪']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">澶囨敞: </view>
+ <view class="right">{{bill['澶囨敞']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤鏍囪: </view>
+ <view class="right">{{bill['浣跨敤鏍囪']}}</view>
+ </view>
+ <view class="item">
+ <view class="left">浣跨敤缁勭粐: </view>
+ <view class="right">{{bill['浣跨敤缁勭粐鍚嶇О']}}</view>
+ </view>
+ </uni-card>
+ </view>
+ <view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
+ </scroll-view>
+ <uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size"
+ :total="length"></uni-pagination>
+ </view>
+
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs';
+ import {
+ CommonUtils
+ } from '@/utils/common';
+ import {
+ getUserInfo
+ } from '@/utils/auth';
+ export default {
+ name: "SampleSchemePopup",
+ emits: ["update:modelValue"],
+ data() {
+ return {
+ dayjs: dayjs,
+ enablefocus: false,
+ size: 20,
+ curPage: 1,
+ length: 0,
+ page: 0,
+ HName: '',
+ HCode: '',
+ HBillList: [],
+ panelHeight: 0,
+
+ multiSouceBillList: []
+ };
+ },
+ props: {
+ bindKey: {
+ type: [String, Number],
+ required: true
+ },
+ HStockOrgID: {
+ type: [String, Number],
+ },
+ },
+ methods: {
+ popupChangeHandler(e) {
+ if (e.show === true) {
+ this.getBillList()
+ }
+ },
+ async exit() {
+ this.size = 20
+ this.curPage = 1
+ this.length = 0
+ this.page = 0
+ this.HSourceBillNo = ''
+ this.HMater = ''
+ this.HCustom = ''
+ this.HBillList = []
+ this.enablefocus = false
+ this.multiSouceBillList = []
+ // 闇�瑕佺瓑寰呴〉闈㈠唴鐨勬暟鎹祴鍊煎畬姣�
+ await this.$nextTick()
+ this.$refs.popup.close();
+ },
+ search() {
+ this.getBillList()
+ },
+ showPopup() {
+ this.$refs.popup.open();
+ },
+ clickCard(bill, index) {
+ let retVal = {}
+ retVal[this.bindKey] = bill
+ console.log('retVal: ', retVal);
+ this.$emit("update", {
+ retVal: retVal
+ })
+ },
+ getsWhere() {
+ let sWhere = ` and 绂佺敤鏍囪 !='Y' and ISNULL(瀹℃牳浜�,'')!='' and HUSEORGID = '${ uni.getStorageSync("OrganizationID")}'`
+
+ if (this.HCode) {
+ swhere += ` and 宸ュ簭浠g爜 like '%${this.HCode}%'`
+ }
+ if (this.HName) {
+ swhere += ` and 宸ュ簭鍚嶇О like '%${this.HName}%'`
+ }
+ return sWhere
+ },
+ getBillList() {
+ this.HBillList = []
+ this.length = 0
+ this.page = 0
+ this.curPage = 1
+ CommonUtils.doRequest(
+ "/Gy_Process/list", {
+ sWhere: this.getsWhere(),
+ user: getUserInfo()['Czymc']
+ },
+ (res) => {
+ let {
+ data,
+ count,
+ Message
+ } = res.data
+ if (count == 1) {
+ this.length = Array.from(data).length
+ const result = [];
+ for (let i = 0; i < data.length; i += this.size) {
+ result.push(data.slice(i, i + this.size));
+ }
+ this.HBillList = result
+ this.page = result.length
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ } else {
+ setTimeout(() => {
+ this.enablefocus = true
+ }, 500)
+ uni.showToast({
+ icon: 'none',
+ title: Message
+ })
+ }
+ }
+ )
+ },
+ },
+ }
+</script>
+
+<style lang="scss">
+ .content {
+ box-sizing: border-box;
+ border-radius: 15rpx 15rpx 0 0;
+ padding: 20rpx 20rpx 40rpx 20rpx;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ gap: 10rpx;
+
+ .search-condition {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 20rpx;
+ font-size: 30rpx;
+
+ .title {
+ width: 5rem;
+ text-align: right;
+ }
+
+ .right {
+ flex: 1;
+ border-radius: 22rpx;
+ border: 1px solid #acacac;
+ height: auto;
+ padding: 8rpx 16rpx;
+
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ }
+ }
+ }
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ gap: 20rpx;
+ justify-content: flex-end;
+
+ >button {
+ display: inline-flex;
+ width: 4rem;
+ }
+ }
+
+ .options-wrapper {
+ padding: 20rpx;
+ display: grid;
+ grid-template-columns: repeat(1, 1fr);
+ gap: 20rpx;
+
+ >view {
+ margin: 0 !important;
+ box-sizing: border-box;
+
+ }
+
+ .item {
+ .left {
+ display: inline-block;
+ width: 6rem;
+ }
+
+ .right {
+ display: inline-block;
+ }
+ }
+ }
+
+ .uni-card--is-active {
+ background-color: rgba(0, 122, 255, 0.2);
+ }
+
+ .daterange {
+ display: flex;
+ flex-direction: row;
+ gap: 10rpx;
+ justify-content: center;
+ align-items: center;
+
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/components/ZLGL/SampleSchemePopup.vue b/components/ZLGL/SampleSchemePopup.vue
index 7df8b14..a419f8c 100644
--- a/components/ZLGL/SampleSchemePopup.vue
+++ b/components/ZLGL/SampleSchemePopup.vue
@@ -60,7 +60,7 @@
<view class="over" v-show="HBillList.length == 0">鏆傛棤鏁版嵁</view>
</scroll-view>
<uni-pagination id="#pagination" title="鏍囬鏂囧瓧" v-model="curPage" :pageSize="size"
- :total="length"></uni-pagination>
+ :total="length" ></uni-pagination>
</view>
</uni-popup>
diff --git a/manifest.json b/manifest.json
index c0a3ed6..46f764f 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "鏅轰簯LMES",
"appid" : "__UNI__B002F49",
"description" : "",
- "versionName" : "2.0.7",
- "versionCode" : 207,
+ "versionName" : "2.0.9",
+ "versionCode" : 209,
"transformPx" : false,
/* 5+App鐗规湁鐩稿叧 */
"app-plus" : {
diff --git a/pages/ZLGL/shoujianjianyan/form.vue b/pages/ZLGL/shoujianjianyan/form.vue
index 8da4f9e..a22e945 100644
--- a/pages/ZLGL/shoujianjianyan/form.vue
+++ b/pages/ZLGL/shoujianjianyan/form.vue
@@ -29,62 +29,75 @@
<view class="form-item">
<view class="left">鐢熶骇璧勬簮</view>
<view class="right">
- <input type="text" value="" />
+ <uni-combox :candidates="GySourceNameList" placeholder="璇烽�夋嫨鐢熶骇璧勬簮" v-model="hform.HSourceName"
+ @update:modelValue="HSourceChange"></uni-combox>
</view>
</view>
<view class="form-item">
<view class="left">鐢熶骇鐝</view>
<view class="right">
- <input type="text" value="" />
- </view>
- </view>
- <view class="form-item">
- <view class="left">鐢熶骇璧勬簮</view>
- <view class="right">
- <input type="text" value="" />
+ <uni-combox :candidates="GyWorkShiftNameList" placeholder="璇烽�夋嫨鐢熶骇鐝"
+ v-model="hform.HShiftsName" @update:modelValue="HWorkShiftChange"></uni-combox>
</view>
</view>
<view class="form-item">
<view class="left">浠诲姟鍗曞彿</view>
- <view class="right">
- <input type="text" value="" />
+ <view class="right disabled">
+ <input type="text" :value="hform.HICMOBillNo" disabled />
</view>
+ <view class="icon-wrapper-big"><uni-icons type="search" size="20"
+ @click="showSelectorModule(hform, 5)"></uni-icons></view>
</view>
<view class="form-item">
<view class="left">浠诲姟鍗曟暟閲�</view>
<view class="right">
- <input type="number" value="" />
+ <input type="number" v-model="hform.HICMOQty" />
</view>
</view>
<view class="form-item">
<view class="left">娴佽浆鍗″彿</view>
- <view class="right">
- <input type="text" value="" />
+ <view class="right disabled">
+ <input type="text" :value="hform.HProcExchBillNo" disabled />
</view>
+ <view class="icon-wrapper-big"><uni-icons type="search" size="20"
+ @click="showSelectorModule(hform, 6)"></uni-icons></view>
</view>
<view class="form-item">
<view class="left">娴佽浆鍗℃暟閲�</view>
<view class="right">
- <input type="number" value="" />
+ <input type="number" v-model="hform.HProcExchQty" />
+ </view>
+ </view>
+ <view class="form-item">
+ <view class="left">浜у搧浠g爜</view>
+ <view class="right disabled">
+ <input type="text" disabled :value="hform.HMaterNumber" />
+ </view>
+ <view class="icon-wrapper-big">
+ <uni-icons type="search" size="20" @click="showSelectorModule(hform, 4)"></uni-icons>
</view>
</view>
<view class="form-item">
<view class="left">浜у搧鍚嶇О</view>
- <view class="right">
- <input type="text" value="" />
+ <view class="right disabled">
+ <input type="text" disabled :value="hform.HMaterName" />
</view>
</view>
<view class="form-item">
<view class="left">妫�楠屽憳</view>
<view class="right">
- <input type="text" value="" />
+ <uni-combox :candidates="GyFirstCheckEmpNameList" placeholder="璇烽�夋嫨妫�楠屽憳"
+ :v-model="hform.HFirstCheckEmpName"
+ @update:modelValue="HFirstCheckEmpChange"></uni-combox>
</view>
</view>
<view class="form-item">
<view class="left">妫�楠屾柟妗�</view>
- <view class="right">
- <input type="text" value="" />
+ <view class="right disabled">
+ <input type="text" disabled value="" />
</view>
+ <view class="icon-wrapper-big"><uni-icons type="search" size="20"
+ @click="showSelectorModule(hform, 7)"></uni-icons></view>
</view>
<view class="form-item">
<view class="left">鎵瑰彿</view>
@@ -110,9 +123,11 @@
</view>
<view class="form-item">
<view class="left">宸ュ簭</view>
- <view class="right">
- <input type="text" value="" />
+ <view class="right disabled">
+ <input type="text" disabled :value="hform.HProcName" />
</view>
+ <view class="icon-wrapper-big"><uni-icons type="search" size="20"
+ @click="showSelectorModule(hform, 8)"></uni-icons></view>
</view>
<view class="form-item">
<view class="left">澶囨敞</view>
@@ -217,13 +232,13 @@
<view style="flex-shrink: 0;"><text>妫�楠岄」鐩細</text></view>
<input type="text" :value="checkItem.HQCCheckItemName" disabled="" />
<view class="icon-wrapper"><uni-icons type="search" size="16"
- @click="showHQCCheckItemSelector"></uni-icons></view>
+ @click="showSelectorModule(checkItem, 2)"></uni-icons></view>
</view>
<view class="detail editable">
<view style="flex-shrink: 0;"><text>妫�楠屼华鍣細</text></view>
<input type="text" :value="checkItem.HInspectInstruMentName" disabled="" />
<view class="icon-wrapper"><uni-icons type="search" size="16"
- @click="showInspectInstruMentSelector"></uni-icons></view>
+ @click="showSelectorModule(checkItem, 3)"></uni-icons></view>
</view>
<view class="detail editable">
<view><text>缁撹锛�</text></view>
@@ -236,7 +251,7 @@
@change="HResultChange(checkItem.num, $event)" />
</view>
</view>
- <view class="detail editable">
+ <view class="detail editable" style="position: relative;">
<view style="flex-shrink: 0;"><text>鍒嗘瀽鏂规硶锛�</text></view>
<picker :range="arrayAnalysisMethod" range-key="name"
@change="HAnalysisMethodChange(checkItem.num, $event)">
@@ -250,7 +265,7 @@
<view>
<switch type="checkbox" style="transform:scale(0.7);"
:checked="checkItem.HKeyInspect"
- @change="HKeyInspectChange(checkItem.num, $event)" />
+ @change="HKeyInspectChange(checkItem, $event)" />
</view>
</view>
<view class="detail" v-if="checkItem.HQCStd">
@@ -284,6 +299,7 @@
<text>骞冲潎鍊硷細</text>{{checkItem.HAvg}}
</view>
</view>
+ <view style="height: 20rpx;"></view>
<view class="more">
<view class="part" style="color: #da0000;" @tap.stop="removeCheckItem(checkItem)">
<uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;"
@@ -310,7 +326,7 @@
<view style="flex-shrink: 0;"><text>鎶芥牱鏂规锛�</text></view>
<input type="text" :value="SamplingItem.HSampleSchemeName" disabled />
<view class="icon-wrapper"><uni-icons type="search" size="16"
- @click="showHSampleSchemeNameSelector(SamplingItem)"></uni-icons></view>
+ @click="showSelectorModule(SamplingItem, 1)"></uni-icons></view>
</view>
<view class="detail editable">
<text>鎶芥牱绫诲瀷锛�</text>{{SamplingItem.HSamplingType}}
@@ -365,23 +381,53 @@
<button class="btn-a" size="mini" @tap="addNew">鏂板</button>
<button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button>
</view>
- <SampleSchemePopupVue ref="sampleSchemePopup" @update="SampleSchemeComplete" :bindKey="currentChechItemIDCache">
+ <SampleSchemePopupVue v-if="enablePopupModule == PopupModuleNameList[1]" ref="listPopup"
+ @update="SampleSchemeComplete" :bindKey="currentChechItemIDCache">
</SampleSchemePopupVue>
+ <CheckItemPopupVue v-if="enablePopupModule == PopupModuleNameList[2]" ref="listPopup"
+ @update="CheckItemComplete" :bindKey="currentChechItemIDCache">
+ </CheckItemPopupVue>
+ <InspectMentPopupVue v-if="enablePopupModule == PopupModuleNameList[3]" ref="listPopup"
+ @update="InspectMentComplete" :bindKey="currentChechItemIDCache">
+ </InspectMentPopupVue>
+ <MaterialPopupVue v-if="enablePopupModule == PopupModuleNameList[4]" ref="listPopup" @update="MaterComplete"
+ :bindKey="0">
+ </MaterialPopupVue>
+ <ICMOBillPopupVue v-if="enablePopupModule == PopupModuleNameList[5]" ref="listPopup" @update="ICMOBillComplete"
+ :bindKey="0"></ICMOBillPopupVue>
+ <ProcExchBillPopupVue v-if="enablePopupModule == PopupModuleNameList[6]" ref="listPopup" @update="ProcExchBillComplete"
+ :bindKey="0"></ProcExchBillPopupVue>
+ <ProcessPopupVue v-if="enablePopupModule == PopupModuleNameList[8]" ref="listPopup" @update="HProcComplete"
+ :bindKey="0"></ProcessPopupVue>
</view>
</template>
<script>
import dayjs from 'dayjs'
-import {
+ import {
CommonUtils
} from '../../../utils/common'
import InspectValueTemplateVue from '@/components/ZLGL/InspectValueTemplate.vue'
import SampleSchemePopupVue from '@/components/ZLGL/SampleSchemePopup.vue'
-import { getUserInfo } from '../../../utils/auth'
+ import CheckItemPopupVue from '@/components/ZLGL/CheckItemPopup.vue'
+ import InspectMentPopupVue from '../../../components/ZLGL/InspectMentPopup.vue'
+ import MaterialPopupVue from '../../../components/ZLGL/MaterialPopup.vue'
+ import ICMOBillPopupVue from '../../../components/ZLGL/ICMOBillPopup.vue'
+ import ProcExchBillPopupVue from '../../../components/ZLGL/ProcExchBillPopup.vue'
+ import ProcessPopupVue from '../../../components/ZLGL/ProcessPopup.vue'
+ import {
+ getUserInfo
+ } from '../../../utils/auth'
export default {
components: {
InspectValueTemplateVue,
- SampleSchemePopupVue
+ SampleSchemePopupVue,
+ CheckItemPopupVue,
+ InspectMentPopupVue,
+ MaterialPopupVue,
+ ICMOBillPopupVue,
+ ProcExchBillPopupVue,
+ ProcessPopupVue
},
computed: {
judgeConclusion: {
@@ -398,8 +444,24 @@
mainTabSelected: 1,
subTabSelected: 1,
+ // 鎺у埗褰撳墠鏄剧ず鐨勫脊绐楁ā鍧�
+ enablePopupModule: '',
+ PopupModuleNameList: ["", "SampleScheme", "CheckItem",
+ "InspectMent", "Material", "ICMOBill", "ProcExchBill", "QCScheme", "Process"
+ ],
// 褰撳墠鎿嶄綔鐨勬楠屽崟ID缂撳瓨
currentChechItemIDCache: -1,
+
+ // uni-combox 閫夋嫨鍣ㄤ娇鐢�
+ // 鐢熶骇璧勬簮
+ GySourceList: [],
+ GySourceNameList: [],
+ // 鐝
+ GyWorkShiftList: [],
+ GyWorkShiftNameList: [],
+ // 妫�楠屽憳
+ GyFirstCheckEmpList: [],
+ GyFirstCheckEmpNameList: [],
// 妫�楠屾柟妗�
arrayAnalysisMethod: [{
@@ -436,7 +498,7 @@
"HICMOBillNo": "",
"HICMOInterID": "0",
"HICMOEntryID": "1",
- "HICMOQty": "",
+ "HICMOQty": "0",
"HProcExchBillNo": "",
"HProcExchInterID": "0",
"HProcExchEntryID": "0",
@@ -444,8 +506,8 @@
"HMaterNumber": "",
"HMaterID": "0",
"HMaterName": "",
- "HFirstCheckEmpName": "",
- "HFirstCheckEmp":0,
+ "HFirstCheckEmpName": "",
+ "HFirstCheckEmp": 0,
"HQCSchemeName": "",
"HQCSchemeID": "0",
"HBatchNo": "",
@@ -521,11 +583,156 @@
}
},
methods: {
- async showHSampleSchemeNameSelector(item) {
- this.currentChechItemIDCache = item.num
+ // 妫�楠屽憳鍒濆鍖�
+ async InitHEmp() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/Gy_Employee/list',
+ data: {
+ sWhere: ` and 缁勭粐鍚嶇О = '${uni.getStorageSync("Organization")}' and 绂佺敤鏍囪 = ''and 瀹℃牳浜� !='' order by 閮ㄩ棬浠g爜`,
+ user: getUserInfo()['Czymc'],
+ Organization: uni.getStorageSync("Organization")
+ }
+ })
+
+ let {
+ data,
+ Message,
+ count
+ } = res.data
+
+ if (count == 1) {
+ console.log('data: ', data);
+ this.GyFirstCheckEmpList = data
+ this.GyFirstCheckEmpNameList = Array.from(data).map(e => e["鑱屽憳鍚嶇О"])
+ } else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栨楠屽憳澶辫触: ${Message}`
+ })
+ }
+
+ } catch (err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栨楠屽憳澶辫触: ${err}`
+ })
+ }
+ },
+ async HFirstCheckEmpChange(e) {
+ console.log('閫変腑妫�楠屽憳: ', e);
+ let index = this.GyFirstCheckEmpList.findIndex(elem => elem["鑱屽憳鍚嶇О"] == e)
+ if (index == -1) {
+ this.hform.HFirstCheckEmp = 0
+ this.hform.HFirstCheckEmpName = ''
+ return
+ }
+
+ this.hform.HFirstCheckEmp = this.GyFirstCheckEmpList[index]["HItemID"]
+ this.hform.HFirstCheckEmpName = this.GyFirstCheckEmpList[index]["鑱屽憳鍚嶇О"]
+ },
+ // 鐢熶骇鐝鍒濆鍖�
+ async InitHWorkShift() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
+ data: {
+ sWhere: ` and 绂佺敤鏍囪 = '' and ISNULL(瀹℃牳浜�,'') != '' and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync("Organization")}'`,
+ HMaker: getUserInfo()['Czymc']
+ }
+ })
+
+ let {
+ data,
+ Message,
+ count
+ } = res.data
+
+ if (count == 1) {
+ console.log('data: ', data);
+ this.GyWorkShiftList = data
+ this.GyWorkShiftNameList = Array.from(data).map(e => e["鐝鍚嶇О"])
+ } else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栫彮娆″け璐�: ${Message}`
+ })
+ }
+
+ } catch (err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栫彮娆″け璐�: ${err}`
+ })
+ }
+ },
+ async HWorkShiftChange(e) {
+ console.log('閫変腑鐝: ', e);
+ let index = this.GyWorkShiftList.findIndex(elem => elem["鐝鍚嶇О"] == e)
+ if (index == -1) {
+ this.hform.HWorkShiftID = 0
+ this.hform.HWorkShiftName = ''
+ return
+ }
+
+ this.hform.HWorkShiftID = this.GySourceList[index]["HInterID"]
+ this.hform.HWorkShiftName = this.GySourceList[index]["鐝鍚嶇О"]
+ },
+ // 鐢熶骇璧勬簮鏇存柊
+ // 鐢熶骇璧勬簮鍒濆鍖�
+ async InitHSource() {
+ try {
+ let res = await CommonUtils.doRequest2Async({
+ url: '/Gy_Source/list',
+ data: {
+ sWhere: `and 绂佺敤鏍囪 != 'Y' and ISNULL(瀹℃牳浜�,'') != '' and HUSEORGID = '100038'`,
+ user: getUserInfo()['Czymc']
+ }
+ })
+
+ let {
+ data,
+ Message,
+ count
+ } = res.data
+
+ if (count == 1) {
+ this.GySourceList = data
+ this.GySourceNameList = Array.from(data).map(e => e["鐢熶骇璧勬簮鍚嶇О"])
+ } else {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栫敓浜ц祫婧愬け璐�: ${Message}`
+ })
+ }
+
+ } catch (err) {
+ CommonUtils.showTips({
+ title: '娓╅Θ鎻愮ず',
+ message: `鍒濆鍖栫敓浜ц祫婧愬け璐�: ${err}`
+ })
+ }
+ },
+ // 鐢熶骇璧勬簮鏇存柊
+ async HSourceChange(e) {
+ console.log('閫変腑鐢熶骇璧勬簮: ', e);
+ let index = this.GySourceList.findIndex(elem => elem["鐢熶骇璧勬簮鍚嶇О"] == e)
+ if (index == -1) {
+ this.hform.HSourceID = 0
+ this.hform.HSourceName = ''
+ return
+ }
+
+ this.hform.HSourceID = this.GySourceList[index]["HItemID"]
+ this.hform.HSourceName = this.GySourceList[index]["鐢熶骇璧勬簮鍚嶇О"]
+ },
+ // 鏄剧ず寮圭獥
+ async showSelectorModule(item, index) {
+ this.currentChechItemIDCache = item.num || 0 // 0 琛ㄧず娌℃湁浠讳綍瀛愯〃琚�変腑
+ this.enablePopupModule = this.PopupModuleNameList[index]
console.log('this.$refs: ', this.$refs);
await this.$nextTick()
- this.$refs.sampleSchemePopup.showPopup()
+ this.$refs.listPopup.showPopup()
},
getAnalysisMethodDisplay(val) {
console.log('AnalysisMethodVal: ', val);
@@ -613,19 +820,39 @@
// 缁撹淇敼
HResultChange(id, e) {
console.log('e: ', e);
- this.checkItems[id]["HResult"] = e.detail.value ? 1 : 2
+ this.checkItems[id]["HResult"] = e.detail.value
},
// 妫�楠屾柟妗堜慨鏀�
HAnalysisMethodChange(id, e) {
console.log('e: ', e);
this.checkItems[id]["HAnalysisMethod"] = this.arrayAnalysisMethod[e.detail.value]["value"]
+
+ // 妫�鏌ユ槸鍚﹀彲浠ユ柊澧炴楠屽�奸」
+ this.setInspectValModule(this.checkItems[id])
},
// 閲嶇偣妫�鏌ヤ慨鏀�
HKeyInspectChange(id, e) {
console.log('e: ', e);
this.checkItems[id]["HKeyInspect"] = e.detail.value
},
- // 妫�楠屾柟妗堥�夋嫨缁撴潫
+ // 妫�楠岄」鐩繑鍥�
+ async CheckItemComplete(e) {
+ console.log('CheckItemRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.checkItems[key], {
+ "HQCCheckItemID": data["HItemID"],
+ "HQCCheckItemNumber": data["浠g爜"],
+ "HQCCheckItemName": data["鍚嶇О"],
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 妫�楠屾柟妗堣繑鍥�
async SampleSchemeComplete(e) {
console.log('SampleSchemeRet: ', e);
for (var key in e["retVal"]) {
@@ -648,18 +875,131 @@
"HSampleDamageQty": data["鏍锋湰鐮村潖鏁�"] || 0
})
await this.$nextTick()
- this.$refs.sampleSchemePopup.exit()
+ this.$refs.listPopup.exit()
this.setInspectValModule(this.checkItems[key])
+
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 妫�楠屼华鍣ㄨ繑鍥�
+ async InspectMentComplete(e) {
+ console.log('InspectInstruMentRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.checkItems[key], {
+ "HInspectInstruMentID": data["HItemID"],
+ "HInspectInstruMentNumber": data["妫�楠屼华鍣ㄤ唬鐮�"],
+ "HInspectInstruMentName": data["妫�楠屼华鍣ㄥ悕绉�"],
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 浜у搧浠g爜杩斿洖
+ async MaterComplete(e) {
+ console.log('MaterRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.hform, {
+ "HMaterNumber": data["鐗╂枡浠g爜"],
+ "HMaterName": data["鐗╂枡鍚嶇О"],
+ "HMaterID": data["HItemID"],
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 浠诲姟鍗曡繑鍥�
+ async ICMOBillComplete(e) {
+ console.log('ICMOBillRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.hform, {
+ "HICMOInterID": data.hmainid,
+ "HICMOEntryID": data.HEntryID,
+ "HICMOBillNo": data.鍗曟嵁鍙�,
+ "HMaterNumber": data.浜у搧浠g爜,
+ "HMaterName": data.浜у搧鍚嶇О,
+ "HMaterID": data.HMaterID,
+ "HICMOQty": data.鐢熶骇浠诲姟鍗曟暟閲�,
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 娴佽浆鍗¤繑鍥�
+ async ProcExchBillComplete(e) {
+ console.log('ProcExchBillRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.hform, {
+ "HProcExchInterID": data.hmainid,
+ "HProcExchEntryID": data.hsubid,
+ "HProcExchBillNo": data.鍗曟嵁鍙�,
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 妫�楠屾柟妗堣繑鍥�
+ async HQCSchemeComplete(e) {
+ console.log('HQCSchemeRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.hform, {
+ // "HMaterNumber": data["鐗╂枡浠g爜"],
+ // "HMaterName": data["鐗╂枡鍚嶇О"],
+ // "HMaterID": data["HItemID"],
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
+ }
+ },
+ // 宸ュ簭杩斿洖
+ async HProcComplete(e) {
+ console.log(' HProcRet: ', e);
+ for (var key in e["retVal"]) {
+ let data = e["retVal"][key]
+ Object.assign(this.hform, {
+ "HProcName": data["宸ュ簭鍚嶇О"],
+ "HProcID": data["HItemID"],
+ })
+ await this.$nextTick()
+ this.$refs.listPopup.exit()
+ // 纭繚鍦ㄥ脊绐楃粨鏉熷悗锛屽啀灏嗛〉闈笂鎸傚湪鐨勭粍浠剁疆绌�
+ await this.$nextTick()
+ this.enablePopupModule = this.PopupModuleNameList[0]
}
},
setInspectValModule(checkItem) {
+ console.log('checkItem: ', checkItem);
+ if (!checkItem.HAnalysisMethod || !checkItem.HSampleSchemeID) {
+ return
+ }
// 鍖哄垎妫�楠屽�奸〉绛惧拰闈欐�侀〉绛撅紝妫�楠屽�奸〉绛剧殑id浠寮�澶�
this.$set(this.InspectModules, `_${checkItem.num}`, {
id: `_${checkItem.num}`,
checkItemId: checkItem.num
})
console.log(' this.arrayAnalysisMethod: ', checkItem.HAnalysisMethod);
- let analysisMethodName = this.arrayAnalysisMethod.find(e => e.value == checkItem.HAnalysisMethod).name
+ let analysisMethodName = this.arrayAnalysisMethod.find(e => e.value == checkItem.HAnalysisMethod)
+ .name
this.$set(this.subTabs, `_${checkItem.num}`, {
id: `_${checkItem.num}`,
name: `${analysisMethodName}-${checkItem.HSampleSchemeName}`
@@ -712,11 +1052,15 @@
this.linterid = e.linterid || 0
if (this.operationType == 1) {
await this.getMaxBillNo()
- } else if (this.operationType == 2) {
+ } else if (this.operationType == 2) {
- } else if (this.operationType == 3) {
+ } else if (this.operationType == 3) {
}
+
+ await this.InitHSource()
+ await this.InitHWorkShift()
+ await this.InitHEmp()
}
}
</script>
@@ -730,6 +1074,7 @@
.uni-input {
padding: 0
}
+
.bill-main-tabs,
.bill-sub-tabs {
@@ -763,7 +1108,7 @@
.bill-main-content,
.bill-sub-content {
box-sizing: border-box;
- padding: 0 10rpx;
+ padding: 0 30rpx 0 30rpx;
display: flex;
flex-direction: column;
@@ -790,6 +1135,22 @@
flex: 1;
border-radius: 22rpx;
border: 1px solid #acacac;
+
+ .uni-combox {
+ padding: 0;
+ height: auto;
+
+ .uni-input-placeholder,
+ .uni-input-input {
+ font-size: 26rpx;
+ }
+ }
+
+ .uni-combox::v-deep input {
+ height: inherit;
+ font-size: 26rpx;
+ }
+
}
.disabled {
@@ -932,6 +1293,22 @@
}
}
+ .icon-wrapper-big {
+ background-color: #3A78FF;
+ border-radius: 100%;
+ width: 50rpx;
+ height: 50rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-shrink: 0;
+ margin-left: 20rpx;
+
+ .uni-icons {
+ color: #fff !important;
+ }
+ }
+
.more {
color: #888;
font-size: 22rpx;
diff --git a/pages/index/index.vue b/pages/index/index.vue
index a33bcf1..af57a66 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -220,10 +220,11 @@
hidden: false,
},
{
- img: '../../static/icon/icon16.png',
- text: '鍏朵粬鍏ュ簱鏍¢獙',
- url: '/pages/qitarukujiaoyan/table',
- id: 27,
+ img: '../../static/icon/icon16.png',
+ text: '鍏朵粬鍏ュ簱鏍¢獙',
+ url: '/pages/qitarukujiaoyan/table',
+ id: 27,
+ hidden: false,
},
{
img: '../../static/icon/icon8.png',
@@ -245,7 +246,7 @@
id: 26,
hidden: false,
},
-
+
],
// itemData: [{
diff --git a/pages/index/login.vue b/pages/index/login.vue
index 5293b6e..5b82b65 100644
--- a/pages/index/login.vue
+++ b/pages/index/login.vue
@@ -85,7 +85,8 @@
"娓╁窞娴疯瘹鍏夊": 'http://122.228.39.234:7177/API/',
"瀹佹尝鎯犲悍宸ヤ笟": 'http://172.16.72.30:6699/API/',
"浣欏鍏磋揪璧峰姩鍣�": 'http://121.37.133.104/API/',
- "鑻忓窞鍗櫤绉戞妧": 'http://221.224.60.42:8082/API_WW/',
+ "鑻忓窞鍗櫤绉戞妧-澶栫綉": 'http://221.224.60.42:8082/API_WW/',
+ "鑻忓窞鍗櫤绉戞妧-鍐呯綉": 'http://172.16.20.233:8082/API_NW/',
"缈佹稕娑涙湰鍦版祴璇�": 'http://localhost:81/API/',
"闄堥晲鍝叉湰鍦版祴璇�": 'http://localhost:81/API/',
},
diff --git a/pages/shengchanlingliao/form.vue b/pages/shengchanlingliao/form.vue
index d906f73..b32460f 100644
--- a/pages/shengchanlingliao/form.vue
+++ b/pages/shengchanlingliao/form.vue
@@ -338,6 +338,7 @@
},
resFunction: (res) => {
if (res.data.count == 1) {
+
this.DisBillEntryList()
} else {
uni.showToast({
@@ -354,15 +355,15 @@
},
async refreshHBarCodeFocus() {
this.HBarCodeFocus = false
- await this.$nextTick()
this.hform.HBarCode = ''
+ await this.$nextTick()
this.HBarCodeFocus = true
},
async refreshHBillNoFocus() {
this.HBillNoFocus = false
+ this.hform.HBillNo = ""
await this.$nextTick(() => {
this.HBillNoFocus = true
- this.hform.HBillNo = ""
})
},
playSound(e) {
@@ -398,7 +399,7 @@
return
}
let targetUrl = () => {
- if(/鏅轰簯|鎯犲悍/.test(this.hform.HStockOrgName)){
+ if (/鏅轰簯|鎯犲悍/.test(this.hform.HStockOrgName)) {
return "/WEBSController/get_BillBarCode_BillCheck_Json_MateOut_HuiKang"
}
return "/WEBSController/get_BillBarCode_BillCheck_Json"
@@ -636,8 +637,12 @@
this.hform.HBarCode = ''
if (res.data.count == 1) {
this.hform.HQty = ''
+ this.refreshHBarCodeFocus()
+ CommonUtils.playSound(1)
this.DisBillEntryList()
} else {
+ this.refreshHBarCodeFocus()
+ CommonUtils.playSound(0)
uni.showToast({
title: res.data.Message,
icon: 'none'
@@ -645,6 +650,7 @@
}
} catch (e) {
+ this.refreshHBarCodeFocus()
CommonUtils.playSound(0)
this.refreshHBillNoFocus()
uni.showToast({
@@ -801,29 +807,27 @@
this.showHSupName = false
}
}
+ this.refreshHBarCodeFocus()
//鏄剧ず琛ㄤ綋鏄庣粏
this.DisBillEntryList()
//娓呯┖鏁伴噺
this.hform.HQty = ''
} else {
+ this.refreshHBarCodeFocus()
CommonUtils.playSound(0);
uni.showToast({
title: res.data.Message,
icon: 'none'
})
}
-
- this.refreshHBarCodeFocus()
-
} catch (e) {
CommonUtils.playSound(0)
- this.refreshHBillNoFocus()
+ this.refreshHBarCodeFocus()
uni.showToast({
title: '鎺ュ彛璇锋眰澶辫触: ' + e,
icon: 'none'
})
}
-
// uni.request({
// url: this.serverUrl + '/WEBSController/get_CheckTypeByBarCode_BillCheck_Json',
// data: {
@@ -1095,11 +1099,11 @@
oMain: sMainStr
},
})
-
- if(!res) {
+
+ if (!res) {
return
}
-
+
console.log(1, res);
uni.hideLoading()
if (res.data.count == 1) {
@@ -1126,7 +1130,7 @@
icon: 'none'
})
}
-
+
} catch (e) {
CommonUtils.playSound(0)
this.refreshHBillNoFocus()
--
Gitblit v1.9.1