Ver código fonte

feat(表单验证): 为营销管理必填字段添加红色星号标记并增加验证逻辑

liujt 8 meses atrás
pai
commit
1e73550ee8

+ 20 - 3
pages/saleManage/businessOpportunity/add.vue

@@ -5,18 +5,30 @@
 		</uni-nav-bar>
 		<u-subsection :list="list" :current="current" @change="sectionChange"></u-subsection>
 		<u-cell-group v-show='current==0'>
-			<u-cell title="客户" arrow-direction="down">
+			<u-cell :title="'客户'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					客户
+				</view>
 				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.contactName"
 					@click.native="selectContactShow"></u--input>
 			</u-cell>
-			<u-cell title="商机名称" arrow-direction="down">
+			<u-cell :title="'商机名称'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					商机名称
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.name"></u--input>
 			</u-cell>
 			<u-cell title="负责人" arrow-direction="down">
 				<u--input slot="value" :disabled="true" placeholder="请输入" border="surround"
 					v-model="form.responsibleName"></u--input>
 			</u-cell>
-			<u-cell title="商机来源" arrow-direction="down">
+			<u-cell :title="'商机来源'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					商机来源
+				</view>
 				<uni-data-picker v-model="form.sourceCode" slot="value" placeholder="请选择"
 					:localdata="business_opport_code" @change="sourceCodeOnchange">
 				</uni-data-picker>
