This commit is contained in:
wpf 2023-08-20 20:48:16 +08:00
commit a6614b7f90
8 changed files with 1840 additions and 1348 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,279 +1,329 @@
<template> <template>
<view class="card"> <view class="content">[[]]
<view class="title">养殖信息</view> <view class="tit">
<u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm"> <text v-if="readonly">更新时间: {{update_time}}</text>
<u-form-item labelWidth="auto" label="有无养殖培训" required prop="breeding_training" borderBottom> <text>养殖信息</text>
<u-radio-group :disabled="readonly" v-model="formData.breeding_training" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}" </view>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" <view class="card">
:name="item.value">
</u-radio>
</u-radio-group> <!-- <view class="title">养殖信息</view> -->
</u-form-item>
<u-form-item labelWidth="auto" label="有无注册成立养殖公司" required prop="breeding_company" borderBottom> <u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm">
<u-radio-group :disabled="readonly" v-model="formData.breeding_company" style="margin: 16rpx;"> <u-form-item labelWidth="auto" label="有无养殖培训" required prop="breeding_training" borderBottom>
<u-radio :customStyle="{marginRight: '16px'}" <u-radio-group :disabled="readonly" v-model="formData.breeding_training" style="margin: 16rpx;">
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" <u-radio :customStyle="{marginRight: '16px'}"
:name="item.value"> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
</u-radio> :label="item.label" :name="item.value">
</u-radio-group> </u-radio>
</u-form-item> </u-radio-group>
<u-form-item labelWidth="auto" labelPosition="top" label="备注" required prop="notes" borderBottom> </u-form-item>
<u--textarea :disabled="readonly" v-model="formData.notes" autoHeight placeholder="请输入备注" border="surround" count></u--textarea> <u-form-item labelWidth="auto" label="有无注册成立养殖公司" required prop="breeding_company" borderBottom>
</u-form-item> <u-radio-group :disabled="readonly" v-model="formData.breeding_company" style="margin: 16rpx;">
<u-form-item labelWidth="auto" label="养殖类型" required prop="breeding_type" borderBottom> <u-radio :customStyle="{marginRight: '16px'}"
<u--input :readonly="readonly" v-model="formData.breeding_type" placeholder="请输入养殖类型"></u--input> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
</u-form-item> :label="item.label" :name="item.value">
<picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'breeding_time'"> </u-radio>
<u-form-item labelWidth="auto" label="养殖开始时间" required prop="breeding_time" borderBottom> </u-radio-group>
<u--input :value="formData.breeding_time" placeholder="请选择养殖开始时间" disabled disabledColor="#fff"></u--input> </u-form-item>
<u-icon slot="right" name="arrow-right"></u-icon> <u-form-item labelWidth="auto" labelPosition="top" label="备注" required prop="notes" borderBottom>
</u-form-item> <u--textarea :disabled="readonly" v-model="formData.notes" autoHeight placeholder="请输入备注"
</picker> border="surround" count></u--textarea>
<picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'mature_time'"> </u-form-item>
<u-form-item labelWidth="auto" label="上市时间" required prop="mature_time" borderBottom> <u-form-item labelWidth="auto" label="养殖类型" required prop="breeding_type" borderBottom>
<u--input :value="formData.mature_time" placeholder="请选择上市时间" disabled disabledColor="#fff"></u--input> <u--input :readonly="readonly" v-model="formData.breeding_type" placeholder="请输入养殖类型"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> </u-form-item>
</u-form-item> <picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'breeding_time'">
</picker> <u-form-item labelWidth="auto" label="养殖开始时间" required prop="breeding_time" borderBottom>
<u-form-item labelWidth="auto" label="产量" required prop="yield" borderBottom> <u--input :value="formData.breeding_time" placeholder="请选择养殖开始时间" disabled
<u--input :readonly="readonly" v-model="formData.yield" placeholder="请输入产量"></u--input> disabledColor="#fff"></u--input>
</u-form-item> <u-icon slot="right" name="arrow-right"></u-icon>
<u-form-item labelWidth="auto" label="预计收益" required prop="estimated_income" borderBottom> </u-form-item>
<u--input :readonly="readonly" v-model="formData.estimated_income" placeholder="请输入预计收益"></u--input> </picker>
</u-form-item> <picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'mature_time'">
<u-form-item labelWidth="auto" labelPosition="top" label="农资农具收益情况" required prop="farm_tools" borderBottom> <u-form-item labelWidth="auto" label="上市时间" required prop="mature_time" borderBottom>
<u--textarea :disabled="readonly" v-model="formData.farm_tools" autoHeight placeholder="请输入农资农具收益情况" border="surround" <u--input :value="formData.mature_time" placeholder="请选择上市时间" disabled
count></u--textarea> disabledColor="#fff"></u--input>
</u-form-item> <u-icon slot="right" name="arrow-right"></u-icon>
<u-form-item labelWidth="auto" label="是否生态养殖" required prop="ecological_farming" borderBottom> </u-form-item>
<u-radio-group :disabled="readonly" v-model="formData.ecological_farming" style="margin: 16rpx;"> </picker>
<u-radio :customStyle="{marginRight: '16px'}" <u-form-item labelWidth="auto" label="产量" required prop="yield" borderBottom>
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" <u--input :readonly="readonly" v-model="formData.yield" placeholder="请输入产量"></u--input>
:name="item.value"> </u-form-item>
</u-radio> <u-form-item labelWidth="auto" label="预计收益" required prop="estimated_income" borderBottom>
</u-radio-group> <u--input :readonly="readonly" v-model="formData.estimated_income" placeholder="请输入预计收益"></u--input>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" label="现代化程度" required prop="modernization" borderBottom> <u-form-item labelWidth="auto" labelPosition="top" label="农资农具收益情况" required prop="farm_tools"
<u--input :readonly="readonly" v-model="formData.modernization" placeholder="请输入现代化程度"></u--input> borderBottom>
</u-form-item> <u--textarea :disabled="readonly" v-model="formData.farm_tools" autoHeight placeholder="请输入农资农具收益情况"
<u-form-item labelWidth="auto" label="预售卖价格" required prop="pre_price" borderBottom> border="surround" count></u--textarea>
<u--input :readonly="readonly" v-model="formData.pre_price" placeholder="请输入预售卖价格"></u--input> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="是否生态养殖" required prop="ecological_farming" borderBottom>
<u-form-item labelWidth="auto" label="销售方式" required prop="method_sales" borderBottom> <u-radio-group :disabled="readonly" v-model="formData.ecological_farming" style="margin: 16rpx;">
<u-radio-group :disabled="readonly" v-model="formData.method_sales" style="margin: 16rpx;"> <u-radio :customStyle="{marginRight: '16px'}"
<u-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
v-for="(item, index) in [{value:1,label:'自销'},{value:0,label:'定点销售'}]" :key="index" :label="item.label" :label="item.label" :name="item.value">
:name="item.value"> </u-radio>
</u-radio> </u-radio-group>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="现代化程度" required prop="modernization" borderBottom>
<u-form-item labelWidth="auto" label="有无加工仓储" required prop="processing_storage" borderBottom> <u--input :readonly="readonly" v-model="formData.modernization" placeholder="请输入现代化程度"></u--input>
<u-radio-group :disabled="readonly" v-model="formData.processing_storage" style="margin: 16rpx;"> </u-form-item>
<u-radio :customStyle="{marginRight: '16px'}" <u-form-item labelWidth="auto" label="预售卖价格" required prop="pre_price" borderBottom>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" <u--input :readonly="readonly" v-model="formData.pre_price" placeholder="请输入预售卖价格"></u--input>
:name="item.value"> </u-form-item>
</u-radio> <u-form-item labelWidth="auto" label="销售方式" required prop="method_sales" borderBottom>
</u-radio-group> <u-radio-group :disabled="readonly" v-model="formData.method_sales" style="margin: 16rpx;">
</u-form-item> <u-radio :customStyle="{marginRight: '16px'}"
<u-form-item labelWidth="auto" label="有无宣传推广" required prop="promote" borderBottom> v-for="(item, index) in [{value:1,label:'自销'},{value:0,label:'定点销售'}]" :key="index"
<u-radio-group :disabled="readonly" v-model="formData.promote" style="margin: 16rpx;"> :label="item.label" :name="item.value">
<u-radio :customStyle="{marginRight: '16px'}" </u-radio>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" </u-radio-group>
:name="item.value"> </u-form-item>
</u-radio> <u-form-item labelWidth="auto" label="有无加工仓储" required prop="processing_storage" borderBottom>
</u-radio-group> <u-radio-group :disabled="readonly" v-model="formData.processing_storage" style="margin: 16rpx;">
</u-form-item> <u-radio :customStyle="{marginRight: '16px'}"
<u-form-item labelWidth="auto" label="有无运输" required prop="transportation" borderBottom> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
<u-radio-group :disabled="readonly" v-model="formData.transportation" style="margin: 16rpx;"> :label="item.label" :name="item.value">
<u-radio :customStyle="{marginRight: '16px'}" </u-radio>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" </u-radio-group>
:name="item.value"> </u-form-item>
</u-radio> <u-form-item labelWidth="auto" label="有无宣传推广" required prop="promote" borderBottom>
</u-radio-group> <u-radio-group :disabled="readonly" v-model="formData.promote" style="margin: 16rpx;">
</u-form-item> <u-radio :customStyle="{marginRight: '16px'}"
<u-form-item labelWidth="auto" label="是否有扩大经营需求" required prop="expand_business_needs" borderBottom> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
<u-radio-group :disabled="readonly" v-model="formData.expand_business_needs" style="margin: 16rpx;"> :label="item.label" :name="item.value">
<u-radio :customStyle="{marginRight: '16px'}" </u-radio>
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" </u-radio-group>
:name="item.value"> </u-form-item>
</u-radio> <u-form-item labelWidth="auto" label="有无运输" required prop="transportation" borderBottom>
</u-radio-group> <u-radio-group :disabled="readonly" v-model="formData.transportation" style="margin: 16rpx;">
</u-form-item> <u-radio :customStyle="{marginRight: '16px'}"
<u-form-item labelWidth="auto" labelPosition="top" label="需求描述" prop="demand" borderBottom> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
<u--textarea :disabled="readonly" v-model="formData.demand" autoHeight placeholder="请输入需求描述" border="surround" count></u--textarea> :label="item.label" :name="item.value">
</u-form-item> </u-radio>
<u-form-item labelWidth="auto" labelPosition="top" label="政策补助" prop="policy_subsidies" borderBottom> </u-radio-group>
<u--textarea :disabled="readonly" v-model="formData.policy_subsidies" autoHeight placeholder="请输入政策补助" border="surround" </u-form-item>
count></u--textarea> <u-form-item labelWidth="auto" label="是否有扩大经营需求" required prop="expand_business_needs" borderBottom>
</u-form-item> <u-radio-group :disabled="readonly" v-model="formData.expand_business_needs" style="margin: 16rpx;">
</u--form> <u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
</view> :label="item.label" :name="item.value">
</template> </u-radio>
</u-radio-group>
<script> </u-form-item>
export default { <u-form-item labelWidth="auto" labelPosition="top" label="需求描述" prop="demand" borderBottom>
props:{ <u--textarea :disabled="readonly" v-model="formData.demand" autoHeight placeholder="请输入需求描述"
readonly: { border="surround" count></u--textarea>
type: Boolean, </u-form-item>
default: false <u-form-item labelWidth="auto" labelPosition="top" label="政策补助" prop="policy_subsidies" borderBottom>
}, <u--textarea :disabled="readonly" v-model="formData.policy_subsidies" autoHeight
datas:{ placeholder="请输入政策补助" border="surround" count></u--textarea>
type: Object, </u-form-item>
default: null </u--form>
}
}, </view>
data() {
return {
landPlanList: ['自己养', '出租', '代养', '租更多地扩大养殖'], </view>
formData: {
// "breeding_training": 1, //
// "breeding_company": 0, // </template>
// "notes": "", //
// "breeding_type": 22, // <script>
// "breeding_time": "2022-07-22", // export default {
// "mature_time": "2022-07-22", // props: {
// "yield": 600, // readonly: {
// "estimated_income": 1500, // type: Boolean,
// "farm_tools": ",", //使 default: false
// "ecological_farming": 1, // },
// "modernization": 30, // datas: {
// "pre_price": "30.00", // type: Object,
// "method_sales": 1, // default: null
// "processing_storage": 0, // },
// "promote": 0, //广 update_time: {
// "transportation": 0, // type: String,
// "expand_business_needs": 0, // default: null
// "demand": "", // }
// "policy_subsidies": "" ,// },
"breeding_training": "", // data() {
"breeding_company": "", // return {
"notes": "", // landPlanList: ['自己养', '出租', '代养', '租更多地扩大养殖'],
"breeding_type": "", // formData: {
"area": "", // // "breeding_training": 1, //
"breeding_time": "", // // "breeding_company": 0, //
"mature_time": "", // // "notes": "", //
"yield": "", // // "breeding_type": 22, //
"estimated_income": "", // // "breeding_time": "2022-07-22", //
"farm_tools": "", //使 // "mature_time": "2022-07-22", //
"ecological_farming": "", // // "yield": 600, //
"modernization": "", // // "estimated_income": 1500, //
"pre_price": "", // // "farm_tools": ",", //使
"method_sales": "", // // "ecological_farming": 1, //
"processing_storage": "", // // "modernization": 30, //
"promote": "", //广 // "pre_price": "30.00", //
"transportation": "", // // "method_sales": 1, //
"expand_business_needs": "", // // "processing_storage": 0, //
"demand": "", // // "promote": 0, //广
"policy_subsidies": "" // // "transportation": 0, //
}, // "expand_business_needs": 0, //
rules: { // "demand": "", //
// "policy_subsidies": "" ,//
} "breeding_training": "", //
} "breeding_company": "", //
}, "notes": "", //
created() { "breeding_type": "", //
this.initRules(); "area": "", //
if(this.$props.readonly&&this.$props.datas){ "breeding_time": "", //
this.formData = this.$props.datas; "mature_time": "", //
let keys = Object.keys(this.formData); "yield": "", //
keys.forEach(item=>{ "estimated_income": "", //
if(!isNaN(this.formData[item]))this.formData[item] = +this.formData[item]; "farm_tools": "", //使
}) "ecological_farming": "", //
} "modernization": "", //
}, "pre_price": "", //
watch:{ "method_sales": "", //
datas(newValue, oldValue){ "processing_storage": "", //
if(this.$props.readonly&&newValue){ "promote": "", //广
this.formData = this.$props.datas; "transportation": "", //
let keys = Object.keys(this.formData); "expand_business_needs": "", //
keys.forEach(item=>{ "demand": "", //
if(!isNaN(this.formData[item]))this.formData[item] = +this.formData[item]; "policy_subsidies": "" //
}) },
} rules: {
}
}, }
methods: { }
// },
initRules(){ created() {
let arr = Object.keys(this.formData); this.initRules();
let white = ['demand', 'policy_subsidies']; if (this.$props.readonly && this.$props.datas) {
arr = arr.filter(item=>{ this.formData = this.$props.datas;
return !white.includes(item); let keys = Object.keys(this.formData);
}) keys.forEach(item => {
arr.forEach(key=>{ if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
this.rules[key] = { })
validator: (rule, value, callback )=>{ }
this.$refs.breedingForm.clearValidate(rule.field); },
value.trim()!==''?callback():callback('不能为空'); watch: {
}, datas(newValue, oldValue) {
trigger: ['change', 'blur'] if (this.$props.readonly && newValue) {
} this.formData = this.$props.datas;
}) let keys = Object.keys(this.formData);
}, keys.forEach(item => {
// if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
async validate(){ })
return await this.$refs.breedingForm.validate(); }
}, }
// },
changeLanPlan(e) { methods: {
let index = e.currentTarget.dataset.index; //
this.formData.planning = e.detail.value; initRules() {
}, let arr = Object.keys(this.formData);
// let white = ['demand', 'policy_subsidies'];
changeDate(e){ arr = arr.filter(item => {
let data = e.currentTarget.dataset; return !white.includes(item);
this.formData[data.value] = e.detail.value; })
}, arr.forEach(key => {
}, this.rules[key] = {
} validator: (rule, value, callback) => {
</script> this.$refs.breedingForm.clearValidate(rule.field);
value.trim() !== '' ? callback() : callback('不能为空');
<style lang="scss"> },
.card{ trigger: ['change', 'blur']
background-color: #fff; }
margin: 28rpx; })
padding: 28rpx; },
border-radius: 14rpx; //
} async validate() {
.title { return await this.$refs.breedingForm.validate();
font-weight: 500; },
font-size: 34rpx; //
changeLanPlan(e) {
&::before { let index = e.currentTarget.dataset.index;
width: 8rpx; this.formData.planning = e.detail.value;
height: 26rpx; },
border-radius: 4rpx; //
background-color: #3175f9; changeDate(e) {
content: ""; let data = e.currentTarget.dataset;
display: inline-block; this.formData[data.value] = e.detail.value;
margin-right: 8rpx; },
} },
} }
.delete { </script>
margin: 22rpx 0;
// margin-bottom: 40rpx; <style lang="scss">
width: 100%; .card {
height: 64rpx; background-color: #fff;
line-height: 64rpx; margin: 28rpx;
background: #f56c6c; padding: 28rpx;
border-radius: 14rpx; margin-top: 0;
font-size: 28rpx; padding-top: 0;
color: #fff; border-radius: 0 0 14rpx 14rpx;
text-align: center; }
}
.tit {
.plus { margin: 28rpx 28rpx 0 28rpx;
margin: 22rpx 0; padding: 28rpx 28rpx 0 28rpx;
// margin-bottom: 40rpx; border-radius: 14rpx 14rpx 0 0;
width: 100%; background-color: $theme-oa-color;
height: 64rpx; color: white;
line-height: 64rpx; height: 100rpx;
background: $theme-oa-color; display: flex;
border-radius: 14rpx; justify-content: space-between;
font-size: 28rpx;
color: #fff; }
text-align: center;
} .title {
font-weight: 500;
font-size: 34rpx;
&::before {
width: 8rpx;
height: 26rpx;
border-radius: 4rpx;
background-color: #3175f9;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
.delete {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: #f56c6c;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.plus {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: $theme-oa-color;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
</style> </style>

View File

@ -1,296 +1,344 @@
<template> <template>
<view class="card">
<view class="title">种植信息</view> <view class="content">
<u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm">
<u-form-item labelWidth="auto" label="土地总面积" required prop="cultivated_area" borderBottom> <view class="tit">
<u--input :readonly="readonly" v-model="formData.cultivated_area" placeholder="请输入土地总面积"></u--input> <text v-if="readonly">更新时间: {{update_time}}</text>
</u-form-item> <text>种植信息</text>
<picker :range="landPlanList" :disabled="readonly" mode="selector" @change="changeLanPlan">
<u-form-item labelWidth="auto" label="土地规划" required prop="planning" borderBottom> </view>
<u--input :value="landPlanList[formData.planning]" placeholder="请选择规划" disabled disabledColor="#fff"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> <view class="card">
</picker> <!-- <view class="title">种植信息</view> -->
<u-form-item labelWidth="auto" label="有无种植培训" required prop="breeding_training" borderBottom> <u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm">
<u-radio-group :disabled="readonly" v-model="formData.breeding_training" style="margin: 16rpx;"> <u-form-item labelWidth="auto" label="土地总面积" required prop="cultivated_area" borderBottom>
<u-radio :customStyle="{marginRight: '16px'}" <u--input :readonly="readonly" v-model="formData.cultivated_area" placeholder="请输入土地总面积"></u--input>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" </u-form-item>
:name="item.value"> <picker :range="landPlanList" :disabled="readonly" mode="selector" @change="changeLanPlan">
</u-radio> <u-form-item labelWidth="auto" label="土地规划" required prop="planning" borderBottom>
</u-radio-group> <u--input :value="landPlanList[formData.planning]" placeholder="请选择规划" disabled
</u-form-item> disabledColor="#fff"></u--input>
<u-form-item labelWidth="auto" label="有无注册成立种植公司" required prop="planting_company" borderBottom> <u-icon slot="right" name="arrow-right"></u-icon>
<u-radio-group :disabled="readonly" v-model="formData.planting_company" style="margin: 16rpx;"> </u-form-item>
<u-radio :customStyle="{marginRight: '16px'}" </picker>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" <u-form-item labelWidth="auto" label="有无种植培训" required prop="breeding_training" borderBottom>
:name="item.value"> <u-radio-group :disabled="readonly" v-model="formData.breeding_training" style="margin: 16rpx;">
</u-radio> <u-radio :customStyle="{marginRight: '16px'}"
</u-radio-group> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
</u-form-item> :label="item.label" :name="item.value">
<u-form-item labelWidth="auto" labelPosition="top" label="备注" required prop="notes" borderBottom> </u-radio>
<u--textarea :disabled="readonly" v-model="formData.notes" autoHeight placeholder="请输入备注" border="surround" count></u--textarea> </u-radio-group>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" label="种植类型" required prop="breeding_type" borderBottom> <u-form-item labelWidth="auto" label="有无注册成立种植公司" required prop="planting_company" borderBottom>
<u--input :readonly="readonly" v-model="formData.breeding_type" placeholder="请输入种植类型"></u--input> <u-radio-group :disabled="readonly" v-model="formData.planting_company" style="margin: 16rpx;">
</u-form-item> <u-radio :customStyle="{marginRight: '16px'}"
<u-form-item labelWidth="auto" label="面积" required prop="area" borderBottom> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
<u--input :readonly="readonly" v-model="formData.area" placeholder="请输入面积"></u--input> :label="item.label" :name="item.value">
</u-form-item> </u-radio>
<picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'breeding_time'"> </u-radio-group>
<u-form-item labelWidth="auto" label="种植开始时间" required prop="breeding_time" borderBottom> </u-form-item>
<u--input :value="formData.breeding_time" placeholder="请选择种植开始时间" disabled disabledColor="#fff"></u--input> <u-form-item labelWidth="auto" labelPosition="top" label="备注" required prop="notes" borderBottom>
<u-icon slot="right" name="arrow-right"></u-icon> <u--textarea :disabled="readonly" v-model="formData.notes" autoHeight placeholder="请输入备注"
</u-form-item> border="surround" count></u--textarea>
</picker> </u-form-item>
<picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'mature_time'"> <u-form-item labelWidth="auto" label="种植类型" required prop="breeding_type" borderBottom>
<u-form-item labelWidth="auto" label="上市时间" required prop="mature_time" borderBottom> <u--input :readonly="readonly" v-model="formData.breeding_type" placeholder="请输入种植类型"></u--input>
<u--input :value="formData.mature_time" placeholder="请选择上市时间" disabled disabledColor="#fff"></u--input> </u-form-item>
<u-icon slot="right" name="arrow-right"></u-icon> <u-form-item labelWidth="auto" label="面积" required prop="area" borderBottom>
</u-form-item> <u--input :readonly="readonly" v-model="formData.area" placeholder="请输入面积"></u--input>
</picker> </u-form-item>
<u-form-item labelWidth="auto" label="产量" required prop="yield" borderBottom> <picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'breeding_time'">
<u--input :readonly="readonly" v-model="formData.yield" placeholder="请输入产量"></u--input> <u-form-item labelWidth="auto" label="种植开始时间" required prop="breeding_time" borderBottom>
</u-form-item> <u--input :value="formData.breeding_time" placeholder="请选择种植开始时间" disabled
<u-form-item labelWidth="auto" label="预计收益" required prop="estimated_income" borderBottom> disabledColor="#fff"></u--input>
<u--input :readonly="readonly" v-model="formData.estimated_income" placeholder="请输入预计收益"></u--input> <u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" labelPosition="top" label="农资农具收益情况" required prop="farm_tools" borderBottom> </picker>
<u--textarea :disabled="readonly" v-model="formData.farm_tools" autoHeight placeholder="请输入农资农具收益情况" border="surround" <picker mode="date" @change="changeDate" :disabled="readonly" :data-value="'mature_time'">
count></u--textarea> <u-form-item labelWidth="auto" label="上市时间" required prop="mature_time" borderBottom>
</u-form-item> <u--input :value="formData.mature_time" placeholder="请选择上市时间" disabled
<u-form-item labelWidth="auto" label="是否生态种植" required prop="ecological_farming" borderBottom> disabledColor="#fff"></u--input>
<u-radio-group :disabled="readonly" v-model="formData.ecological_farming" style="margin: 16rpx;"> <u-icon slot="right" name="arrow-right"></u-icon>
<u-radio :customStyle="{marginRight: '16px'}" </u-form-item>
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" </picker>
:name="item.value"> <u-form-item labelWidth="auto" label="产量" required prop="yield" borderBottom>
</u-radio> <u--input :readonly="readonly" v-model="formData.yield" placeholder="请输入产量"></u--input>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="预计收益" required prop="estimated_income" borderBottom>
<u-form-item labelWidth="auto" label="现代化程度" required prop="modernization" borderBottom> <u--input :readonly="readonly" v-model="formData.estimated_income" placeholder="请输入预计收益"></u--input>
<u--input :readonly="readonly" v-model="formData.modernization" placeholder="请输入现代化程度"></u--input> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" labelPosition="top" label="农资农具收益情况" required prop="farm_tools"
<u-form-item labelWidth="auto" label="预售卖价格" required prop="pre_price" borderBottom> borderBottom>
<u--input :readonly="readonly" v-model="formData.pre_price" placeholder="请输入预售卖价格"></u--input> <u--textarea :disabled="readonly" v-model="formData.farm_tools" autoHeight placeholder="请输入农资农具收益情况"
</u-form-item> border="surround" count></u--textarea>
<u-form-item labelWidth="auto" label="销售方式" required prop="method_sales" borderBottom> </u-form-item>
<u-radio-group :disabled="readonly" v-model="formData.method_sales" style="margin: 16rpx;"> <u-form-item labelWidth="auto" label="是否生态种植" required prop="ecological_farming" borderBottom>
<u-radio :customStyle="{marginRight: '16px'}" <u-radio-group :disabled="readonly" v-model="formData.ecological_farming" style="margin: 16rpx;">
v-for="(item, index) in [{value:1,label:'自销'},{value:0,label:'定点销售'}]" :key="index" :label="item.label" <u-radio :customStyle="{marginRight: '16px'}"
:name="item.value"> v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
</u-radio> :label="item.label" :name="item.value">
</u-radio-group> </u-radio>
</u-form-item> </u-radio-group>
<u-form-item labelWidth="auto" label="有无加工仓储" required prop="processing_storage" borderBottom> </u-form-item>
<u-radio-group :disabled="readonly" v-model="formData.processing_storage" style="margin: 16rpx;"> <u-form-item labelWidth="auto" label="现代化程度" required prop="modernization" borderBottom>
<u-radio :customStyle="{marginRight: '16px'}" <u--input :readonly="readonly" v-model="formData.modernization" placeholder="请输入现代化程度"></u--input>
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" </u-form-item>
:name="item.value"> <u-form-item labelWidth="auto" label="预售卖价格" required prop="pre_price" borderBottom>
</u-radio> <u--input :readonly="readonly" v-model="formData.pre_price" placeholder="请输入预售卖价格"></u--input>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="销售方式" required prop="method_sales" borderBottom>
<u-form-item labelWidth="auto" label="有无宣传推广" required prop="promote" borderBottom> <u-radio-group :disabled="readonly" v-model="formData.method_sales" style="margin: 16rpx;">
<u-radio-group :disabled="readonly" v-model="formData.promote" style="margin: 16rpx;"> <u-radio :customStyle="{marginRight: '16px'}"
<u-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in [{value:1,label:'自销'},{value:0,label:'定点销售'}]" :key="index"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" :label="item.label" :name="item.value">
:name="item.value"> </u-radio>
</u-radio> </u-radio-group>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="有无加工仓储" required prop="processing_storage" borderBottom>
<u-form-item labelWidth="auto" label="有无运输" required prop="transportation" borderBottom> <u-radio-group :disabled="readonly" v-model="formData.processing_storage" style="margin: 16rpx;">
<u-radio-group :disabled="readonly" v-model="formData.transportation" style="margin: 16rpx;"> <u-radio :customStyle="{marginRight: '16px'}"
<u-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label" :label="item.label" :name="item.value">
:name="item.value"> </u-radio>
</u-radio> </u-radio-group>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="有无宣传推广" required prop="promote" borderBottom>
<u-form-item labelWidth="auto" label="是否有扩大经营需求" required prop="expand_business_needs" borderBottom> <u-radio-group :disabled="readonly" v-model="formData.promote" style="margin: 16rpx;">
<u-radio-group :disabled="readonly" v-model="formData.expand_business_needs" style="margin: 16rpx;"> <u-radio :customStyle="{marginRight: '16px'}"
<u-radio :customStyle="{marginRight: '16px'}" v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" :label="item.label" :name="item.value">
:name="item.value"> </u-radio>
</u-radio> </u-radio-group>
</u-radio-group> </u-form-item>
</u-form-item> <u-form-item labelWidth="auto" label="有无运输" required prop="transportation" borderBottom>
<u-form-item labelWidth="auto" labelPosition="top" label="需求描述" prop="demand" borderBottom> <u-radio-group :disabled="readonly" v-model="formData.transportation" style="margin: 16rpx;">
<u--textarea :disabled="readonly" v-model="formData.demand" autoHeight placeholder="请输入需求描述" border="surround" count></u--textarea> <u-radio :customStyle="{marginRight: '16px'}"
</u-form-item> v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
<u-form-item labelWidth="auto" labelPosition="top" label="政策补助" prop="policy_subsidies" borderBottom> :label="item.label" :name="item.value">
<u--textarea :disabled="readonly" v-model="formData.policy_subsidies" autoHeight placeholder="请输入政策补助" border="surround" </u-radio>
count></u--textarea> </u-radio-group>
</u-form-item> </u-form-item>
</u--form> <u-form-item labelWidth="auto" label="是否有扩大经营需求" required prop="expand_business_needs" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.expand_business_needs" style="margin: 16rpx;">
</view> <u-radio :customStyle="{marginRight: '16px'}"
</template> v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
:label="item.label" :name="item.value">
<script> </u-radio>
export default { </u-radio-group>
props:{ </u-form-item>
readonly: { <u-form-item labelWidth="auto" labelPosition="top" label="需求描述" prop="demand" borderBottom>
type: Boolean, <u--textarea :disabled="readonly" v-model="formData.demand" autoHeight placeholder="请输入需求描述"
default: false border="surround" count></u--textarea>
}, </u-form-item>
datas:{ <u-form-item labelWidth="auto" labelPosition="top" label="政策补助" prop="policy_subsidies" borderBottom>
type: Object, <u--textarea :disabled="readonly" v-model="formData.policy_subsidies" autoHeight
default: null placeholder="请输入政策补助" border="surround" count></u--textarea>
} </u-form-item>
}, </u--form>
data() {
return { </view>
landPlanList: ['自己种', '出租', '代种', '租更多地扩大种植'], </view>
formData: { </template>
// "cultivated_area": "20", //
// "planning": 1, // <script>
// "breeding_training": 1, // export default {
// "planting_company": 0, // props: {
// "notes": "", // readonly: {
// "breeding_type": 22, // type: Boolean,
// "area": 20, // default: false
// "breeding_time": "2022-07-22", // },
// "mature_time": "2022-07-22", // update_time: {
// "yield": 600, // type: String,
// "estimated_income": 1500, // default: null
// "farm_tools": ",", //使 },
// "ecological_farming": 1, // datas: {
// "modernization": 30, // type: Object,
// "pre_price": "30.00", // default: null
// "method_sales": 1, // }
// "processing_storage": 0, // },
// "promote": 0, //广 data() {
// "transportation": 0, // return {
// "expand_business_needs": 0, // landPlanList: ['自己种', '出租', '代种', '租更多地扩大种植'],
// "demand": "", // formData: {
// "policy_subsidies": "" ,// // "cultivated_area": "20", //
"cultivated_area": "", // // "planning": 1, //
"planning": "", // // "breeding_training": 1, //
"breeding_training": "", // // "planting_company": 0, //
"planting_company": "", // // "notes": "", //
"notes": "", // // "breeding_type": 22, //
"breeding_type": "", // // "area": 20, //
"area": "", // // "breeding_time": "2022-07-22", //
"breeding_time": "", // // "mature_time": "2022-07-22", //
"mature_time": "", // // "yield": 600, //
"yield": "", // // "estimated_income": 1500, //
"estimated_income": "", // // "farm_tools": ",", //使
"farm_tools": "", //使 // "ecological_farming": 1, //
"ecological_farming": "", // // "modernization": 30, //
"modernization": "", // // "pre_price": "30.00", //
"pre_price": "", // // "method_sales": 1, //
"method_sales": "", // // "processing_storage": 0, //
"processing_storage": "", // // "promote": 0, //广
"promote": "", //广 // "transportation": 0, //
"transportation": "", // // "expand_business_needs": 0, //
"expand_business_needs": "", // // "demand": "", //
"demand": "", // // "policy_subsidies": "" ,//
"policy_subsidies": "" // "cultivated_area": "", //
}, "planning": "", //
rules: { "breeding_training": "", //
"planting_company": "", //
} "notes": "", //
} "breeding_type": "", //
}, "area": "", //
created() { "breeding_time": "", //
this.initRules(); "mature_time": "", //
if(this.$props.readonly&&this.$props.datas){ "yield": "", //
this.formData = this.$props.datas; "estimated_income": "", //
let keys = Object.keys(this.formData); "farm_tools": "", //使
keys.forEach(item=>{ "ecological_farming": "", //
if(!isNaN(this.formData[item]))this.formData[item] = +this.formData[item]; "modernization": "", //
}) "pre_price": "", //
} "method_sales": "", //
}, "processing_storage": "", //
watch:{ "promote": "", //广
datas(newValue, oldValue){ "transportation": "", //
if(this.$props.readonly&&newValue){ "expand_business_needs": "", //
this.formData = this.$props.datas; "demand": "", //
let keys = Object.keys(this.formData); "policy_subsidies": "" //
keys.forEach(item=>{ },
if(!isNaN(this.formData[item]))this.formData[item] = +this.formData[item]; rules: {
})
} }
} }
}, },
methods: { created() {
// this.initRules();
initRules(){ if (this.$props.readonly && this.$props.datas) {
let arr = Object.keys(this.formData); this.formData = this.$props.datas;
let white = ['demand', 'policy_subsidies']; let keys = Object.keys(this.formData);
arr = arr.filter(item=>{ keys.forEach(item => {
return !white.includes(item); if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
}) })
arr.forEach(key=>{ }
this.rules[key] = { },
validator: (rule, value, callback )=>{ watch: {
this.$refs.breedingForm.clearValidate(rule.field); datas(newValue, oldValue) {
value.trim()!==''?callback():callback('不能为空'); if (this.$props.readonly && newValue) {
}, this.formData = this.$props.datas;
trigger: ['change', 'blur'] let keys = Object.keys(this.formData);
} keys.forEach(item => {
}) if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
}, })
// }
async validate(){ }
return await this.$refs.breedingForm.validate(); },
}, methods: {
// //
changeLanPlan(e) { initRules() {
let index = e.currentTarget.dataset.index; let arr = Object.keys(this.formData);
this.formData.planning = e.detail.value; let white = ['demand', 'policy_subsidies'];
}, arr = arr.filter(item => {
// return !white.includes(item);
changeDate(e){ })
let data = e.currentTarget.dataset; arr.forEach(key => {
this.formData[data.value] = e.detail.value; this.rules[key] = {
}, validator: (rule, value, callback) => {
}, this.$refs.breedingForm.clearValidate(rule.field);
} value.trim() !== '' ? callback() : callback('不能为空');
</script> },
trigger: ['change', 'blur']
<style lang="scss"> }
.card{ })
background-color: #fff; },
margin: 28rpx; //
padding: 28rpx; async validate() {
border-radius: 14rpx; return await this.$refs.breedingForm.validate();
} },
.title { //
font-weight: 500; changeLanPlan(e) {
font-size: 34rpx; let index = e.currentTarget.dataset.index;
this.formData.planning = e.detail.value;
&::before { },
width: 8rpx; //
height: 26rpx; changeDate(e) {
border-radius: 4rpx; let data = e.currentTarget.dataset;
background-color: #3175f9; this.formData[data.value] = e.detail.value;
content: ""; },
display: inline-block; },
margin-right: 8rpx; }
} </script>
}
.delete { <style lang="scss">
margin: 22rpx 0; .card {
// margin-bottom: 40rpx; background-color: #fff;
width: 100%; margin: 28rpx;
height: 64rpx; padding: 28rpx;
line-height: 64rpx; margin-top: 0;
background: #f56c6c; padding-top: 0;
border-radius: 14rpx; border-radius: 0 0 14rpx 14rpx;
font-size: 28rpx; }
color: #fff;
text-align: center; .tit {
} margin: 28rpx 28rpx 0 28rpx;
padding: 28rpx 28rpx 0 28rpx;
.plus { border-radius: 14rpx 14rpx 0 0;
margin: 22rpx 0; background-color: $theme-oa-color;
// margin-bottom: 40rpx; color: white;
width: 100%; height: 100rpx;
height: 64rpx; display: flex;
line-height: 64rpx; justify-content: space-between;
background: $theme-oa-color;
border-radius: 14rpx; }
font-size: 28rpx;
color: #fff; .title {
text-align: center; font-weight: 500;
} font-size: 34rpx;
&::before {
width: 8rpx;
height: 26rpx;
border-radius: 4rpx;
background-color: #3175f9;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
.delete {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: #f56c6c;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.plus {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: $theme-oa-color;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
</style> </style>

View File

@ -1,234 +1,264 @@
<template> <template>
<view class="card">
<view class="title">开设店铺</view>
<u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm">
<u-form-item labelWidth="auto" label="有无门面" required prop="shop_front" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.shop_front" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="门面面积" required prop="area" borderBottom>
<u--input :readonly="readonly" v-model="formData.area" placeholder="请输入门面面积"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="经营地点" required prop="place" borderBottom>
<u--input :readonly="readonly" v-model="formData.place" placeholder="请输入经营地点"></u--input>
</u-form-item>
<picker :range="storeTypeList" :disabled="readonly" mode="selector" @change="changeType">
<u-form-item labelWidth="auto" label="经营类型" required prop="type" borderBottom>
<u--input :value="storeTypeList[formData.type]" placeholder="请选择经营类型" disabled
disabledColor="#fff"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
</picker>
<u-form-item labelWidth="auto" label="门面环境" required prop="environment" borderBottom>
<u--input :readonly="readonly" v-model="formData.environment" placeholder="请输入门面环境"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="服务对象" required prop="service" borderBottom>
<u--input :readonly="readonly" v-model="formData.service" placeholder="请输入服务对象"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="有无营业资质" required prop="qualification" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.qualification" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="有无进货渠道" required prop="stock" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.stock" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="店铺规模" required prop="scale" borderBottom>
<u--input :readonly="readonly" v-model="formData.scale" placeholder="请输入店铺规模"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="商品来源" required prop="source" borderBottom>
<u--input :readonly="readonly" v-model="formData.source" placeholder="请输入商品来源"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="有无线上展示" required prop="online_display" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.online_display" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="有无品牌" required prop="brand" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.brand" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="库存情况" required prop="repertory" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.repertory" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index" :label="item.label"
:name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" labelPosition="top" label="经营诉求" required prop="appeal" borderBottom>
<u--textarea :disabled="readonly" v-model="formData.appeal" autoHeight placeholder="请输入经营诉求" border="surround"
count></u--textarea>
</u-form-item>
</u--form>
</view>
<view class="content">
<view class="tit">
<text v-if="readonly">更新时间: {{update_time}}</text>
<text>开设店铺</text>
</view>
<view class="card">
<!-- <view class="title">开设店铺</view> -->
<u--form labelPosition="left" :model="formData" :rules="rules" ref="breedingForm">
<u-form-item labelWidth="auto" label="有无门面" required prop="shop_front" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.shop_front" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="门面面积" required prop="area" borderBottom>
<u--input :readonly="readonly" v-model="formData.area" placeholder="请输入门面面积"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="经营地点" required prop="place" borderBottom>
<u--input :readonly="readonly" v-model="formData.place" placeholder="请输入经营地点"></u--input>
</u-form-item>
<picker :range="storeTypeList" :disabled="readonly" mode="selector" @change="changeType">
<u-form-item labelWidth="auto" label="经营类型" required prop="type" borderBottom>
<u--input :value="storeTypeList[formData.type]" placeholder="请选择经营类型" disabled
disabledColor="#fff"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
</picker>
<u-form-item labelWidth="auto" label="门面环境" required prop="environment" borderBottom>
<u--input :readonly="readonly" v-model="formData.environment" placeholder="请输入门面环境"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="服务对象" required prop="service" borderBottom>
<u--input :readonly="readonly" v-model="formData.service" placeholder="请输入服务对象"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="有无营业资质" required prop="qualification" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.qualification" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="有无进货渠道" required prop="stock" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.stock" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="店铺规模" required prop="scale" borderBottom>
<u--input :readonly="readonly" v-model="formData.scale" placeholder="请输入店铺规模"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="商品来源" required prop="source" borderBottom>
<u--input :readonly="readonly" v-model="formData.source" placeholder="请输入商品来源"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="有无线上展示" required prop="online_display" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.online_display" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="有无品牌" required prop="brand" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.brand" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="库存情况" required prop="repertory" borderBottom>
<u-radio-group :disabled="readonly" v-model="formData.repertory" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'有'},{value:0,label:'无'}]" :key="index"
:label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" labelPosition="top" label="经营诉求" required prop="appeal" borderBottom>
<u--textarea :disabled="readonly" v-model="formData.appeal" autoHeight placeholder="请输入经营诉求"
border="surround" count></u--textarea>
</u-form-item>
</u--form>
</view>
</view>
</template> </template>
<script> <script>
export default { export default {
props: { props: {
readonly: { readonly: {
type: Boolean, type: Boolean,
default: false default: false
}, },
datas: { datas: {
type: Object, type: Object,
default: null default: null
} },
}, update_time: {
data() { type: String,
return { default: null
storeTypeList: ['超市', '生鲜', '饭店', '五金', '杂货', '服装', '文具', '其他'], },
formData: { },
shop_front: '', // data() {
area: '', return {
place: '', storeTypeList: ['超市', '生鲜', '饭店', '五金', '杂货', '服装', '文具', '其他'],
type: '', formData: {
environment: '', shop_front: '', //
service: '', area: '',
qualification: '', place: '',
stock: '', type: '',
scale: '', environment: '',
online_display: '', service: '',
brand: '', qualification: '',
repertory: '', stock: '',
appeal: '', scale: '',
}, online_display: '',
rules: { brand: '',
repertory: '',
appeal: '',
},
rules: {
} }
} }
}, },
created() { created() {
this.initRules(); this.initRules();
if (this.$props.readonly && this.$props.datas) { if (this.$props.readonly && this.$props.datas) {
this.formData = this.$props.datas; this.formData = this.$props.datas;
let keys = Object.keys(this.formData); let keys = Object.keys(this.formData);
keys.forEach(item => { keys.forEach(item => {
if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item]; if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
}) })
// console.log(this.formData); // console.log(this.formData);
} }
}, },
watch: { watch: {
datas(newValue, oldValue) { datas(newValue, oldValue) {
if (this.$props.readonly && newValue) { if (this.$props.readonly && newValue) {
this.formData = this.$props.datas; this.formData = this.$props.datas;
let keys = Object.keys(this.formData); let keys = Object.keys(this.formData);
keys.forEach(item => { keys.forEach(item => {
if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item]; if (!isNaN(this.formData[item])) this.formData[item] = +this.formData[item];
}) })
} }
} }
}, },
methods: { methods: {
// //
initRules() { initRules() {
let arr = Object.keys(this.formData); let arr = Object.keys(this.formData);
arr.forEach(key => { arr.forEach(key => {
this.rules[key] = { this.rules[key] = {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
this.$refs.breedingForm.clearValidate(rule.field); this.$refs.breedingForm.clearValidate(rule.field);
value.trim() !== '' ? callback() : callback('不能为空'); value.trim() !== '' ? callback() : callback('不能为空');
}, },
trigger: ['change', 'blur'] trigger: ['change', 'blur']
} }
}) })
}, },
// //
async validate() { async validate() {
return await this.$refs.breedingForm.validate(); return await this.$refs.breedingForm.validate();
}, },
// //
changeType(e) { changeType(e) {
let index = e.currentTarget.dataset.index; let index = e.currentTarget.dataset.index;
this.formData.type = e.detail.value; this.formData.type = e.detail.value;
}, },
// //
changeDate(e) { changeDate(e) {
let data = e.currentTarget.dataset; let data = e.currentTarget.dataset;
this.formData[data.value] = e.detail.value; this.formData[data.value] = e.detail.value;
}, },
}, },
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.card { .card {
background-color: #fff; background-color: #fff;
margin: 28rpx; margin: 28rpx;
padding: 28rpx; padding: 28rpx;
border-radius: 14rpx; margin-top: 0;
} padding-top: 0;
border-radius: 0 0 14rpx 14rpx;
}
.title { .tit {
font-weight: 500; margin: 28rpx 28rpx 0 28rpx;
font-size: 34rpx; padding: 28rpx 28rpx 0 28rpx;
border-radius: 14rpx 14rpx 0 0;
background-color: $theme-oa-color;
color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
&::before { }
width: 8rpx;
height: 26rpx;
border-radius: 4rpx;
background-color: #3175f9;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
.delete { .title {
margin: 22rpx 0; font-weight: 500;
// margin-bottom: 40rpx; font-size: 34rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: #f56c6c;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.plus { &::before {
margin: 22rpx 0; width: 8rpx;
height: 26rpx;
border-radius: 4rpx;
background-color: #3175f9;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
// margin-bottom: 40rpx; .delete {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: #f56c6c;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
width: 100%; .plus {
margin: 22rpx 0;
height: 64rpx; // margin-bottom: 40rpx;
line-height: 64rpx; width: 100%;
background: $theme-oa-color; height: 64rpx;
border-radius: 14rpx; line-height: 64rpx;
font-size: 28rpx; background: $theme-oa-color;
color: #fff; border-radius: 14rpx;
text-align: center; font-size: 28rpx;
} color: #fff;
text-align: center;
}
</style> </style>

View File

@ -5,13 +5,14 @@
<view class="item" :class="current==1?'active':''" @click="current=1">商机信息</view> <view class="item" :class="current==1?'active':''" @click="current=1">商机信息</view>
</view> --> </view> -->
<u-sticky bgColor="#fff"> <u-sticky bgColor="#fff">
<u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false" lineWidth='40' <u-tabs :list="tabLists" style="background-color: #0022C7;" @click="changeCurrent" lineColor='white'
inactiveStyle='color:#666' activeStyle="color:#3274F9"></u-tabs> :scrollable="false" lineWidth='40' inactiveStyle='color:white' activeStyle="color:white"></u-tabs>
</u-sticky> </u-sticky>
<u-skeleton :style="{'margin': skeleton?28+'rpx':0}" :loading="skeleton" :animate="true" title rows="6" <u-skeleton :style="{'margin': skeleton?28+'rpx':0}" :loading="skeleton" :animate="true" title rows="6"
rows-width="100%" rowsHeight="56"> rows-width="100%" rowsHeight="56">
<u--form v-show="current==0" labelPosition="left" :model="formData" ref="archives"> <u--form v-show="current==0" labelPosition="left" :model="formData" ref="archives">
<view class="card">
<!-- <view class="card">
<view class="item"> <view class="item">
<view class="title">基本信息</view> <view class="title">基本信息</view>
<u-form-item labelWidth="auto" label="姓名" required prop="name" borderBottom> <u-form-item labelWidth="auto" label="姓名" required prop="name" borderBottom>
@ -41,12 +42,10 @@
<view class="card" style="margin-bottom: 0;"> <view class="card" style="margin-bottom: 0;">
<view class="item"> <view class="item">
<view class="title">地区信息</view> <view class="title">地区信息</view>
<!-- <districtSelector ref="districtSelectorRef" :datas="formData" :readonly="true"></districtSelector> -->
<u-form-item labelWidth="auto" label="地址" borderBottom> <u-form-item labelWidth="auto" label="地址" borderBottom>
<u--textarea :value="nowAddress" autoHeight readonly></u--textarea> <u--textarea :value="nowAddress" autoHeight readonly></u--textarea>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" label="小队" required prop="address" borderBottom> <u-form-item labelWidth="auto" label="小队" required prop="address" borderBottom>
<!-- <u--input v-model="formData.brigade_name&&formData.brigade_name[0].brigade_name" :readonly="readonly" placeholder="请选择小队"></u--input> -->
<u--input v-model="formData.brigade_name" :readonly="readonly" <u--input v-model="formData.brigade_name" :readonly="readonly"
placeholder="请选择小队"></u--input> placeholder="请选择小队"></u--input>
</u-form-item> </u-form-item>
@ -80,18 +79,191 @@
</block> </block>
</view> </view>
</view> </view>
-->
<view class="personnel_list">
<view class="cards">
<view class="card_head">
<text style="font-size: 34rpx;">人员姓名: {{formData.name}}</text>
</view>
<view class="card_content">
<view class="right">
<view class="">
<text>性别 :</text>
<text> {{formData.sex}}</text>
</view>
<view class="">
<text>年龄 :</text>
<text>{{formData.age}}</text>
</view>
<view class="">
<text>联系方式 :</text>
<text>{{formData.phone}}</text>
</view>
<view class="">
<text>身份证号 :</text>
<text>{{formData.id_card}}</text>
</view>
<view class="hr">
</view>
<view class="">
<text>居住地址 :</text>
<text>{{nowAddress}}</text>
</view>
<view class="">
<text>详细地址 :</text>
<text>{{formData.address}}</text>
</view>
<view class="check_view">
<text>汽车是否到家 :</text>
<u-radio-group v-model="formData.highway" :disabled="readonly"
style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]"
:key="index" :label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</view>
<view class="check_view">
<text>是否使用智能手机 :</text>
<u-radio-group v-model="formData.smart_phone" :disabled="readonly"
style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]"
:key="index" :label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</view>
</view>
</view>
</view>
<view class="cards" v-for="(item, index) in formData.family" :key="'user'+index">
<view class="card_head">
<text style="font-size: 34rpx;">常住人口</text>
</view>
<view class="card_content">
<view class="right">
<view class="">
<text>姓名 :</text>
<text> {{item.name}}</text>
</view>
<view class="">
<text>出生日期 :</text>
<text>{{item.birth_time}}</text>
</view>
<view class="">
<text>就业情况 :</text>
<text>{{formData.phone}}</text>
</view>
<view class="">
<text>技能特长 :</text>
<text>{{item.skills}}</text>
</view>
<view class="check_view">
<text>是否存在学生婴幼儿 :</text>
<u-radio-group v-model="formData.child" :disabled="readonly" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]"
:key="index" :label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</view>
</view>
</view>
</view>
<view class="cards" v-if="formData.child>0" v-for="(item,index) in formData.child_arr"
:key="'child'+index">
<view class="card_head">
<text style="font-size: 34rpx;">婴幼儿信息</text>
</view>
<view class="card_content" v-if='item.age>4'>
<view class="right">
<view class="">
<text>年龄 :</text>
<text>{{item.age}}</text>
</view>
<view class="check_view">
<text>年级 :</text>
<text>{{item.grade}}</text>
</view>
<view class="check_view">
<text>是否补课 :</text>
<u-radio-group v-model="item.is_lesson" style="margin: 16rpx;" :disabled="readonly">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]"
:key="index" :label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</view>
<view class="check_view">
<text>补课内容 :</text>
<text>{{item.lessons || 0}}</text>
</view>
<view class="check_view">
<text>备注 :</text>
<text>{{item.notes}}</text>
</view>
</view>
</view>
<view class="card_content" v-else>
<view class="right">
<view class="">
<text>年龄 :</text>
<text>{{item.age}}</text>
</view>
<view class="check_view">
<text>喂养方式 :</text>
<u-radio-group v-model="item.feeding" :disabled="readonly" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'母乳'},{value:0,label:'奶粉'}]"
:key="index" :label="item.label" :name="item.value">
</u-radio>
</u-radio-group>
</view>
<view class="check_view">
<text>备注 :</text>
<text>{{item.notes}}</text>
</view>
</view>
</view>
</view>
</view>
</u--form> </u--form>
<residents v-show="current==0" ref="residentsRef" :readonly="true" :datas="formData"></residents> <!-- <residents v-show="current==0" ref="residentsRef" :readonly="true" :datas="formData"></residents> -->
<view v-show="current==1"> <view v-show="current==1">
<block v-for="(item, index) in formData.datas" :key="'demand'+index+item.id"> <block v-for="(item, index) in formData.datas" :key="'demand'+index+item.id">
<view class="update_time"> <view class="update_time">
<view>更新时间:{{item.update_time}}</view> <!-- <view>更新时间:{{item.update_time}}</view> -->
<view class="right">{{updateTo(item.update_time)}}</view> <!-- <view class="right">{{updateTo(item.update_time)}}</view> -->
</view> </view>
<block> <block>
<breeding v-if="item.id==32" ref="demandRef32" :datas="item.datas" :readonly="true"></breeding> <breeding v-if="item.id==32" ref="demandRef32" :update_time="item.update_time"
<plant v-if="item.id==7" ref="demandRef7" :datas="item.datas" :readonly="true"></plant> :datas="item.datas" :readonly="true"></breeding>
<store v-if="item.id==8" ref="demandRef8" :datas="item.datas" :readonly="true"></store> <plant v-if="item.id==7" ref="demandRef7" :update_time="item.update_time" :datas="item.datas"
:readonly="true"></plant>
<store v-if="item.id==8" ref="demandRef8" :update_time="item.update_time" :datas="item.datas"
:readonly="true"></store>
<deepProcessing v-if="item.id==9" ref="demandRef9" :datas="item.datas" :readonly="true"> <deepProcessing v-if="item.id==9" ref="demandRef9" :datas="item.datas" :readonly="true">
</deepProcessing> </deepProcessing>
<thickProcessing v-if="item.id==10" ref="demandRef10" :datas="item.datas" :readonly="true"> <thickProcessing v-if="item.id==10" ref="demandRef10" :datas="item.datas" :readonly="true">
@ -279,6 +451,68 @@
} }
} }
.cards {
margin: 30rpx auto;
margin-bottom: 28rpx;
width: 694rpx;
background: #FFFFFF;
border-radius: 30rpx;
opacity: 1;
overflow: hidden;
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.card_head {
padding: 28rpx;
background-color: $theme-oa-color;
color: white;
height: 100rpx;
}
.card_content {
padding: 28rpx;
display: flex;
// justify-content: space-between;
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
view {
margin-bottom: 10rpx;
text:nth-child(2) {
margin-left: 20rpx;
}
}
.check_view {
display: flex;
line-height: 70rpx;
// align-items: center;
}
}
.hr {
border-top: 1px dashed $theme-oa-color;
// display: block;
width: 85vw;
margin: 30rpx 0
}
}
}
.update_time { .update_time {
padding: 32rpx 28rpx 0 28rpx; padding: 32rpx 28rpx 0 28rpx;
display: flex; display: flex;

View File

@ -216,10 +216,11 @@
.left { .left {
text-align: center; text-align: center;
padding: 15rpx 25rpx; // padding: 15rpx 25rpx;
padding-top: 20rpx; // padding-top: 20rpx;
margin-right: 50rpx; padding: 20rpx 20rpx 10px 0;
width: 160rpx; margin-right: 20rpx;
width: 170rpx;
background-color: $theme-oa-color; background-color: $theme-oa-color;
color: white; color: white;
border-radius: 40rpx; border-radius: 40rpx;
@ -227,18 +228,13 @@
.cir { .cir {
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
background-color: #FFFFFF; background-color: #ffffff;
// margin-left: 25rpx; margin-left: 25rpx;
padding: 0 25rpx;
border-radius: 120rpx; border-radius: 120rpx;
position: relative; position: relative;
} }
} }
.right { .right {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -9,7 +9,9 @@
<company></company> <company></company>
</view> </view>
<view class="company_list" v-show="current==1"> <view class="company_list" v-show="current==1">
<view class="info_card" v-for="item in companyList" :key="item.id">
<!-- <view class="info_card" v-for="item in companyList" :key="item.id">
<view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)"> <view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<view> <view>
<view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view> <view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view>
@ -33,10 +35,55 @@
<view class="left_text">区县乡镇</view> <view class="left_text">区县乡镇</view>
<view>{{item.city_name+'/'+item.area_name+'/'+item.street_name}}</view> <view>{{item.city_name+'/'+item.area_name+'/'+item.street_name}}</view>
</view> </view>
<!-- <view>片区经理</view> -->
</view> </view>
</view> </view>
</view> </view>
-->
<view class="cards" v-for="item in companyList" :key="item.id">
<view class="cards_head">
<text style="font-size: 32rpx;width:70vw">{{item.company_name}}</text>
<text @click="navTo('/subpkg/companySign/companySign?id='+item.id)">详情 <uni-icons type="forward"
style="margin-left: 10rpx;" color="white"></uni-icons></text>
</view>
<view class="cards_content">
<view class="right">
<view class="is_contract">
<view>
<text>法人姓名 :</text>
<text>{{item.master_name}}</text>
</view>
<view>
<text style="color: green;" v-if="item.is_contract">已签约</text>
<text style="color: red;" v-else>未签约</text>
</view>
</view>
<view class="">
<text>担任职务 :</text>
<text>{{item.master_position}}</text>
</view>
<view class="" @click="copyPhone(item.master_phone)">
<text>联系电话 :</text>
<text>{{item.master_phone}}</text>
</view>
<view class="">
<text>负责区域 :</text>
<text> {{item.city_name+item.area_name+item.street_name}}</text>
</view>
</view>
</view>
</view>
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText" <u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
<mybtn text="新建签约" @click="navTo('/subpkg/companyUnsign/companyUnsign')"></mybtn> <mybtn text="新建签约" @click="navTo('/subpkg/companyUnsign/companyUnsign')"></mybtn>
@ -164,6 +211,81 @@
<style lang="scss"> <style lang="scss">
page {} page {}
.cards {
margin: 28rpx 0;
width: 694rpx;
background: #ffffff;
border-radius: 30rpx;
overflow: hidden;
.cards_head {
padding: 28rpx;
background-color: $theme-oa-color;
color: white;
display: flex;
justify-content: space-between;
}
.cards_content {
padding: 28rpx;
display: flex;
justify-content: space-between;
.left {
text-align: center;
// padding: 15rpx 25rpx;
padding-top: 20rpx;
width: 160rpx;
background-color: $theme-oa-color;
color: white;
border-radius: 40rpx;
.cir {
width: 120rpx;
height: 120rpx;
background-color: #ffffff;
margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
.is_contract {
width: 85vw;
display: flex;
justify-content: space-between;
height: 40rpx;
}
view {
margin-bottom: 10rpx;
text:nth-child(2) {
margin-left: 20rpx;
}
}
}
}
.u_avatar {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
.fixed_box { .fixed_box {
width: 100%; width: 100%;
position: fixed; position: fixed;

View File

@ -245,7 +245,7 @@
padding-top: 20rpx; padding-top: 20rpx;
margin-right: 50rpx; margin-right: 50rpx;
width: 160rpx; // width: 180rpx;
background-color: $theme-oa-color; background-color: $theme-oa-color;
color: white; color: white;
border-radius: 40rpx; border-radius: 40rpx;