From bfbced1434833586988c36fe2670527bb5b2274d Mon Sep 17 00:00:00 2001 From: 346149741 <346149741@qq.com> Date: 星期二, 27 八月 2024 11:59:52 +0800 Subject: [PATCH] 修复选择同行人 --- policy/policyApply/policyApply.vue | 250 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 185 insertions(+), 65 deletions(-) diff --git a/policy/policyApply/policyApply.vue b/policy/policyApply/policyApply.vue index 45e2bb8..7d8193d 100644 --- a/policy/policyApply/policyApply.vue +++ b/policy/policyApply/policyApply.vue @@ -6,33 +6,33 @@ <view class="form-label require"> 鎵ф硶涓婚 </view> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.enforceReason"/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.enforceReason"/> </view> <view class="form-item"> <view class="form-label require"> 鎵ф硶瀵硅薄 </view> - <view class="input"> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.companyName"/> - <!-- <u-icon name="arrow-right"></u-icon> --> - <u-text text='鎼滅储' type="primary"></u-text> + <view class="input" @click="search"> + <input type="text" style="width: 80%;" disabled placeholder="璇烽�夋嫨" :value="form.companyName"/> + <u-icon name="arrow-right"></u-icon> + <!-- <u-text text='鎼滅储' type="primary" style="width: 20%;" @click="search"></u-text> --> </view> </view> <view class="form-item"> <view class="form-label require"> 鎵ф硶鏃堕棿 </view> - <view class="input"> - <input type="text" placeholder="璇疯緭鍏�"/> + <view class="input" @click="showTimeFun"> + <input type="text" placeholder="璇烽�夋嫨" disabled v-model.trim="form.planTimeStr"/> <u-icon name="arrow-right"></u-icon> </view> </view> - <view class="form-item"> + <view class="form-item" @click="showType = true"> <view class="form-label require"> 鎵ф硶绫诲瀷 </view> <view class="input"> - <input type="text" placeholder="璇疯緭鍏�"/> + <input type="text" placeholder="璇烽�夋嫨" v-model.trim="form.enforceTypeName" disabled/> <u-icon name="arrow-right"></u-icon> </view> </view> @@ -41,7 +41,7 @@ 鎵ф硶鍐呭 </view> <view class="back"> - <u--textarea :height="120" v-model="form.regionReason" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea> + <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea> </view> </view> </view> @@ -52,19 +52,28 @@ <view class="form-label"> 鎵ф硶浜哄憳 </view> - <input type="text" placeholder="璇疯緭鍏�"/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyUser" disabled/> </view> <view class="form-item"> <view class="form-label"> 鎵ф硶閮ㄩ棬 </view> - <input type="text" placeholder="璇疯緭鍏�"/> + <!-- <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyDeptName" disabled/> --> + <view style="width: 60%;">{{form.applyDeptName}}</view> </view> - <view class="form-item"> - <view class="form-label require"> - 闅忚浜哄憳鏁伴噺 + <view class="form-item sui" style="align-items: flex-start;" @click="openPer"> + <view class="form-label "> + 闅忚浜哄憳 </view> - <input type="text" placeholder="璇疯緭鍏�"/> + <view> + <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">璇烽�夋嫨</view> + <view v-else> + <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index"> + {{item.peerUser}}({{item.peerDeptName}}) + </view> + </view> + </view> + <!-- <u-textarea border="none" disabled style="padding: 0;" placeholder="璇烽�夋嫨" ></u-textarea> --> </view> <view class="form-item down-2"> <view class="form-label"> @@ -76,7 +85,7 @@ </view> </view> <view class="down-options"> - <view class="button record" >鐢宠璁板綍</view> + <view class="button record" @click="applyRecord">鐢宠璁板綍</view> <view class="button submit" @click="submitApply">鎻愪氦鐢宠</view> </view> <!-- <u-form label-position="top" label-width="120px"> @@ -114,63 +123,96 @@ </u-form> --> <!-- <u-button @click="submitApply">鎻愪氦鐢宠</u-button> <u-button @click="applyRecord">鐢宠璁板綍</u-button> --> - <u-picker :show="show" @close="show = false" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></u-picker> - <u-datetime-picker - :show="showTime" - @close="showTime = false" - @cancel="showTime = false" - v-model="currentTime" - @confirm="confirmTime" - :minDate="minDate" - mode="dateTime" - ref="datetimePicker" - class="hide-clear-button" - ></u-datetime-picker> - <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" :columns="columnsType" keyName="dictLabel"></u-picker> + <!-- <u-picker :show="show" @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"> + + </u-picker> --> + <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></perPicker> + <yt-dateTimePicker + ref="myPicker" + @submit="confirmTime" + :time-init="timeInit" + :start-year="year" + :startMonth="month" + :time-hide="[true, true, true, true, false, false]" + /> + <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" :columns="columnsType" keyName="dictLabel"></u-picker> + <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage> </view> </template> <script> - import { orderAdd, companyList } from '@/api/policy.js' + import { orderAdd, companyList, enforceList } from '@/api/policy.js' import { getInfo } from '@/api/auth.js' import { getDicts } from '@/api/data' + import perPage from './perPage' + import perPicker from './perPicker' + import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue" export default { + components: { + YtDateTimePicker, + perPage, + perPicker + }, data() { return { currentTime: "", form: { - executeTime: "", - applyName: '', + applyUser: '', applyDeptName: '', enforceType: 1, isNoticeCompany: 0, - regionReason: '' + // regionReason: 0, + planTimeStr: '', + peers: [], + orderStatus: 1, + enforceContent: "", + companyName: "" }, show: false, columns: [], showTime: false, columnsType: [], showType: false, - minDate: '' + minDate: '', + year: '', + endYear: '', + timeInit: '', + list: [], + startTime: "", + month: '' } }, onLoad() { - this.currentTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss') + this.year = new Date().getFullYear() + this.month = new Date().getMonth() + 1 + this.endYear = this.year + 5 + this.minDate = new Date().valueOf() + this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') + this.startTime =this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') this.getInfo() this.getDicts() + this.enforceList() + }, + onShow() { + }, methods: { + enforceList() { + enforceList().then(val => { + this.list = val.data.data + }) + }, getDicts() { getDicts('enforce_type').then(val =>{ - console.log(val.data.data) this.columnsType = [val.data.data] }) }, getInfo() { getInfo().then(val => { const value = val.data.data - this.form.applyName = value.nickName + // this.form.applyName = value.nickName + this.form.applyUser = value.nickName this.form.applyId = value.userId this.form.applyDeptName = value.dept.deptName this.form.applyDeptId = value.dept.deptId @@ -191,51 +233,98 @@ } return options; }, + authFile() { + if(!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")){ + return '璇峰~鍐欎富棰�' + } + if(!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")){ + return '璇烽�夋嫨鎵ф硶瀵硅薄' + } + // if(!this.form.companyId) { + // return '璇风偣鍑绘悳绱㈢‘璁ゆ墽娉曞璞�' + // } + if(!this.form.planTimeStr) { + return '璇峰~鍐欐墽娉曟椂闂�' + } + if(!this.form.enforceTypeName){ + return '璇烽�夋嫨鎵ф硶绫诲瀷' + } + console.log(!this.form.enforceContent.replace(/\s+/g, "")) + if(!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) { + return '璇峰~鍐欐墽娉曞唴瀹�' + } + // if(!this.form.peers.length){ + // return '璇烽�夋嫨闅忚浜哄憳' + // } + return '' + }, submitApply(){ + const res = this.authFile() + if(res){ + uni.showToast({ + title: res, + icon: 'none' + }) + return + } orderAdd(this.form).then(val => { if(val.data.code == 200) { - uni.navigateBack() + uni.showToast({ + title: '鎻愪氦鎴愬姛', + icon: 'none' + }) + setTimeout(() => { + uni.navigateBack() + }, 500) } }) }, applyRecord() { - - }, - search() { - companyList({companyName: this.form.companyName}).then(val => { - if(val.data.code == 200){ - if(!val.data.rows.length || !val.data.rows){ - uni.showToast({ - title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', - icon: 'none', - duration: 3000 - }) - } else { - this.columns = [val.data.rows] - this.show = true - } - - } + uni.navigateTo({ + url:`/policy/applyRecord/applyRecord` }) }, + search() { + // companyList({companyName: this.form.companyName}).then(val => { + // if(val.data.code == 200){ + // if(!val.data.rows.length || !val.data.rows){ + // uni.showToast({ + // title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', + // icon: 'none', + // duration: 3000 + // }) + // } else { + + // } + + // } + // }) + + this.$refs.perPicker.open() + }, confirmSearch(e){ - const value = this.columns[0].find(item => item.companyName == e.value[0].companyName) - this.form.companyName = e.value[0].companyName + let value = e + // const value = this.columns[0].find(item => item.companyName == e.value[0].companyName) + this.form.companyName = e.companyName this.form.companyCode = value.companyCode this.form.companyId = value.companyId this.form.companyPhone = value.companyPhone this.form.companyUser = value.companyUser this.form.companyAddress = value.companyAddress - this.show = false + // console.log(this.form.companyName) + }, + setCompany(e) { + this.form.companyName = e }, confirmTime(e) { - // console.log(e.value) - this.form.applyTime = e.value - this.showTime = false + this.form.planTime = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00:00" + this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00" + this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM') }, showTimeFun() { - this.showTime = true - + // this.showTime = true + this.$refs.myPicker.show(); + }, sheet(){ @@ -244,6 +333,28 @@ this.form.enforceType = e.value[0].dictCode this.form.enforceTypeName = e.value[0].dictLabel this.showType = false + }, + changeValue(e, e1) { + this.currentTime = e.value + }, + openPer() { + this.$refs.perpage.open(this.list) + }, + selectValue(value) { + value.forEach(val => { + this.form.peers.push(val) + }); + this.form.peers = this.uniqueArrJson(this.form.peers,'peerId') + }, + uniqueArrJson(arr,key) { + var newobj = {},newArr = []; + for(var i=0;i<arr.length;i++){ + var item = arr[i]; + if(!newobj[item[key]]){ + newobj[item[key]] = newArr.push(item); + } + } + return newArr; } } } @@ -251,6 +362,9 @@ <style> page{ background-color: #F4F4F4; + } + .sui .u-textarea{ + padding: 0 !important; } </style> <style scoped lang="scss"> @@ -323,7 +437,7 @@ padding-bottom: 40rpx; width: 100%; padding: 22rpx 30rpx 40rpx; - z-index: 1000; + z-index: 800; display: flex; justify-content: space-between; align-items: center; @@ -350,5 +464,11 @@ text-align: center; } } +.sui{ +} +/deep/ .u-checkbox-label--right > text{ + line-height: 54rpx !important; + margin-right: 15rpx; +} </style> -- Gitblit v1.9.1