Ver código fonte

新增检点配置

lilei 4 anos atrás
pai
commit
b51adfe04f

+ 6 - 1
components/select/v-select.vue

@@ -1,6 +1,6 @@
 <template>
 	<view style="width: 100%;">
-		<u-input :value="selected" :placeholder="placeholder" @click="showPick=true" type="select" />
+		<u-input :value="selected" :input-align="inputAlign" :placeholder="placeholder" @click="showPick=true" type="select" />
 		<u-picker mode="selector" v-model="showPick" @confirm="toChange" :default-selector="[0]" :range="datalist" range-key="dispName"></u-picker>
 	</view>
 </template>
@@ -24,6 +24,10 @@ export default {
       type: [Boolean, String],
       default: false
     },
+	inputAlign: {
+		type: String,
+		default:'left'
+	},
     value: [String, Number, Array],
     code: {
       type: String,
@@ -55,6 +59,7 @@ export default {
   },
   methods: {
     getDataList (){
+	  console.log(this.datalist)
       return this.datalist
     },
     getOptionName (val) {

+ 158 - 119
pages/spotCheckConfigure/addSpotCheck.vue

@@ -1,98 +1,96 @@
 <template>
 	<view class="pageInfo">
 		<view>
-			<u-form :model="form" ref="uForm">
-				<u-form-item label="任务名称" label-width="160rpx" prop="name"><u-input v-model="form.name" maxlength="30" /></u-form-item>
+			<u-form :model="form" ref="uForm" :error-type="['toast']">
+				<u-form-item label="任务名称" label-width="160rpx" prop="name">
+					<u-input v-model="form.name" input-align="right" placeholder="请输入任务名称(最多30个字符)" :maxlength="30" />
+				</u-form-item>
 				<u-form-item label="任务周期" v-model="form.cycleType" label-width="160rpx" prop="cycleType">
-					<v-select ref="cycleType" code="TASK_CONFIG_CYCLE_TYPE" placeholder="请选择任务周期" v-model="form.cycleType"></v-select>
+					<v-select ref="cycleType" inputAlign="right" code="TASK_CONFIG_CYCLE_TYPE" placeholder="请选择任务周期" v-model="form.cycleType"></v-select>
 				</u-form-item>
-				<u-form-item label="执行日期" v-if="form.cycleType=='DAY'" label-width="160rpx" prop="buildDateDay">
-					 <u-input v-model="form.buildDateDay" @click="showBuildDateDay=true" placeholder="请选择执行时间" type="select"/>
-					 <u-picker v-model="showBuildDateDay" @confirm="confirmBuildDateDay" mode="time" :default-time="form.buildDateDay"></u-picker>
+				<u-form-item label="执行日期" v-if="form.cycleType == 'DAY'" label-width="160rpx" prop="buildDateDay">
+					<u-input v-model="form.buildDateDay" @click="showBuildDateDay = true" input-align="right" placeholder="请选择执行时间" type="select" />
+					<u-picker v-model="showBuildDateDay" @confirm="confirmBuildDateDay" mode="time" :default-time="form.buildDateDay"></u-picker>
 				</u-form-item>
-				<u-form-item label="执行日期" v-if="form.cycleType=='WEEK'" label-width="160rpx" prop="buildDateWeek">
-					<v-select ref="cycleType" code="WEEK" placeholder="请选择周几" v-model="form.buildDateWeek"></v-select>
+				<u-form-item label="执行日期" v-if="form.cycleType == 'WEEK'" label-width="160rpx" prop="buildDateWeekList">
+					<v-select ref="buildDateWeekList" v-show="false" code="WEEK"></v-select>
+					<view v-if="form.buildDateWeekList.length" style="width: 100%;text-align: right;" @click="openWeekSel">{{buildDateWeekNamesList.join(",")}}</view>
+					<view v-else style="color:rgb(192,196,204); width: 100%;text-align: right;" @click="openWeekSel">请选择</view>
+					<u-icon name="icon-xian-11" custom-prefix="xd-icon" size="28" color="#888888" @click="openWeekSel"></u-icon>
 				</u-form-item>
-				<u-form-item label="执行时间" label-width="160rpx" prop="zxTime">
-					<view @click="onShowPickerTime('time')" style="color: rgb(192,196,204);">{{ time ? time : '请选择执行时间' }}</view>
-					<mx-date-picker
-						class="beginTime"
-						:show="showPickerTime"
-						type="time"
-						:value="form.zxTime"
-						:show-tips="true"
-						@confirm="onSelectedTime"
-						@cancel="onSelectedTime"
-					/>
+				<u-form-item label="执行时间" label-width="160rpx" prop="buildTime">
+					<u-input v-model="form.buildTime" @click="showBuildTime = true" input-align="right" placeholder="请选择执行时间" type="select" />
+					<u-picker v-model="showBuildTime" title="请选择执行时间" @confirm="confirmZxTime" mode="time" :params="ZxTimeParams" :default-time="form.buildTime"></u-picker>
 				</u-form-item>
 				<u-form-item label="开始日期" label-width="160rpx" prop="startDate">
-					<view @click="onShowPickerBegin('date')" style="color: rgb(192,196,204);">{{ form.startDate ? form.startDate : '请选择开始日期' }}</view>
-					<mx-date-picker
-						class="beginTime"
-						:show="showPickerBegin"
-						:type="type"
-						:value="form.startDate"
-						:show-tips="true"
-						@confirm="onSelectedBegin"
-						@cancel="onSelectedBegin"
-					/>
+					<u-input v-model="form.startDate" :disabled="form.cycleType == 'DAY'" @click="openStartDate" input-align="right" placeholder="请选择开始日期" :type="form.cycleType == 'DAY'?'text':'select'" />
+					<u-picker v-model="showPickerBegin" title="请选择开始日期" @confirm="confirmStartDate" mode="time" :default-time="form.startDate"></u-picker>
 				</u-form-item>
 				<u-form-item label="结束日期" label-width="160rpx" prop="endDate">
-					<view @click="onShowPickerEnd('date')" style="color: rgb(192,196,204);">{{ form.endDate ? form.endDate : '请选择结束日期' }}</view>
-					<mx-date-picker class="beginTime" :show="showPickerEnd" :type="type" :value="form.endDate" :show-tips="true" @confirm="onSelectedEnd" @cancel="onSelectedEnd" />
-				</u-form-item>
-				<u-form-item label="执行类型" label-width="160rpx" prop="zxType">
-					<v-select ref="contentCls" v-model="form.zxType" code="BUSINESS_EXPERIRENCE_CONTENT_CLS" placeholder="请选择执行类型"></v-select>
+					<u-input v-model="form.endDate" :disabled="form.cycleType == 'DAY'" @click="openEndDate" input-align="right" placeholder="请选择结束日期" :type="form.cycleType == 'DAY'?'text':'select'" />
+					<u-picker v-model="showPickerEnd"  title="请选择结束日期" @confirm="confirmEndDate" mode="time" :default-time="form.endDate"></u-picker>
 				</u-form-item>
 				<u-form-item label="考评指标" label-width="160rpx" prop="assessList">
-					<view style="color:rgb(192,196,204); width: 100%;" @click="openZBpage">{{ form.assessList ? form.assessList.length + '项指标' : '请选择考评指标' }}</view>
+					<view v-if="form.assessList.length" style="width: 100%;text-align: right;" @click="openZBpage">{{form.assessList.length + '项指标'}}</view>
+					<view v-else style="color:rgb(192,196,204); width: 100%;text-align: right;" @click="openZBpage">请选择考评指标</view>
 					<u-icon name="icon-xian-11" custom-prefix="xd-icon" size="28" color="#888888" @click="openZBpage"></u-icon>
 				</u-form-item>
 				<u-form-item label="考评门店" label-width="160rpx" prop="storeList">
-					<view style="color:rgb(192,196,204); width: 100%;" @click="openMDpage">{{ form.storeList ? form.storeList.length + '个门店' : '请选择考评门店' }}</view>
+					<view v-if="form.storeList.length" style="width: 100%;text-align: right;" @click="openMDpage">{{form.storeList.length + '个门店'}}</view>
+					<view v-else style="color:rgb(192,196,204); width: 100%;text-align: right;" @click="openMDpage">请选择考评门店</view>
 					<u-icon name="icon-xian-11" custom-prefix="xd-icon" size="28" color="#888888" @click="openMDpage"></u-icon>
 				</u-form-item>
-				<u-form-item label="任务有效天数" label-width="180rpx" prop="effectiveDay"><u-input v-model="form.effectiveDay" placeholder="请输入任务有效天数" /></u-form-item>
-				<!-- <u-form-item label="执行时间" label-width="160rpx" prop="zxTime">
-					<view @click="onShowPickerTime('time')" style="color: rgb(192,196,204);">{{time ? time : '请选择执行时间'}}</view>
-					<mx-date-picker class="beginTime" :show="showPickerTime" type="time" :value="form.zxTime" :show-tips="true"  @confirm="onSelectedTime" @cancel="onSelectedTime"/>
-				</u-form-item> -->
+				<u-form-item label="有效天数" label-width="160rpx" prop="effectiveDay">
+					<u-input v-model="form.effectiveDay" type="number" input-align="right" placeholder="请输入任务有效天数" />
+				</u-form-item>
 			</u-form>
 			<view class="btns">
 				<u-button class="confirmBtn" type="primary" size="medium" @click="submit">提交</u-button>
 				<u-button class="cancelBtn" size="medium" @click="cancel">取消</u-button>
 			</view>
+			<!-- 周几 -->
+			<uni-multiple-picker
+			:show="showWeekSel"
+			:dataList="weekList"
+			@confirm="weekConfirm"
+			@cancel="showWeekSel=false">
+			</uni-multiple-picker>
 		</view>
 	</view>
 </template>
 
 <script>
 import vSelect from '@/components/select/v-select.vue';
-import MxDatePicker from '@/components/mx-datepicker/mx-datepicker.vue';
 import { clzConfirm } from '@/libs/tools.js';
+import { saveBackLog } from '@/api/checkTaskConfig.js'
+import moment from 'moment';
 export default {
 	components: {
 		vSelect,
-		MxDatePicker
 	},
 	data() {
-		// const currentDate = this.getDate({
-		// 	format: true
-		// })
 		return {
 			showBuildDateDay: false, // 执行日期
 			showPickerBegin: false, // 默认是否显示开始日期的日期组件
 			showPickerEnd: false, // 默认是否显示结束日期的日期组件
-			showPickerTime: false, // 默认是否显示时间的时间组件
-			date: '',
-			time: '',
-			type: 'date',
+			showBuildTime: false, // 默认是否显示执行时间的时间组件
+			showWeekSel: false, // 显示选择周几
+			weekList: [], // 周列表
+			buildDateWeekNamesList: [], // 已选周名称列表
+			ZxTimeParams: {
+				year: false,
+				month: false,
+				day: false,
+				hour: true,
+				minute: true,
+				second: true
+			},
 			form: {
 				name: '', // 任务名称
 				cycleType: '', // 周期类型
-				buildTime: '', // 执行日期
-				zxTime: '', // 执行时间
-				zxType: '', // 执行类型
+				buildDateDay: '', // 执行日期
+				buildDateWeekList: [], // 周几
+				buildTime: '', // 执行时间
 				startDate: '', // 开始日期
 				endDate: '', // 结束日期
 				assessList: '', // 考评指标
@@ -102,13 +100,10 @@ export default {
 			rules: {
 				name: [{ required: true, message: '请输入名称30个字以内', trigger: 'blur' }],
 				cycleType: [{ required: true, message: '请选择任务周期', trigger: 'blur' }],
-				buildTime: [{ required: true, message: '请选择执行日期', trigger: 'blur' }],
-				zxTime: [{ required: true, message: '请选择执行时间', trigger: 'blur' }],
-				zxType: [{ required: true, message: '请选择执行类型', trigger: 'blur' }],
+				buildDateDay: [{ required: true, message: '请选择执行日期', trigger: 'blur' }],
+				buildTime: [{ required: true, message: '请选择执行时间', trigger: 'blur' }],
 				startDate: [{ required: true, message: '请选择开始日期', trigger: 'blur' }],
 				endDate: [{ required: true, message: '请选择结束日期', trigger: 'blur' }],
-				assessList: [{ required: true, message: '请选择考评指标', trigger: 'blur' }],
-				storeList: [{ required: true, message: '请选择考评门店', trigger: 'blur' }],
 				effectiveDay: [{ required: true, message: '请输入任务有效天数', trigger: 'blur' }]
 			}
 		};
@@ -116,88 +111,107 @@ export default {
 	onReady() {
 		this.$refs.uForm.setRules(this.rules);
 		// 检测选择的考评指标
-		uni.$on('selKpItem', (data) => {
+		uni.$on('selKpItem', data => {
+			data.map(item=>{
+				item.assessTargetId = item.id
+				delete item.id
+			})
 			this.form.assessList = data;
 		});
 		// 监听选择的考评门店
-		uni.$on('selKpStores',(data) => {
-			console.log(data)
+		uni.$on('selKpStores', data => {
+			data.map(item=>{
+				item.storeId = item.id
+				delete item.id
+			})
 			this.form.storeList = data;
-		})
+		});
 	},
 	onUnload() {
-		uni.$off('selKpItem')
-		uni.$off('selKpStores')
+		uni.$off('selKpItem');
+		uni.$off('selKpStores');
 	},
 	methods: {
-		confirmBuildDateDay(val){
-			this.form.buildDateDay = val.year +"-"+ val.month +"-"+ val.day
+		// 天类型的执行日期
+		confirmBuildDateDay(val) {
+			this.form.buildDateDay = val.year + '-' + val.month + '-' + val.day;
+			this.form.startDate = this.form.buildDateDay
+			this.form.endDate = this.form.buildDateDay
 		},
-		//  显示开始日期选择
-		onShowPickerBegin(type) {
-			this.type = type;
-			this.showPickerBegin = true;
-			this.form.startDate = this[type];
+		openStartDate(){
+			this.showPickerBegin = this.form.cycleType=='WEEK'
 		},
-		//  日期选择
-		onSelectedBegin(e) {
-			console.log(e);
-			this.showPickerBegin = false;
-			if (e) {
-				this[this.type] = e.value;
-				// this[this.form.startDate] = e.value
-				console.log(this[this.form.startDate], '------------日期', this[this.type]);
+		// 开始日期
+		confirmStartDate(val) {
+			let d = val.year + '-' + val.month + '-' + val.day;
+			let a = this.form.startDate;
+			if (a == '' || moment(d).isBefore(a)) {
+				this.form.startDate = d;
+			} else {
+				uni.showToast({
+					icon: 'none',
+					title: '开始日期应小于结束日期'
+				});
 			}
 		},
-		//  显示结束日期选择
-		onShowPickerEnd(type) {
-			this.type = type;
-			this.showPickerEnd = true;
-			this.form.endDate = this[type];
+		openEndDate(){
+			this.showPickerEnd = this.form.cycleType=='WEEK'
 		},
-		//  日期选择
-		onSelectedEnd(e) {
-			this.showPickerEnd = false;
-			if (e) {
-				this[this.type] = e.value;
-				console.log('------------日期', this[this.type]);
+		// 结束日期
+		confirmEndDate(val) {
+			let d = val.year + '-' + val.month + '-' + val.day;
+			let a = this.form.startDate;
+			if (a == '' || moment(d).isAfter(a)) {
+				this.form.endDate = d;
+			} else {
+				uni.showToast({
+					icon: 'none',
+					title: '结束日期应大于开始日期'
+				});
 			}
 		},
-		// 执行时间选择
-		onShowPickerTime(type) {
-			this.type = type;
-			this.showPickerTime = true;
-			this.form.zxTime = this[type];
-		},
-		//  日期选择
-		onSelectedTime(e) {
-			this.showPickerTime = false;
-			if (e) {
-				this[this.type] = e.value;
+		// 打开选择周
+		openWeekSel(){
+			if(this.weekList.length==0){
+				let arr = this.$refs.buildDateWeekList.getDataList()
+				arr.map(item=>{
+					this.weekList.push({
+						id: item.code,
+						name: item.dispName,
+						checked: true
+					})
+				})
 			}
+			
+			this.showWeekSel = true
 		},
-		// 确认
-		markConfirm(arr) {
-			this.markArr = arr;
-			let arrId = [];
-			arr.map(item => {
-				arrId.push({ id: item.id });
-			});
-			this.formData.labels = arrId;
-			this.isPartMark = false;
+		//  已选择角色确定
+		weekConfirm(arr){
+			console.log(arr)
+			let list = []
+			let weekNames = []
+			arr.map(item=>{
+				list.push(item.id)
+				weekNames.push(item.name)
+			})
+			this.form.buildDateWeekList = list
+			this.buildDateWeekNamesList = weekNames
+			this.showWeekSel = false
 		},
-		//  取消  配件标签
-		markCancel() {
-			this.isPartMark = false;
+		// 执行时间
+		confirmZxTime(val) {
+			this.form.buildTime = val.hour + ':' + val.minute + ':' + val.second;
 		},
+		// 考评指标选择
 		openZBpage() {
 			uni.navigateTo({
-				url: '/pages/spotCheckConfigure/evaluateItem?item='+encodeURIComponent(JSON.stringify(this.form.assessList))
+				url: '/pages/spotCheckConfigure/evaluateItem?item=' + encodeURIComponent(JSON.stringify(this.form.assessList))
 			});
 		},
+		// 考评门店选择
 		openMDpage() {
 			uni.navigateTo({
-				url: '/pages/spotCheckConfigure/evaluateStore?item='+encodeURIComponent(JSON.stringify(this.form.storeList))
+				url: '/pages/spotCheckConfigure/evaluateStore?item=' + encodeURIComponent(JSON.stringify(this.form.storeList))
 			});
 		},
 		// 提交
@@ -205,15 +219,40 @@ export default {
 			console.log(this.form);
 			this.$refs.uForm.validate(valid => {
 				if (valid) {
-					console.log('验证通过');
-				} else {
-					console.log('验证失败');
+					if(this.form.assessList.length==0){
+						uni.showToast({
+							icon: 'none',
+							title: '请选择任务指标'
+						})
+					}
+					else if(this.form.storeList.length==0){
+						uni.showToast({
+							icon: 'none',
+							title: '请选择任务门店'
+						})
+					}else{
+						console.log('验证通过');
+						this.submitForm()
+					}
 				}
 			});
 		},
+		submitForm(){
+			saveBackLog(this.form).then(res => {
+				console.log(res)
+				if(res.status == 200){
+					uni.navigateBack()
+					uni.$emit('updateCheckTaskConfigList')
+				}
+				uni.showToast({
+					icon: 'none',
+					title: res.message
+				})
+			})
+		},
 		// 取消
 		cancel() {
-			this.$refs.uForm.resetFields(this.rules);
+			uni.navigateBack()
 		}
 	}
 };

+ 7 - 0
pages/spotCheckConfigure/evaluateItem.vue

@@ -17,6 +17,9 @@
 				</view>
 			</view>
 		</view>
+		<view style="flex-grow: 1;" v-if="items.length==0">
+			<u-empty text="暂无考评指标" mode="list"></u-empty>
+		</view>
 		<!-- 选择按钮 -->
 		<view class="kp-ok" @click="kpOk">
 			确定选择
@@ -37,7 +40,11 @@
 		},
 		onLoad(opts) {
 			this.checkedList = opts.item&&JSON.parse(opts.item)||[]
+			this.checkedList.map(item=>{
+				item.id = item.assessTargetId
+			})
 			findAllItem().then(res=>{
+				console.log(res,'0')
 				if(res.status == 200){
 					this.items = res.data
 					this.onTab(0)

+ 3 - 0
pages/spotCheckConfigure/evaluateStore.vue

@@ -32,6 +32,9 @@
 		},
 		onLoad(opts) {
 			this.value = opts.item&&JSON.parse(opts.item)||[]
+			this.value.map(item=>{
+				item.id = item.storeId
+			})
 			console.log(this.value)
 			// 查询门店
 			findStoreList({}).then(res=>{

+ 9 - 1
pages/spotCheckConfigure/spotCheckList.vue

@@ -36,6 +36,10 @@ export default {
 	},
 	onLoad() {
 		this.getList();
+		uni.$on("updateCheckTaskConfigList",()=>{
+			this.pageNo = 1;
+			this.getList();
+		})
 	},
 	// 新增
 	onNavigationBarButtonTap() {
@@ -70,7 +74,11 @@ export default {
 				console.log(res)
 				if (res.status == 200) {
 					let list = res.data.list;
-					_this.list = _this.list.concat(list);
+					if(_this.pageNo>1){
+						_this.list = _this.list.concat(list);
+					}else{
+						_this.list = list
+					}
 					_this.total = res.data.count;
 				} else {
 					uni.showToast({

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/app-service.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 26 - 17
unpackage/dist/dev/app-plus/app-view.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/manifest.json


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/view.umd.min.js


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff