Commit aafd5e3762bc3bce661439020f251bcacc444e63

Authored by 郭娟
1 parent 1f9090b0
Exists in charge

fix:优化代码

pages/charge/visitsAndFees/createaVisit.vue
... ... @@ -913,6 +913,7 @@
913 913 },
914 914 // 选择时间弹出层
915 915 handleDateTime(item) {
  916 + console.log('打印item',item);
916 917 if (this.operationStatus === 'YD') {
917 918 return
918 919 }
... ...
pages/charge/visitsAndFees/index.vue
... ... @@ -20,18 +20,40 @@
20 20 </u-checkbox-group>
21 21 </view>
22 22 </view>
  23 + <view class="topSelectCss">
  24 + <view class="flex justify-between">
  25 + <view class="flex align-center" v-for="(item,index) of searchList" @click="openPicker(item)" :key="item.title">
  26 + <view class="text-lg">
  27 + <span v-if="searchForm[item.name]">
  28 + {{searchForm[item.name]}}
  29 + <span v-if="item.title=='财年'">
  30 + 财年
  31 + </span>
  32 + </span>
  33 + <span v-else>{{ item.title}}</span>
  34 + </view>
  35 + <view class="margin-left-xs" v-if="item.title == '财年'">
  36 + <u-icon name="calendar-fill" size="25"></u-icon>
  37 + </view>
  38 + <view class="margin-left-xs" v-else>
  39 + <u-icon v-if="currentName == item.key" color="#5875eb" name="arrow-up-fill" size="12"></u-icon>
  40 + <u-icon v-else name="arrow-down-fill" color="#999db0" size="12"></u-icon>
  41 + </view>
  42 + </view>
  43 + </view>
  44 + </view>
23 45 <view class="">
24   - <uv-drop-down ref="dropDown" sign="dropDown_1" :extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"
25   - :extra-active-icon="{name:'arrow-up-fill',color:'#3c9cff',size:'26rpx'}">
26   - <uv-drop-down-item name="order" type="2" label="财年" value="all">
27   - </uv-drop-down-item>
28   - <uv-drop-down-item name="type" type="2" label="项目公司" value="0">
29   - </uv-drop-down-item>
30   - <uv-drop-down-item name="type" type="2" label="状态" value="0">
31   - </uv-drop-down-item>
32   - <uv-drop-down-item name="type" type="2" label="类型" value="0">
33   - </uv-drop-down-item>
34   - </uv-drop-down>
  46 +<!-- <uv-drop-down ref="dropDown" sign="dropDown_1" :extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"-->
  47 +<!-- :extra-active-icon="{name:'arrow-up-fill',color:'#3c9cff',size:'26rpx'}">-->
  48 +<!-- <uv-drop-down-item name="order" type="2" label="财年" value="all">-->
  49 +<!-- </uv-drop-down-item>-->
  50 +<!-- <uv-drop-down-item name="type" type="2" label="项目公司" value="0">-->
  51 +<!-- </uv-drop-down-item>-->
  52 +<!-- <uv-drop-down-item name="type" type="2" label="状态" value="0">-->
  53 +<!-- </uv-drop-down-item>-->
  54 +<!-- <uv-drop-down-item name="type" type="2" label="类型" value="0">-->
  55 +<!-- </uv-drop-down-item>-->
  56 +<!-- </uv-drop-down>-->
35 57 </view>
36 58  
37 59 <view class="usuallyCard margin padding" v-if="list.length" v-for="(item,index) in list" :key="index"
... ... @@ -133,6 +155,12 @@
133 155 </view>
134 156 </u-popup>
135 157 <TabBar :currentPagePath="this.$route.meta.pagePath"></TabBar>
  158 + <u-picker :show="pickerShow" ref="uPicker" closeOnClickOverlay :columns="columns" @cancel="selectCancel"
  159 + @close="selectCancel" keyName="label" @confirm="selectConfirm"></u-picker>
  160 + <u-picker :show="gsShow" ref="gsPicker" closeOnClickOverlay :columns="gsColumns" @cancel="gsCancel"
  161 + @close="gsCancel" keyName="label" @confirm="gsConfirm" @change="changeHandler"></u-picker>
  162 + <u-datetime-picker :show="datetimeShow" :value="searchForm.year" closeOnClickOverlay @confirm="dateConfirm"
  163 + @cancel="timeCancel" @close="timeCancel" mode="year"></u-datetime-picker>
136 164 </view>
137 165 </template>
138 166  
... ... @@ -143,6 +171,7 @@
143 171 submitAuditTwo,
144 172 submitModificationOne,
145 173 submitModificationTwo,
  174 + getCompanyCascader,
146 175 cancelMcVisit
147 176 } from '@/api/charge.js'
148 177 import popUpComponent from '@/components/popUpComponent/popUpComponent.vue'
... ... @@ -155,6 +184,57 @@
155 184 },
156 185 data() {
157 186 return {
  187 + currentName:'',
  188 + columns: [],
  189 + gsColumns:[],
  190 + companyOption: [],
  191 + regionName:[],
  192 + groupName:[],
  193 + companyName: [],
  194 + gsShow:false,
  195 + pickerShow: false,
  196 + datetimeShow: false,
  197 + searchForm:{
  198 + year:'',
  199 + companyCode:'',
  200 + status:'',
  201 + type:''
  202 + },
  203 + model: {
  204 + companyCode: "",
  205 + company: "",
  206 + status:'',
  207 + type:'',
  208 + year:''
  209 + },
  210 + searchList:[
  211 + {
  212 + title:'财年',
  213 + name:'year',
  214 + key:'year',
  215 + type:'time'
  216 + },
  217 + {
  218 + title:'项目公司',
  219 + name:'companyCode',
  220 + type:'select',
  221 + key:'company',
  222 + },
  223 + {
  224 + title:'状态',
  225 + name:'status',
  226 + type:'select',
  227 + key:'status',
  228 + dict:'sys_mc_visit_status'
  229 + },
  230 + {
  231 + title:'类型',
  232 + name:'type',
  233 + type:'select',
  234 + key:'type',
  235 + dict:'sys_mc_visit_type'
  236 + }
  237 + ],
158 238 params: {
159 239 pageNum: 1,
160 240 pageSize: 10,
... ... @@ -214,12 +294,93 @@
214 294 }, 500);
215 295 },
216 296 onLoad() {
217   - // this.initData();
  297 + this.getCompanyCascader();
218 298 },
219 299 onShow(){
220 300 this.initData();
221 301 },
222 302 methods: {
  303 + selectConfirm(e){
  304 + console.log('打印selectConfirm',e);
  305 + let data = e.value[0].value;
  306 + let dataLabel = e.value[0].label;
  307 + console.log('打印data',data);
  308 + if(this.currentName === 'status'){
  309 + this.searchForm.status = dataLabel;
  310 + this.model.status = data;
  311 + }else if(this.currentName == 'type'){
  312 + this.searchForm.type = dataLabel;
  313 + this.model.type = data;
  314 + }
  315 + this.pickerShow = false;
  316 + this.currentName ='';
  317 + },
  318 + selectCancel(){
  319 + this.pickerShow = false;
  320 + this.currentName ='';
  321 + },
  322 + gsConfirm(e){
  323 + console.log("公司", e);
  324 + if (this.currentName === 'company') {
  325 + this.model[this.currentName] = `${e.value[2].label}`;
  326 + this.model.regionName = e.value[0]?.value;
  327 + this.model.groupName = e.value[1]?.value;
  328 + this.model.companyName = e.value[2]?.label;
  329 + this.model.companyCode = e.value[2]?.value;
  330 + }
  331 + this.gsShow = false;
  332 + this.currentName ='';
  333 + },
  334 + gsCancel(){
  335 + this.gsShow = false;
  336 + this.currentName ='';
  337 + },
  338 + changeHandler(){},
  339 + dateConfirm(e){
  340 + let time = this.$u.timeFormat(e.value, 'yyyy');
  341 + console.log("选择时间", time);
  342 + this.model[this.currentName] = time;
  343 + this.searchForm.year = time;
  344 + this.datetimeShow = false;
  345 + this.currentName ='';
  346 + },
  347 + timeCancel(){
  348 + this.datetimeShow = false;
  349 + this.currentName ='';
  350 + },
  351 + async getCompanyCascader() {
  352 + this.companyOption = (await getCompanyCascader()).data;
  353 + this.companyOption.forEach(item1 => {
  354 + this.regionName.push(item1);
  355 + item1.children.forEach(item2 => {
  356 + this.groupName.push(item2);
  357 + item2.children.forEach(item3 => {
  358 + this.companyName.push(item3);
  359 + });
  360 + });
  361 + });
  362 + console.log("当前公司类", this.companyOption);
  363 + },
  364 + async openPicker(data) {
  365 + this.currentName = data.key;
  366 + console.log('打印data-===', data);
  367 + if (data.type === 'select') {
  368 + if(data.key=='company'){
  369 + this.gsColumns = [this.regionName, this.groupName, this.companyName];
  370 + this.gsShow = true;
  371 + }else{
  372 + let dict = data.dict;
  373 + let dictArr = this.getDictDatas(dict);
  374 + this.columns = [dictArr];
  375 + this.pickerShow = true;
  376 + }
  377 +
  378 + }else{
  379 + console.log('打印data===',data);
  380 + this.datetimeShow = true;
  381 + // this.showTimeParams.showStartDailog = true;
  382 + }
  383 + },
223 384 // 修改按钮权限
224 385 editPermission(item) {
225 386 const { statusCode } = item
... ... @@ -437,6 +598,10 @@
437 598 </script>
438 599  
439 600 <style lang="scss" scoped>
  601 +.topSelectCss {
  602 + padding: 10px 20px;
  603 + background: #fff;
  604 +}
440 605 /deep/.u-search__content {
441 606 width: 70vw;
442 607 padding-right: 140rpx;
... ...