| New file |
| | |
| | | <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="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['检验方案名称']" |
| | | @tap="clickCard(bill, index)"> |
| | | <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">{{dayjs(bill['日期']).format("YYYY-MM-DD")}}</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 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> |
| | | </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, |
| | | HProcessName: '', |
| | | HMaterName: '', |
| | | HBeginDate: dayjs(new Date()).subtract(30, 'd').format("YYYY-MM-DD"), |
| | | HEndDate: dayjs(new Date()).format("YYYY-MM-DD"), |
| | | 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 ISNULL(审核人,'')!='' and HOrgID = '${ uni.getStorageSync("OrganizationID")}'` |
| | | if (this.HBeginDate && this.HEndDate) { |
| | | sWhere += ` and CONVERT(varchar(100),日期, 23) between '${this.HBeginDate}' and '${this.HEndDate}'` |
| | | } |
| | | |
| | | if (this.HMaterName && this.HProcessName) { |
| | | sWhere += ` and 物料名称 = '${this.HMaterName}' and 工序名称 = '${this.HProcessName}'` |
| | | } |
| | | return sWhere |
| | | }, |
| | | getBillList() { |
| | | this.HBillList = [] |
| | | this.length = 0 |
| | | this.page = 0 |
| | | this.curPage = 1 |
| | | CommonUtils.doRequest( |
| | | "/QC_Management/MES_QC_CheckProjectList_Json_Main", { |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | ) |
| | | }, |
| | | setRequiredInfo(MaterName, ProcessName) { |
| | | this.HMaterName = MaterName || "" |
| | | this.HProcessName = ProcessName || "" |
| | | } |
| | | }, |
| | | } |
| | | </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> |
| | |
| | | <view class="form-item"> |
| | | <view class="left">检验方案</view> |
| | | <view class="right disabled"> |
| | | <input type="text" disabled value="" /> |
| | | <input type="text" disabled :value="this.hform.HQCSchemeName" /> |
| | | </view> |
| | | <view class="icon-wrapper-big"><uni-icons type="search" size="20" |
| | | @click="showSelectorModule(hform, 7)"></uni-icons></view> |
| | |
| | | </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> |
| | | <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> |
| | | <CheckProjectPopupVue v-if="enablePopupModule == PopupModuleNameList[7]" ref="listPopup" |
| | | @update="HQCSchemeComplete" :bindKey="0"></CheckProjectPopupVue> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | import ICMOBillPopupVue from '../../../components/ZLGL/ICMOBillPopup.vue' |
| | | import ProcExchBillPopupVue from '../../../components/ZLGL/ProcExchBillPopup.vue' |
| | | import ProcessPopupVue from '../../../components/ZLGL/ProcessPopup.vue' |
| | | import CheckProjectPopupVue from '../../../components/ZLGL/CheckProjectPopup.vue' |
| | | import { |
| | | getUserInfo |
| | | } from '../../../utils/auth' |
| | |
| | | MaterialPopupVue, |
| | | ICMOBillPopupVue, |
| | | ProcExchBillPopupVue, |
| | | ProcessPopupVue |
| | | ProcessPopupVue, |
| | | CheckProjectPopupVue |
| | | }, |
| | | computed: { |
| | | judgeConclusion: { |
| | |
| | | this.enablePopupModule = this.PopupModuleNameList[index] |
| | | console.log('this.$refs: ', this.$refs); |
| | | await this.$nextTick() |
| | | if (index == 7) { |
| | | // 检验方案需要额外传递工序和物料名称两个参数 |
| | | this.$refs.listPopup.setRequiredInfo(item.HMaterName, item.HProcName) |
| | | } |
| | | |
| | | this.$refs.listPopup.showPopup() |
| | | }, |
| | | getAnalysisMethodDisplay(val) { |
| | |
| | | console.log('event: ', event); |
| | | }, |
| | | // 检验项目新增行 |
| | | addCheckItem() { |
| | | addCheckItem(resource) { |
| | | let ordinal = this.getObjLength(this.checkItems) + 1 |
| | | let checkItem = { |
| | | "num": ordinal, |
| | |
| | | "HInspectResultToSee": "" |
| | | } |
| | | |
| | | if (resource) { // 通过主表检验方案带出的检验项目 |
| | | Object.assign(checkItem, resource) |
| | | } |
| | | |
| | | this.$set(this.checkItems, ordinal, checkItem) |
| | | |
| | | this.$nextTick(() => { |
| | | // 检查是否可以新增检验值项 |
| | | this.setInspectValModule(this.checkItems[ordinal]) |
| | | }) |
| | | |
| | | |
| | | }, |
| | |
| | | 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["物料代码"], |
| | | // "HMaterName": data["物料名称"], |
| | | // "HMaterID": data["HItemID"], |
| | | HQCSchemeID: data.hmainid, |
| | | HQCSchemeName: data.检验方案名称 |
| | | }) |
| | | await this.get_CheckItem(); |
| | | await this.$nextTick() |
| | | this.$refs.listPopup.exit() |
| | | // 确保在弹窗结束后,再将页面上挂在的组件置空 |
| | |
| | | this.checkItems[data.num] = Object.assign(this.checkItems[data.num], data) |
| | | this.$set(this.InspectValues, `${data.num}`, list) |
| | | }, |
| | | // 带出检验项目 |
| | | async get_CheckItem() { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Async({ |
| | | url: '/Web/GetCheckItemByCheckProjectID', |
| | | data: { |
| | | CheckProjectID: this.hform.HQCSchemeID || 0, |
| | | HBatchQty: this.hform.HProcExchQty |
| | | } |
| | | }) |
| | | |
| | | let { |
| | | data, |
| | | count, |
| | | Message |
| | | } = res.data |
| | | |
| | | if (count == 1) { |
| | | for (var i = 0; i < data.length; i++) { |
| | | let checkItem = { |
| | | "HQCCheckItemID": data[i]["HQCCheckItemID"], |
| | | "HQCCheckItemNumber": data[i]["检验项目代码"], |
| | | "HQCCheckItemName": data[i]["检验项目"], |
| | | "HInspectInstruMentID": data[i]["HInspectInstruMentID"], |
| | | "HInspectInstruMentNumber": data[i]["检验仪器代码"], |
| | | "HInspectInstruMentName": data[i]["检验仪器"], |
| | | "HQCStd": data[i]["HQCStd"], |
| | | "HUnit": data[i]["单位名称"], |
| | | "HQCNote": "", |
| | | "HAnalysisMethod": data[i]["分析方法"], |
| | | "HResult": data[i]["默认结论"], |
| | | "HMax": "", |
| | | "HMin": "", |
| | | "HAvg": "", |
| | | "HRemark": "", |
| | | "HKeyInspect": data[i]["重点检查"] == 1 ? true : false, |
| | | "HStatus": 0, |
| | | "HSampleSchemeID": data[i]["HSampleSchemeID"], |
| | | "HUnitID": data[i]["HUnitID"], |
| | | "HInspectVal": '', |
| | | "HTargetVal": '', |
| | | "HUpLimit": data[i].上限值, |
| | | "HDownLimit": data[i].下限值, |
| | | "HUpOffSet": '', |
| | | "HDownOffSet": '', |
| | | "HSampleDamageQty": "0", |
| | | "HSampleSchemeName": data[i].抽样方案名称, |
| | | "HSampleQty": data[i].样本量, |
| | | "HAcceptQty": data[i].允许数, |
| | | "HInspectionLevel": data[i].检验水平, |
| | | "HRejectQty": data[i].拒绝数, |
| | | "HStrictness": data[i].严格度, |
| | | "HSampleUnRightQty": "", |
| | | "HAQL": data[i].AQL, |
| | | "HSamplingType": data[i].抽样类型 |
| | | } |
| | | |
| | | this.addCheckItem(checkItem) |
| | | } |
| | | |
| | | } else { |
| | | CommonUtils.showTips({ |
| | | title: '温馨提示', |
| | | message: `获取检验项目信息失败: ${Message} ` |
| | | }) |
| | | } |
| | | } catch (err) { |
| | | CommonUtils.showTips({ |
| | | title: '温馨提示', |
| | | message: `获取检验项目信息失败: ${err} ` |
| | | }) |
| | | } |
| | | }, |
| | | async getMaxBillNo() { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |