123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- <template>
- <!-- style="background: #FFFFFF;" -->
- <view class="page" style="background: #f0f0f0; padding-top: 7rpx;">
- <!-- <view class="feedback-title">
- <view>问题和意见</view>
- <view class="feedback-quick" @tap="chooseMsg">
- <text>快速键入</text>
- <u-icon name="arrow-right"></u-icon>
- </view>
- 、
- </view> -->
- <view style="background: #FFFFFF;" class="feedback-body">
- <view class="flex align-center padding-tb-sm">
- <view>
- <image :src="UsertList.avatar" style="width: 100rpx;height: 100rpx;border-radius: 50%;" mode=""></image>
- </view>
- <view style="margin-left: 30rpx; line-height: 40rpx;">
- <view style="color: #999;">{{ UsertList.nickName }}</view>
- <view>{{ data.endTime }}</view>
- </view>
- </view>
- <view class="flex align-center add_name" style="margin: 30rpx 0rpx 4rpx;">
- <view class="green"></view>出发地点:{{ data.shipProvince }}{{ data.shipCity }}{{ data.shipDistrict }}{{ data.deliveryAddress }}
- </view>
- <image v-if="globalImages" :src="globalImages + 'images/static/upload/up.png'" class="order_up"></image>
- <view class="flex align-center add_name">
- <view class="orgin"></view>到达地点:{{ data.deliveryProvince }}{{ data.deliveryCity }}{{ data.deliveryDistrict }}{{ data.shipAddress }}
- </view>
- </view>
- <view style="background: #FFFFFF;" class="feedback-body">
- <view class="titls" style="text-align: center;">
- 为本次服务评分
- </view>
- <view style="display: flex; justify-content: center; margin-bottom: 30rpx;">
- <u-rate
- :allow-half="false"
- :disabled="false"
- size="58"
- active-color="#fe6b01"
- :is-fill="false"
- v-model="ratevalue"
- @change="handleRateChange"
- />
- </view>
- <view style="font-size: 24rpx;color: #ccc;text-align: center;">点击星星评分</view>
- </view>
- <view style="background: #FFFFFF;margin-top: 30rpx;" class="feedback-body">
- <view class="titls">
- 快速评价
- </view>
- <view class="flex-container">
- <view class="item" v-for="(item, index) in CreditList" :key="index" :class="{ selected: item.selected }" @click="toggleSelect(index)">
- <image v-if="globalImages" :src="globalImages + item.icon" style="width: 25rpx;height: 25rpx; margin-right: 10rpx;" mode=""></image>
- {{ item.description }}
- </view>
- </view>
- </view>
- <view style="background: #FFFFFF;" class="feedback-body">
- <view class="titls">
- 详细评价
- </view>
- <textarea placeholder="说说这次乘车体验吧..." v-model="sendDate.content" class="feedback-textare" />
- </view>
- <!-- <view class="feedback-title"><text>QQ/邮箱</text></view> -->
- <!-- <view class="feedback-body"><input class="feedback-input" v-model="sendDate.contact" placeholder="方便我们联系你 " />
- </view> -->
- <!-- <view class="feedback-title feedback-star-view">
- <text>我的评价:</text>
- <view style="margin-left: 20rpx;">
- <u-radio-group v-model="value" @change="radioGroupChange">
- <u-radio @change="radioChange" v-for="(item, index) in list" :key="index" :name="item.id"
- :disabled="item.disabled" active-color="#346EF6">
- {{item.name}}
- </u-radio>
- </u-radio-group>
- </view>
- <view class="feedback-star-view">
- <text class="feedback-star" v-for="(value, key) in stars" :key="key" :class="key < sendDate.score ? 'active' : ''" @tap="chooseStar(value)"></text>
- </view>
- </view> -->
-
- <view style="text-align: center; color: #999;">
- <view style="font-size: 24rpx;">评价信息仅供平台服务改进使用</view>
- <view style="font-size: 24rpx;">双峰均不可见具体评价内容</view>
- </view>
- <button type="primary" style="background: #fe6b01; margin-bottom: 30rpx;" class="feedback-submit" @tap="send">提交评价</button>
- </view>
- </template>
- <script>
- import { waitForGlobalImages } from '@/utils/globalImageLoader'
- export default {
- data() {
- return {
- msgContents: ['界面显示错乱', '启动缓慢,卡出翔了', 'UI无法直视,丑哭了', '偶发性崩溃'],
- // stars: [1, 2, 3, 4, 5],
- // count: 5,
- // value: 0,
- list: [{
- id: 0,
- name: '满意',
- disabled: false
- }, {
- id:1,
- name: '不满意',
- disabled: false
- }],
- // u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
- value: 0,
- imageList: [],
- sendDate: {
- score: 0,
- content: '',
- contact: ''
- },
- // riderUserId: '',
- // indentNumber: '',
- satisfactionFlag: '',
- globalImages: '',
- CreditList: [],
- // userId: '',
- // ordersNo: '',
- // ordersId: '',
- ratevalue: 0,
- data: {},
- UsertList: {}
- };
- },
- onLoad(option) {
- waitForGlobalImages().then((path) => {
- console.log('✅ 全局图片路径:', path)
- this.globalImages = path
- })
- // this.riderUserId = e.riderUserId
- // this.indentNumber = e.indentNumber
- // this.userId = e.userId
- // this.ordersNo = e.ordersNo
- // this.ordersId = e.ordersId
- this.data = JSON.parse(decodeURIComponent(option.data))
-
- // console.log(this.riderUserId,'........',this.indentNumber)
- // let deviceInfo = {
- // appid: plus.runtime.appid,
- // imei: plus.device.imei, //设备标识
- // p: plus.os.name === 'Android' ? 'a' : 'i', //平台类型,i表示iOS平台,a表示Android平台。
- // md: plus.device.model, //设备型号
- // app_version: plus.runtime.version,
- // plus_version: plus.runtime.innerVersion, //基座版本号
- // os: plus.os.version,
- // net: '' + plus.networkinfo.getCurrentType()
- // };
- // this.sendDate = Object.assign(deviceInfo, this.sendDate);
-
- this.$Request.getT('/app/credit/getCreditList?isDriver=0').then(res => {
- if (res.code === 0) {
- this.CreditList = res.data
- }
- });
-
- this.$Request.getT('/user/getUserById?id=' + this.data.driverUserId).then(res => {
- if (res.code === 0) {
- this.UsertList = res.data
- }
- });
- },
- methods: {
- close(e) {
- this.imageList.splice(e, 1);
- },
- chooseMsg() {
- //快速输入
- uni.showActionSheet({
- itemList: this.msgContents,
- success: res => {
- this.sendDate.content = this.msgContents[res.tapIndex];
- }
- });
- },
- chooseImg() {
- //选择图片
- uni.chooseImage({
- sourceType: ['camera', 'album'],
- sizeType: 'compressed',
- count: 8 - this.imageList.length,
- success: res => {
- this.imageList = this.imageList.concat(res.tempFilePaths);
- }
- });
- },
- // 选中某个单选框时,由radio时触发
- radioChange(e) {
- console.log(e);
- if (this.value == "满意" && e == "满意") {
- this.satisfactionFlag = 1
- } else if (this.value == '不满意' && e == "不满意") {
- this.satisfactionFlag = 2
- }
- },
- // 选中任一radio时,由radio-group触发
- radioGroupChange(e) {
- // console.log(e);
- },
- // chooseStar(e) {
- // //点击评星
- // this.sendDate.score = e;
- // },
- // previewImage() {
- // //预览图片
- // uni.previewImage({
- // urls: this.imageList
- // });
- // },
- handleRateChange(value) {
- console.log('用户评分:', value);
- this.ratevalue = value
- // 你可以这里处理逻辑,比如赋值给 sendData.content、上传等
- },
- toggleSelect(index) {
- const item = this.CreditList[index];
- item.selected = !item.selected;
-
- // 更新 textarea 内容
- const selectedDescriptions = this.CreditList
- .filter(i => i.selected)
- .map(i => i.description);
-
- this.sendDate.content = selectedDescriptions.join(',');
- },
- send() {
- //发送反馈
- // console.log(JSON.stringify(this.sendDate), '11111');
- if (!this.sendDate.content) {
- uni.showToast({
- icon: 'none',
- title: '请输入反馈内容'
- });
- return;
- }
-
- const selectedItems = this.CreditList.filter(i => i.selected);
- const totalScore = selectedItems.reduce((sum, i) => sum + i.score, 0);
- const types = totalScore >= 0 ? 1 : 0;
- const data = {
- userId: this.data.userId,
- type: types,
- score: totalScore,
- remark: this.sendDate.content,
- orderNo: this.data.ordersNo,
- isDriver: 1,
- ordersId: this.data.ordersId,
- star: this.ratevalue
- }
-
- this.$Request.postT("/user/updateUserCredit", data).then(res => {
- if (res.code == 0) {
- uni.showModal({
- title: '提示',
- content: '评价成功',
- showCancel: false
- });
- } else {
- uni.showModal({
- title: '提示',
- content: res.msg,
- showCancel: false
- });
- }
- }).catch(err => {
- uni.showModal({
- title: '提示',
- content: '网络错误,请重试',
- showCancel: false
- });
- });
-
- // if (this.value = 0) {
- // uni.showToast({
- // icon: 'none',
- // title: '请评论是否满意'
- // });
- // return;
- // }
- // uni.report( this.sendDate,'意见反馈');
- // console.log("uni.report( '意见反馈',this.sendDate)", uni.report('意见反馈', this.sendDate))
- // uni.report('意见反馈', this.sendDate);
- // console.log(this.indentNumber, this.satisfactionFlag)
- // this.$queue.showLoading('加载中...');
- // this.$Request
- // .postJson('/app/indent/userEvaluate', {
- // // state: this.value,
- // // title: this.sendDate.contact,
- // // evaluateMessage: JSON.stringify(this.sendDate.content),
- // evaluateMessage: this.sendDate.content,
- // // riderUserId: this.riderUserId,
- // indentNumber: this.indentNumber,
- // satisfactionFlag: this.value
- // })
- // .then(res => {
- // if (res.code == 0) {
- // uni.showToast({
- // title: '评论成功'
- // });
- // setTimeout(function() {
- // uni.navigateBack();
- // }, 1000);
- // } else {
- // uni.hideLoading();
- // uni.showModal({
- // showCancel: false,
- // title: '评论失败',
- // content: res.msg
- // });
- // }
- // });
- }
- }
- };
- </script>
- <style>
- /* @font-face {
- font-family: uniicons;
- font-weight: normal;
- font-style: normal;
- src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
- } */
- page {
- background-color: #FFFFFF;
- }
- view {
- font-size: 28upx;
- }
- .input-view {
- font-size: 28upx;
- }
- .close-view {
- text-align: center;
- line-height: 14px;
- height: 16px;
- width: 16px;
- border-radius: 50%;
- background: #ff5053;
- color: #ffffff;
- position: absolute;
- top: -6px;
- right: -4px;
- font-size: 12px;
- }
- /* 上传 */
- .uni-uploader {
- flex: 1;
- flex-direction: column;
- }
- .uni-uploader-head {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- }
- .uni-uploader-info {
- color: #b2b2b2;
- }
- .uni-uploader-body {
- margin-top: 16upx;
- }
- .uni-uploader__files {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- }
- .uni-uploader__file {
- margin: 10upx;
- width: 210upx;
- height: 210upx;
- }
- .uni-uploader__img {
- display: block;
- width: 210upx;
- height: 210upx;
- }
- .uni-uploader__input-box {
- position: relative;
- margin: 10upx;
- width: 208upx;
- height: 208upx;
- border: 2upx solid #d9d9d9;
- }
- .uni-uploader__input-box:before,
- .uni-uploader__input-box:after {
- content: ' ';
- position: absolute;
- top: 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- background-color: #d9d9d9;
- }
- .uni-uploader__input-box:before {
- width: 4upx;
- height: 79upx;
- }
- .uni-uploader__input-box:after {
- width: 79upx;
- height: 4upx;
- }
- .uni-uploader__input-box:active {
- border-color: #999999;
- }
- .uni-uploader__input-box:active:before,
- .uni-uploader__input-box:active:after {
- background-color: #999999;
- }
- .uni-uploader__input {
- position: absolute;
- z-index: 1;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- opacity: 0;
- }
- /*问题反馈*/
- .feedback-title {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- padding: 20upx;
- color: #8f8f94;
- font-size: 28upx;
- }
- .feedback-star-view.feedback-title {
- justify-content: flex-start;
- margin: 0;
- }
- .feedback-quick {
- /* position: relative; */
- /* padding-right: 40upx; */
- }
- /* .feedback-quick:after {
- font-family: uniicons;
- font-size: 40upx;
- content: '\e581';
- position: absolute;
- right: 0;
- top: 50%;
- color: #bbb;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- } */
- .feedback-body {
- font-size: 32upx;
- padding: 30upx;
- margin: 30upx 30upx;
- border-radius: 16upx;
- background: #F8F8F8;
- }
- .feedback-textare {
- height: 200upx;
- font-size: 24upx;
- line-height: 50upx;
- width: 100%;
- box-sizing: border-box;
- padding:20upx 20upx 0;
- border: #e4e7ed 1rpx solid;
- background: #f5f5f5;
- border-radius: 15rpx;
- }
- .feedback-input {
- font-size: 32upx;
- height: 60upx;
- padding: 15upx 20upx;
- line-height: 60upx;
- }
- .feedback-uploader {
- padding: 22upx 20upx;
- }
- .feedback-star {
- font-family: uniicons;
- font-size: 40upx;
- margin-left: 6upx;
- }
- .feedback-star-view {
- margin-left: 20upx;
- }
- .feedback-star:after {
- content: '\e408';
- }
- .feedback-star.active {
- color: #ffb400;
- }
- .feedback-star.active:after {
- content: '\e438';
- }
- .feedback-submit {
- background: #007aff;
- color: #ffffff;
- margin: 20upx;
- }
-
- .titls {
- font-size: 32rpx;
- font-family: PingFang SC;
- color: #333333;
- padding-bottom: 30rpx;
- }
-
- .order_up {
- width: 6rpx;
- height: 24rpx;
- margin-left: 6rpx;
- }
-
- .add_name {
- font-family: PingFang SC;
- font-weight: 500;
- font-size: 28rpx;
- color: #1F1F1F;
- }
-
- .green {
- width: 16rpx;
- height: 16rpx;
- background: #1FC657;
- border-radius: 50%;
- margin-right: 20rpx;
- }
-
- .orgin {
- width: 16rpx;
- height: 16rpx;
- background: #FBAC04;
- border-radius: 50%;
- margin-right: 20rpx;
- }
-
- .flex-container {
- display: flex;
- flex-wrap: wrap; /* 允许换行 */
- }
-
- .item {
- /* flex-basis: calc(33.33% - 30rpx); */
- text-align: center;
- border-radius: 8rpx;
- border: 1px solid #999; /* 为了便于观察布局,添加边框 */
- padding: 10rpx 15rpx;
- margin: 15rpx 10rpx;
- line-height: 50rpx;
- }
-
- .selected {
- background-color: #fcf6ec;
- border: 1rpx solid #fe6b01;
- }
- </style>
|