新增选择需求

This commit is contained in:
weipengfei 2023-07-29 18:03:13 +08:00
parent 97a5a337e1
commit ee5e264c88
2 changed files with 109 additions and 22 deletions

View File

@ -82,11 +82,8 @@
<u--textarea v-model="item.farm_tools" autoHeight placeholder="请输入经营诉求" border="surround" <u--textarea v-model="item.farm_tools" autoHeight placeholder="请输入经营诉求" border="surround"
count></u--textarea> count></u--textarea>
</u-form-item> </u-form-item>
<button type="primary" v-if="formData.length>1" class="delete"
@click="removeBreedingList(index)">删除以上开设店铺信息</button>
</u--form> </u--form>
</block> </block>
<button type="primary" class="plus" @click="pushBreedingList">+</button>
</view> </view>
</template> </template>

View File

@ -56,6 +56,16 @@
</view> </view>
<residents ref="residentsRef"></residents> <residents ref="residentsRef"></residents>
<breeding ref="breedingRef"></breeding> <breeding ref="breedingRef"></breeding>
<block v-for="(item, index) in showDemandList" :key="'demand'+index">
<block v-if="item.category_id==0">
<store v-if="item.category_child==1" ref="demandRef01"></store>
</block>
<button type="primary" class="delete" @click="removeShowDemand">-</button>
</block>
<button type="primary" class="plus demand" @click="demandShow=true">点击添加更多需求</button>
<u-picker :show="demandShow" ref="demandRef" :loading="demandLoading" :columns="[demandList, demandListChild]"
@change="changeHandler" @cancel="demandShow = false" @confirm="changeDemand"></u-picker>
</u--form> </u--form>
<button @click="addArchives" type="primary" class="btn">完成登记</button> <button @click="addArchives" type="primary" class="btn">完成登记</button>
</view> </view>
@ -68,22 +78,29 @@
import districtSelector from "@/components/districtSelector/districtSelector.vue" // import districtSelector from "@/components/districtSelector/districtSelector.vue" //
import residents from "@/components/newArchives/residents.vue" // import residents from "@/components/newArchives/residents.vue" //
import breeding from "@/components/newArchives/breeding.vue" // import breeding from "@/components/newArchives/breeding.vue" //
import store from "@/components/newArchives/store.vue" //
export default { export default {
components:{districtSelector, residents, breeding}, components: { districtSelector, residents, breeding, store },
data() { data() {
return { return {
demandShow: false,
demandLoading: false,
demandList: ['生产投入明细', '修房装修', '宴席', '生活采购'], //
demandListChild: ['种养殖', '开设店铺', '深加工', '粗加工'], //
showDemandList: [], //
formData: { formData: {
id_card: '', id_card: '',
sex: '', sex: '',
name: '', name: '',
phone: '', // phone: '', //
highway: '',// highway: '', //
smart_phone: '',//使 smart_phone: '', //使
wechat: '', // wechat: '', //
address: '',// address: '', //
age: '',// age: '', //
category_id: '1', category_id: '1',
category_child: '2', category_child: '2',
data_type: '1',
}, },
rules: { rules: {
phone: { phone: {
@ -124,14 +141,14 @@
trigger: ['change', 'blur'] trigger: ['change', 'blur']
}, },
highway: { highway: {
validator: (rule, value, callback )=>{ validator: (rule, value, callback) => {
typeof value==='number'?callback():callback('不能为空') typeof value === 'number' ? callback() : callback('不能为空')
}, },
trigger: ['change', 'blur'] trigger: ['change', 'blur']
}, },
smart_phone: { smart_phone: {
validator: (rule, value, callback )=>{ validator: (rule, value, callback) => {
typeof value==='number'?callback():callback('不能为空') typeof value === 'number' ? callback() : callback('不能为空')
}, },
trigger: ['change', 'blur'] trigger: ['change', 'blur']
}, },
@ -148,21 +165,25 @@
let flag2 = this.$refs.residentsRef.validate(); let flag2 = this.$refs.residentsRef.validate();
let flag3 = this.$refs.breedingRef.validate(); let flag3 = this.$refs.breedingRef.validate();
this.$refs.archives.validate().then(async (e) => { this.$refs.archives.validate().then(async (e) => {
if (e&&flag1&&flag2&&flag3) { if (e && flag1 && flag2 && flag3) {
uni.showLoading() uni.showLoading()
let districtForm = { let districtForm = {
area_id:this.$refs.districtSelectorRef.formData.area, area_id: this.$refs.districtSelectorRef.formData.area,
street_id:this.$refs.districtSelectorRef.formData.street, street_id: this.$refs.districtSelectorRef.formData.street,
village_id:this.$refs.districtSelectorRef.formData.village, village_id: this.$refs.districtSelectorRef.formData.village,
brigade_id:this.$refs.districtSelectorRef.formData.brigade, brigade_id: this.$refs.districtSelectorRef.formData.brigade,
} }
let res = await informationAdd({ let res = await informationAdd({
...this.formData, ...this.formData,
...districtForm, ...districtForm,
...this.$refs.residentsRef.residents, ...this.$refs.residentsRef.residents,
datas:{ datas: [{
category_id: '1',
category_child: '2',
datas: {
...this.$refs.breedingRef.formData ...this.$refs.breedingRef.formData
} }
}]
}); });
uni.hideLoading() uni.hideLoading()
uni.showToast({ uni.showToast({
@ -178,6 +199,45 @@
}) })
}, },
//
changeHandler(e) {
if (e.columnIndex == 0) { //,
this.demandLoading = true;
setTimeout(() => {
switch (e.indexs[0]) {
case 0:
this.demandListChild = ['种养殖', '开设店铺', '深加工', '粗加工'];
break;
case 1:
this.demandListChild = ['修房', '装房', '翻新', '买卖房'];
break;
case 2:
this.demandListChild = ['婚宴', '寿宴', '满月酒', '其他庆祝宴', '白事'];
break;
case 3:
this.demandListChild = ['烟酒', '水电气电话', '交通工具', '生活用品', '农副特产品'];
break;
default:
this.demandListChild = [];
break;
}
this.demandLoading = false;
}, 800)
}
},
//
changeDemand(e) {
this.showDemandList.push({
category_id: e.indexs[0],
category_child: e.indexs[1],
})
console.log(this.showDemandList);
this.demandShow = false;
},
//
removeShowDemand(index){
this.showDemandList.splice(index, 1);
}
}, },
onPullDownRefresh() { onPullDownRefresh() {
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
@ -227,4 +287,34 @@
text-align: center; text-align: center;
} }
} }
.delete {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 54rpx;
line-height: 54rpx;
background: #f56c6c;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.plus {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 54rpx;
line-height: 54rpx;
background: $theme-oa-color;
border-radius: 14rpx;
color: #fff;
text-align: center;
}
.demand {
margin-top: 40rpx;
margin-bottom: 50rpx;
}
</style> </style>