serve.vue 4.95 KB
<template>
	<view class="page">
		<view class="screen-list">
			<view class="list">
				<u-input type="select" @click="typeShow = true" :placeholder='pageindex.start' />
			</view>
		</view>
		<!-- 记录列表 -->
		<view class="record-list">
			<view class="record-list-box" v-for="(item,index) in recordList" :key="index" @click="recordXq(item)">
				<view class="list">
					<view class="title">
						<view class="left">报修:{{item.warrantyIssue}}</view>
						<view class="right"><u-icon name="arrow-rightward"></u-icon></view>
					</view>
					<view class="info-item">申请时间:{{item.applicationTime}}</view>
					<view class="info-item">状态:<span style="color: #0FBB59;">{{item.status=='1'?'受理中':'已完成'}}</span>
					</view>
					<view style="margin-top: 10px;" v-if="item.status  == '2'">
						<u-button type="success" style="width:30%;height: 28px;margin: 0 10px 0 0;"
							@click="baoShow(0,item.id)">评价</u-button>
					</view>
				</view>
			</view>
			<view class="record-list-box" v-for="(item,index) in toushu" :key="index" @click="recordXq(item)">
				<view class="list">
					<view class="title">
						<view class="left">投诉:{{item.complaintType}}</view>
						<view class="right"><u-icon name="arrow-rightward"></u-icon></view>
					</view>
					<view class="info-item">申请时间:{{item.applicationTime}}</view>
					<view class="info-item">状态:<span style="color: #0FBB59;">{{item.status=='1'?'受理中':'已完成'}}</span>
					</view>
					<view style="margin-top: 10px;" v-if="item.status  == '2'">
						<u-button type="success" style="width:30%;height: 28px;margin: 0 10px 0 0;"
							@click="baoShow(1,item.id)">评价</u-button>
					</view>
				</view>
			</view>
		</view>
		<u-select v-model="typeShow" :list="activesType" @confirm="typeChange"></u-select>
		<u-popup class="userForm" v-model="joinShow" mode="center" border-radius="20" :closeable="true" width="90%">
			<view style="padding: 30rpx;">
				<view style="text-align: center;font-size: 16px;font-weight: 600;margin-bottom: 30rpx;">评价</view>
				<view class="" style="background-color: #F0F0F0;border-radius: 20rpx;margin-bottom: 15px;">
					<textarea cols="30" rows="10" placeholder="请输入" maxlength="150"
						style="font-size: 24rpx;background-color: #F0F0F0;border-radius: 20rpx;width: 96%;margin: 0 auto;padding: 20rpx;"
						v-model="form.estimate"></textarea>
					<p style="text-align: right; font-size: 24rpx; color: #666;padding:0 20rpx 10rpx 0;">
						剩余 {{ remainingCharacters }} 字
					</p>
				</view>
				<u-button type="success" @click="submit">提交</u-button>
			</view>
		</u-popup>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				recordList: [

				],
				toushu: [],
				pageindex: {
					start:'投诉记录',
					pageNumber: 0,
					pageSize: 10
				},
				activesType: [{
					value: 0,
					label: '投诉记录'
				}, {
					value: 1,
					label: '报修记录'
				}],
				typeShow: false,
				joinShow: false,
				form: {
					estimate: '',
					id: ''
				},
				indexMsg: 0
			}
		},
		mounted() {
			this.getALL()
		},
		computed: {
			remainingCharacters() {
				const maxLength = 150;
				return maxLength - this.form.estimate.length;
			}
		},
		methods: {
			baoShow(val, ids) {
				this.joinShow = true
				this.form.estimate = ''
				this.form.id = ids
				this.indexMsg = val
			},
			getALL() {
				this.pageindex.createUser = uni.getStorageSync('user').phone
				this.$http.sendRequest('/cereComplaintsSuggestions/queryByPage', 'POST', this.pageindex, 1).then(
				res => {
					this.toushu = res.data.data.content
					this.recordList = []
				})
			},
			recordXq(item) {
				const encodedItem = encodeURIComponent(JSON.stringify(item));
				uni.navigateTo({
					url: `/pages/serve/jiDed?item=${encodedItem}`,
				})
			},
			typeChange(e) {
				this.pageindex.start = e[0].label
				if (e[0].value == 0) {

					this.$http.sendRequest('/cereComplaintsSuggestions/queryByPage', 'POST', this.pageindex, 1).then(
					res => {
						this.toushu = res.data.data.content
						this.recordList = []
					})
				} else {
					this.$http.sendRequest('/cereReportIssuesRepairs/queryByPage', 'POST', this.pageindex, 1).then(res => {
						this.recordList = res.data.data.content
						this.toushu = []
					})
				}
			},
			submit() {
				if (!this.form.estimate) {
					uni.showToast({
						icon: 'none',
						title: '请输入评价信息'
					});
					return;
				}
				if (this.indexMsg == 1) {
					this.$http.sendRequest('/cereComplaintsSuggestions/edit', 'POST', this.form, 1).then(res => {
						uni.showToast({
							icon: 'success',
							title: '评价成功'
						});
					})
					this.joinShow = false
				} else {
					this.$http.sendRequest('/cereReportIssuesRepairs/edit', 'POST', this.form, 1).then(res => {
						uni.showToast({
							icon: 'success',
							title: '评价成功'
						});
					})
					this.joinShow = false
				}
			}
		}
	}
</script>

<style scoped lang="scss">
	@import 'serve.scss';
</style>