| | |
| | | "type" : "uni-app:app-ios" |
| | | }, |
| | | { |
| | | "customPlaygroundType" : "local", |
| | | "customPlaygroundType" : "device", |
| | | "localRepoPath" : "C:/Users/19858/Desktop/智云迈思/APP/STUWMS/unpackage/debug", |
| | | "openVueDevtools" : true, |
| | | "packageName" : "com.iflytek.inputmethod", |
| | | "playground" : "custom", |
| | | "playground" : "standard", |
| | | "type" : "uni-app:app-android" |
| | | } |
| | | ] |
| 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="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['环境检测项目代码']}`" |
| | | @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> |
| | | </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 禁用标志 !='是' and ISNULL(审核人,'')!='' and HUSEORGID = '${ uni.getStorageSync("OrganizationID")}'` |
| | | |
| | | 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_EnvironmentTestItemList", { |
| | | 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> |
| 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="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['检测项目']}`" |
| | | @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(); |
| | | }, |
| | | async clickCard(bill, index) { |
| | | try { |
| | | // 显示加载提示 |
| | | uni.showLoading({ |
| | | title: '加载中...' |
| | | }); |
| | | |
| | | console.log('选中的主表数据:', bill); |
| | | |
| | | // 使用同一个接口,但通过单据号查询所有相关数据 |
| | | let res = await CommonUtils.doRequest2Async({ |
| | | url: "/Gy_BaseInformation/getGy_EnvironmentTestSchemeBillMainList", |
| | | data: { |
| | | sWhere: ` and 单据号 = '${bill.单据号}'`, // 根据单据号查询所有记录 |
| | | user: getUserInfo()['Czymc'] |
| | | } |
| | | }); |
| | | |
| | | let { data, count, Message } = res.data; |
| | | console.log('查询结果:', data); |
| | | |
| | | if (count == 1 && data && data.length > 0) { |
| | | // 返回该主表下的所有子表数据(相同单据号的所有记录) |
| | | let retVal = {}; |
| | | |
| | | // 将所有数据放入返回对象中 |
| | | data.forEach((item, index) => { |
| | | retVal[index] = item; |
| | | }); |
| | | |
| | | console.log('返回的所有数据: ', retVal); |
| | | |
| | | this.$emit("update", { |
| | | retVal: retVal |
| | | }); |
| | | |
| | | // 关闭弹窗 |
| | | this.exit(); |
| | | |
| | | uni.showToast({ |
| | | title: `已加载 ${data.length} 条数据`, |
| | | icon: 'success' |
| | | }); |
| | | } else { |
| | | uni.showToast({ |
| | | title: '未找到数据', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | } catch (err) { |
| | | console.error('加载数据失败:', err); |
| | | uni.showToast({ |
| | | title: '加载失败', |
| | | icon: 'none' |
| | | }); |
| | | } finally { |
| | | uni.hideLoading(); |
| | | } |
| | | }, |
| | | getsWhere() { |
| | | let sWhere = ` and ISNULL(审核人,'')!='' and HOrgID = '${ uni.getStorageSync("OrganizationID")}'` |
| | | |
| | | 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_BaseInformation/getGy_EnvironmentTestSchemeBillMainList", { |
| | | 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> |
| | |
| | | // 处理业务消息 |
| | | if (message.Type === "MessageUnRead") { // 未读消息 |
| | | let payload = { |
| | | pagePath: "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList", |
| | | pagePath: "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery", |
| | | itemId: 0 |
| | | } |
| | | const content = JSON.parse(message.Content); |
| | |
| | | } else if (message.Type === "Message") { |
| | | const content = JSON.parse(message.Content) |
| | | let payload = { |
| | | pagePath: "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList", |
| | | pagePath: "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery", |
| | | itemId: 0 |
| | | } |
| | | this.showTaskTip(content[0]["内容"], payload, content[0]["主题"]); |