@@ -274,6 +286,11 @@
 </script>
 
 <style lang="scss" scoped>
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
+	
 	/deep/.u-cell__body__content {
 		flex: none;
 		margin-right: 16rpx;

+ 25 - 4
pages/saleManage/contact/add.vue

@@ -5,11 +5,19 @@
 		</uni-nav-bar>
 		<u-subsection :list="list" :current="current" @change="sectionChange"></u-subsection>
 		<u-cell-group v-show='current==0'>
-			<u-cell title="客户分类" arrow-direction="down">
+			<u-cell :title="'客户分类'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					客户分类
+				</view>
 				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.categoryName"
 					@click.native="showPicker"></u--input>
 			</u-cell>
-			<u-cell title="客户名称" arrow-direction="down">
+			<u-cell :title="'客户名称'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					客户名称
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.name"></u--input>
 			</u-cell>
 			<u-cell title="客户代号" arrow-direction="down">
@@ -24,14 +32,22 @@
 			<u-cell title="注册资金" arrow-direction="down">
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.registeredCapital"></u--input>
 			</u-cell>
-			<u-cell title="授信额度" arrow-direction="down">
+			<u-cell :title="'授信额度'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					授信额度
+				</view>
 				<u--input type="number" slot="value" placeholder="请输入" border="surround"
 					v-model="form.authorizationLimit"></u--input>
 			</u-cell>
 			<u-cell title="单位电话" arrow-direction="down">
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.phone"></u--input>
 			</u-cell>
-			<u-cell title="注册地址" arrow-direction="down">
+			<u-cell :title="'注册地址'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					注册地址
+				</view>
 				<uni-data-picker v-model="address" :map="{text:'label',value:'value'}" slot="value" placeholder="请选择地址"
 					popup-title="请选择城市" :localdata="chinaData" @change="onchange">
 				</uni-data-picker>
@@ -378,6 +394,11 @@
 </script>
 
 <style lang="scss" scoped>
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
+	
 	/deep/.u-cell__body__content {
 		flex: none;
 		margin-right: 16rpx;

+ 10 - 1
pages/saleManage/contact/components/bankListAdd.vue

@@ -4,7 +4,11 @@
 		</uni-nav-bar>
 		<u-cell-group>
 
-			<u-cell title="单位名称" arrow-direction="down">
+			<u-cell :title="'单位名称'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					<text>单位名称</text>
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.accountName"></u--input>
 			</u-cell>
 			<u-cell title="银行账号" arrow-direction="down">
@@ -102,4 +106,9 @@
 	/deep/.u-subsection__item__text {
 		font-size: 28rpx !important;
 	}
+	
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
 </style>

+ 27 - 3
pages/saleManage/contact/components/followListAdd.vue

@@ -4,11 +4,19 @@
 		</uni-nav-bar>
 		<u-cell-group>
 
-			<u-cell title="客户联系人" arrow-direction="down">
+			<u-cell :title="'客户联系人'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					客户联系人
+				</view>
 				<u--input slot="value" @click.native="showPicker" placeholder="请选择" border="surround"
 					v-model="form.linkName"></u--input>
 			</u-cell>
-			<u-cell title="跟进时间" arrow-direction="down">
+			<u-cell :title="'跟进时间'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					跟进时间
+				</view>
 				<uni-datetime-picker @click.native="setTime" type="datetime" slot="value" v-model="form.followupTime">
 				</uni-datetime-picker>
 			</u-cell>
@@ -17,7 +25,11 @@
 					:localdata="business_stage_code">
 				</uni-data-picker>
 			</u-cell>
-			<u-cell title="跟进内容" arrow-direction="down">
+			<u-cell :title="'跟进内容'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					跟进内容
+				</view>
 				<u--textarea slot="value" placeholder="请输入" border="surround" v-model="form.content"></u--textarea>
 			</u-cell>
 			<u-cell title="达成共识" arrow-direction="down">
@@ -124,6 +136,13 @@
 				console.log(this.form.followupTime)
 			},
 			save() {
+				if (!this.form.linkName) {
+					this.$refs.uToast.show({
+						type: "error",
+						message: "客户联系人不能为空",
+					})
+					return
+				}
 				if (!this.form.followupTime) {
 					this.$refs.uToast.show({
 						type: "error",
@@ -207,6 +226,11 @@
 </script>
 
 <style lang="scss" scoped>
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
+	
 	/deep/.u-cell__body__content {
 		flex: none;
 		margin-right: 16rpx;

+ 20 - 3
pages/saleManage/contact/components/linkListAdd.vue

@@ -4,10 +4,18 @@
 		</uni-nav-bar>
 		<u-cell-group>
 
-			<u-cell title="姓名" arrow-direction="down">
+			<u-cell :title="'姓名'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					姓名
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.linkName"></u--input>
 			</u-cell>
-			<u-cell title="手机" arrow-direction="down">
+			<u-cell :title="'手机'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					手机
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.mobilePhone"></u--input>
 			</u-cell>
 			<u-cell title="电话" arrow-direction="down">
@@ -25,7 +33,11 @@
 			<u-cell title="职务" arrow-direction="down">
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.post"></u--input>
 			</u-cell>
-			<u-cell title="状态" arrow-direction="down">
+			<u-cell :title="'状态'" arrow-direction="down">
+				<view slot="title" style="display: flex; align-items: center;">
+					<text class="required-mark">*</text>
+					状态
+				</view>
 				<uni-data-picker v-model="form.status" slot="value" placeholder="请选择" :localdata="contact_link_status">
 				</uni-data-picker>
 			</u-cell>
@@ -132,6 +144,11 @@
 </script>
 
 <style lang="scss" scoped>
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
+	
 	/deep/.u-cell__body__content {
 		flex: none;
 		margin-right: 16rpx;

+ 52 - 20
pages/saleManage/saleOrder/add.vue

@@ -13,7 +13,11 @@
 				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.contractName"
 					@click.native="selectContractShow"></u--input>
 			</u-cell>
-			<u-cell title="销售类型" arrow-direction="down">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>销售类型</text>
+				</view>
 				<uni-data-picker v-model="form.saleType" slot="value" placeholder="请选择" :localdata="order_type">
 				</uni-data-picker>
 			</u-cell>
@@ -26,9 +30,12 @@
 					v-model="form.contractNumber"></u--input>
 			</u-cell>
 
-			<u-cell title="结算方式" arrow-direction="down">
-				<uni-data-picker v-model="form.settlementMode" slot="value" placeholder="请选择"
-					:localdata="settlement_mode" @change="settlementModeChange">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>结算方式</text>
+				</view>
+				<uni-data-picker v-model="form.settlementMode" slot="value" placeholder="请选择" :localdata="settlement_mode" @change="settlementModeChange">
 				</uni-data-picker>
 			</u-cell>
 			<u-cell title="订单类型" arrow-direction="down">
@@ -78,22 +85,32 @@
 
 		<u-cell-group v-show='current==1&&form.needProduce!=2'>
 
-			<u-cell title="客户名称" arrow-direction="down">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>客户名称</text>
+				</view>
 
-				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.partaName"
-					@click.native="selectContactShow"></u--input>
+				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.partaName" @click.native="selectContactShow"></u--input>
 
 			</u-cell>
 			<u-cell title="客户统一社会信用代码" arrow-direction="down">
 				<u--input slot="value" placeholder="请输入" border="surround"
 					v-model="form.partaUnifiedSocialCreditCode"></u--input>
 			</u-cell>
-			<u-cell title="客户联系人" arrow-direction="down">
-				<uni-data-picker slot="value" v-model="form.partaLinkId" placeholder="请选择" :localdata="linkList"
-					:map="{text:'linkName',value:'id'}" @change="linkChange">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>客户联系人</text>
+				</view>
+				<uni-data-picker slot="value" v-model="form.partaLinkId" placeholder="请选择" :localdata="linkList" :map="{text:'linkName',value:'id'}" @change="linkChange">
 				</uni-data-picker>
 			</u-cell>
-			<u-cell title="客户电话" arrow-direction="down">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>客户电话</text>
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.partaTel"></u--input>
 			</u-cell>
 			<u-cell title="客户传真" arrow-direction="down">
@@ -105,11 +122,13 @@
 			<u-cell title="客户客户地址" arrow-direction="down">
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.partaAddress"></u--input>
 			</u-cell>
-			<u-cell title="售出方名称" arrow-direction="down">
-				<u--input slot="value" placeholder="请输入" v-if="enterprisePage.length <= 1" border="surround"
-					v-model="form.partbName"></u--input>
-				<uni-data-picker v-model="form.partbName" slot="value" placeholder="请选择" :localdata="enterprisePage"
-					:map="{text:'name',value:'name'}" @change="sourceCodeOnchange">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>售出方名称</text>
+				</view>
+				<u--input slot="value" placeholder="请输入" v-if="enterprisePage.length <= 1" border="surround" v-model="form.partbName"></u--input>
+				<uni-data-picker v-model="form.partbName" slot="value" placeholder="请选择" :localdata="enterprisePage" :map="{text:'name',value:'name'}" @change="sourceCodeOnchange">
 				</uni-data-picker>
 			</u-cell>
 
@@ -117,11 +136,18 @@
 				<u--input slot="value" placeholder="请输入" border="surround"
 					v-model="form.partbUnifiedSocialCreditCode"></u--input>
 			</u-cell>
-			<u-cell title="售出方联系人" arrow-direction="down">
-				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.partbLinkName"
-					@click.native="selectUserShow"></u--input>
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>售出方联系人</text>
+				</view>
+				<u--input slot="value" placeholder="请选择" border="surround" v-model="form.partbLinkName" @click.native="selectUserShow"></u--input>
 			</u-cell>
-			<u-cell title="售出方联系电话" arrow-direction="down">
+			<u-cell arrow-direction="down">
+				<view slot="title">
+					<text class="required-mark">*</text>
+					<text>售出方联系电话</text>
+				</view>
 				<u--input slot="value" placeholder="请输入" border="surround" v-model="form.partbTel"></u--input>
 			</u-cell>
 			<u-cell title="售出方传真" arrow-direction="down">
@@ -765,6 +791,11 @@
 		padding-bottom: 84rpx;
 	}
 
+	.required-mark {
+		color: #FF3333;
+		margin-right: 4rpx;
+	}
+
 	.footerButton {
 		width: 100%;
 		height: 84rpx;
@@ -772,6 +803,7 @@
 		position: fixed;
 		bottom: 0;
 		z-index: 10;
+		background-color: #fff;
 
 		/deep/.u-button {
 			height: 100%;