Files
zgty-mas-m/pages/setting/SelectBaseData.vue
houjunxiang 386f1e7466 1
2025-10-09 18:19:55 +08:00

123 lines
3.6 KiB
Vue

<template>
<view class="container">
<uni-section type="line" title="基础信息选择"> </uni-section>
<uni-forms label-position="top">
<uni-forms-item label="区域" name="areaCode">
<uni-data-select
:clear="false"
v-model="areaCode"
:localdata="areaCodeList"
@change="handleAreaChange"
></uni-data-select>
</uni-forms-item>
<uni-forms-item v-if="areaCode" label="岗位" name="postCode">
<uni-data-select
:clear="false"
v-model="postCode"
:localdata="postCodeList"
@change="handlePostChange"
></uni-data-select>
</uni-forms-item>
<uni-forms-item v-if="postCode && postCode === weighingPostCode" label="计量点" name="scaleNo">
<uni-data-select :clear="false" v-model="scaleNo" :localdata="scaleNoList"></uni-data-select>
</uni-forms-item>
</uni-forms>
<u-button type="primary" @click="submitForm">保存</u-button>
<u-loading-page :loading="loadingPage"></u-loading-page>
</view>
</template>
<script>
// import { getAreaCodeConfig, getScaleNoConfig, getPostList } from '@/nxTemp/apis/sys.api'
export default {
data() {
return {
weighingPostCode: '监磅',
areaCode: '',
scaleNo: '',
postCode: '',
areaCodeList: [],
scaleNoList: [],
postCodeList: [],
loadingPage: false
}
},
async onLoad() {
this.loadingPage = true
try {
this.areaCodeList = (await getAreaCodeConfig()).map(item => ({ text: item.areaName, value: item.areaCode }))
this.postCodeList = (await getPostList()).map(item => ({ text: item.name, value: item.name }))
if (this.areaCode) {
this.getScaleNoList()
}
this.loadingPage = false
} catch (error) {
this.loadingPage = false
}
},
mounted() {
this.areaCode = this.$store.state.areaCode
this.scaleNo = this.$store.state.scaleNo
this.postCode = this.$store.state.postCode
},
methods: {
async getScaleNoList() {
if (this.postCode && this.postCode === this.weighingPostCode) {
// this.scaleNo = ''
this.scaleNoList = (await getScaleNoConfig({ areaCode: this.areaCode })).map(item => ({
text: item.pointName,
value: item.pointCode
}))
}
},
async handleAreaChange() {
this.postCode = ''
this.scaleNo = ''
},
async handlePostChange() {
this.scaleNo = ''
this.getScaleNoList()
},
async goIndex() {
await this.$store.dispatch('getRoleMenus', this.$store.state.postCode)
uni.reLaunch({
url: 'pages/lims/index/index'
})
},
submitForm() {
if (this.areaCode && this.postCode && this.postCode !== this.weighingPostCode) {
this.$store.commit('SET_AREA_CODE', this.areaCode)
this.$store.commit('SET_POST_CODE', this.postCode)
this.goIndex()
} else if (this.postCode && this.postCode === this.weighingPostCode) {
if (this.scaleNo) {
this.$store.commit('SET_AREA_CODE', this.areaCode)
this.$store.commit('SET_POST_CODE', this.postCode)
this.$store.commit('SET_SCALE_NO', this.scaleNo)
this.goIndex()
} else {
uni.showToast({
title: '请选择',
icon: 'none'
})
}
} else {
uni.showToast({
title: '请选择',
icon: 'none'
})
}
}
}
}
</script>
<style lang="scss" scoped>
.container {
padding: 30rpx;
}
::v-deep .uni-section-header__decoration {
background-color: $uni-color-primary !important;
}
</style>