346149741
2024-06-22 e0912ef49e4e5d55028dc8e6373911718a65c7c6
投诉
3个文件已修改
452 ■■■■■ 已修改文件
api/qiye.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/details.vue 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiye/record/evaluate.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/qiye.js
@@ -10,7 +10,15 @@
export function companyList(data){
    return http.get('/enforce/order/companyList', {params: data}, { custom: { loading: true }});
}
// 执法记录详情
export function order(id){
    return http.get('/enforce/order/'+id, { custom: { loading: true }});
// 获取执法评价配置详情
export function evaluate(){
    return http.get('/enforce/evaluate/detail', { custom: { loading: true }});
}
// 保存执法评价
export function saveOrder(param) {
  return http.post('/enforce/evaluate/saveOrder', param, { custom: { loading: true }});
}
// 发起投诉
export function orderComplaint(param) {
  return http.post('/enforce/order/orderComplaint', param, { custom: { loading: true }});
}
qiye/record/details.vue
@@ -7,8 +7,10 @@
        </u-navbar>
        <view class="donw-box"></view>
        <view class="page-main">
            <view class="title">
                已评价
            <view class="title">
                <template v-if="msg.isEva==0">已执法待评价</template>
                <template v-if="msg.isEva==1">已评价</template>
                <template v-if="msg.orderStatus==2">待执法</template>
            </view>
            <view class="wbox">
                <view class="item">
@@ -16,7 +18,7 @@
                        执法类型
                    </view>
                    <view class="v">
                        司法检查
                        {{type}}
                    </view>
                </view>
                <view class="item">
@@ -24,7 +26,7 @@
                        执法人
                    </view>
                    <view class="v">
                        刘欢欢
                        {{msg.executeUser}}
                    </view>
                </view>
                <view class="item">
@@ -32,7 +34,7 @@
                        执法部门
                    </view>
                    <view class="v">
                        农业局
                        {{msg.executeDeptName}}
                    </view>
                </view>
                <view class="item">
@@ -40,7 +42,7 @@
                        企业
                    </view>
                    <view class="v">
                        汉庭酒店
                        {{msg.companyName}}
                    </view>
                </view>
            </view>
@@ -51,7 +53,7 @@
                        执法主题
                    </view>
                    <view class="v">
                        汉庭酒店司法检查233号文件
                        {{msg.enforceReason}}
                    </view>
                </view>
                <view class="item">
@@ -59,18 +61,20 @@
                        执法过程
                    </view>
                </view>
                <view class="imgbox">
                    <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                <view class="imgbox">
                    <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
                    <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
                    <img src="/static/i02.png" class="more" alt="" />
                    <img src="/static/i03.png" class="more" alt="" />
                    <img src="/static/i04.png" class="more" alt="" />
                    <img src="/static/i04.png" class="more" alt="" /> -->
                </view>
                <view class="item">
                    <view class="k">
                        执法结果
                    </view>
                    <view class="v" style="color: #EB4746;">
                        停业整顿
                        {{msg.regionReason}}
                    </view>
                </view>
                <view class="item">
@@ -78,88 +82,98 @@
                        执法时间
                    </view>
                    <view class="v">
                        2024-10-10 16:24
                        {{msg.executeTime}}
                    </view>
                </view>
            </view>
            <view style="height: 20rpx;"></view>
            <view class="wbox2">
            <view class="wbox2" v-if="msg.isEva==1">
                <view class="t">
                    执法评价
                </view>
                <view class="sbox">
                    <view class="t2">
                        本次执法还满意程度
                    </view>
                    <view class="xbox">
                        <view @click="daxing(1)">
                            <img src="/static/qiye/xing1.png" alt="" />
                            <view>
                                很糟糕
                            </view>
                        </view>
                        <view @click="daxing(2)">
                            <img v-if="xing>=2" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="xing==2?'hei':''">
                                不满意
                            </view>
                        </view>
                        <view @click="daxing(3)">
                            <img v-if="xing>=3" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="xing==3?'hei':''">
                                一般般
                            </view>
                        </view>
                        <view @click="daxing(4)">
                            <img v-if="xing>=4" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="xing==4?'hei':''">
                                满意
                            </view>
                        </view>
                        <view @click="daxing(5)">
                            <img v-if="xing>=5" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="xing==5?'hei':''">
                                非常满意
                            </view>
                        </view>
                    </view>
                    <view class="line"></view>
                </view>
                <view class="sbox">
                    <view class="t2">
                        这是一个单选题的题干?
                    </view>
                    <u-radio-group v-model="value">
                        <u-radio name="orange">选中</u-radio>
                        <u-radio name="1" :disabled="true">未选中</u-radio>
                    </u-radio-group>
                    <view class="line"></view>
                </view>
                </view>
                <template v-for="(item,index) in qlist">
                    <view class="sbox" v-if="item.questionType==2">
                        <view class="t2">
                            {{item.questionName}}
                        </view>
                        <view class="xbox">
                            <view>
                                <img src="/static/qiye/xing1.png" alt="" />
                                <view>
                                    很糟糕
                                </view>
                            </view>
                            <view>
                                <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" />
                                <img v-else src="/static/qiye/xing2.png" alt="" />
                                <view :class="item.getScore==2?'hei':''">
                                    不满意
                                </view>
                            </view>
                            <view>
                                <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" />
                                <img v-else src="/static/qiye/xing2.png" alt="" />
                                <view :class="item.getScore==3?'hei':''">
                                    一般般
                                </view>
                            </view>
                            <view>
                                <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" />
                                <img v-else src="/static/qiye/xing2.png" alt="" />
                                <view :class="item.getScore==4?'hei':''">
                                    满意
                                </view>
                            </view>
                            <view>
                                <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" />
                                <img v-else src="/static/qiye/xing2.png" alt="" />
                                <view :class="item.getScore==5?'hei':''">
                                    非常满意
                                </view>
                            </view>
                        </view>
                        <view class="line"></view>
                    </view>
                    <view class="sbox" v-if="item.questionType==1">
                        <view class="t2">
                            {{item.questionName}}
                        </view>
                        <u-radio-group v-model="item.remark">
                            <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId"
                            :disabled="item.remark!=aa.answerId">
                                {{aa.answerName}}
                            </u-radio>
                        </u-radio-group>
                        <!-- <u-radio-group v-model="value">
                            <u-radio name="orange">选中</u-radio>
                            <u-radio name="1" :disabled="true">未选中</u-radio>
                        </u-radio-group> -->
                        <view class="line"></view>
                    </view>
                </template>
                <view class="sbox">
                    <view class="t2">
                        对我们的评价
                    </view>
                    <view class="pjbox">
                        这次执法非常好,非常好,这次执法非常好,非常好这次执法非常好,非常好
                        {{msg.evaluateVo.questionRemark}}
                    </view>
                </view>
            </view>
        </view>
        <view class="bottom">
            <view class="one" v-if="type==1">
            <view class="one" v-if="msg.isEva==1">
                <view class="b1" @click="open()">
                    投诉
                </view>
            </view>
            <view class="two" v-if="type==2">
            <view class="two" v-if="msg.isEva==0">
                <view class="b2" @click="open()">
                    投诉
                </view>
                <view class="b3">
                <view class="b3" @click="pingjia()">
                    我要评价
                </view>
            </view>
@@ -174,48 +188,86 @@
                    <view class="font">
                        投诉主题
                    </view>
                    <view>
                        <u-radio-group  placement="row">
                            <u-radio active-color="#3EB47A" label="aaa" name="3"></u-radio>
                            <u-radio active-color="#3EB47A" label="bbb" name="3"></u-radio>
                        </u-radio-group>
                    <view>
                        <u-radio-group v-model="complaintType">
                                                    <u-radio v-for="(aa, ii) in list" :key="ii" :name="aa.dictCode">
                                                        {{aa.dictLabel}}
                                                    </u-radio>
                                                </u-radio-group>
                    </view>
                    <view class="font">
                        投诉内容
                    </view>
                    <view class="margin-top">
                        <u-textarea placeholder="请输入..."></u-textarea>
                        <u-textarea v-model="complaintReason" placeholder="请输入..."></u-textarea>
                    </view>
                </view>
                <view class="down">
                    <view class="enter" @entery="entery">提交</view>
                    <view class="enter" @click="entery()">提交</view>
                </view>
            </view>
        </u-popup>
    </view>
</template>
<script>
<script>
    import { order } from '@/api/index.js'
    import { getDicts } from '@/api/data.js'
    import { config } from '@/common/config'
    import { orderComplaint } from '@/api/qiye.js'
    export default {
        data() {
            return {
            return {
                complaintType:'',
                complaintReason:'',
                id:'',
                msg:{},
                type:'',
                img:[],
                baseUrl: config.baseUrl,
                xing: 5,
                value: 'orange',
                type: 2,
                //type: 2,
                show: false,
                list: [{
                    //todo 请求接口
                        value: '1',
                        label: '江'
                    },
                    {
                        value: '2',
                        label: '湖'
                    }
                ],
                list: [
                ],
                qlist:[]
            }
        },
        onLoad(options) {
            this.id = options.id
            //this.getdata(options.id)
            getDicts('complaint_type').then(val => {
                this.list = val.data.data
                console.log(this.list)
                // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                // this.type = value.dictLabel
            })
        },
        onShow(options) {
            this.getdata()
        },
        methods: {
        methods: {
            getdata(){
                order(this.id).then(val => {
                    this.msg = val.data.data
                    let arr = this.msg.regionImgs.split(",");
                    for(let i = 0;i<arr.length;i++){
                        this.img.push(this.baseUrl+arr[i])
                    }
                    this.qlist = this.msg.evaluateVo.questionList
                    for(let i = 0;i<this.qlist.length;i++){
                        if(this.qlist[i].questionType==1&&this.qlist[i].remark){
                            this.qlist[i].remark = Number(this.qlist[i].remark)
                        }
                    }
                    console.log(this.img)
                    getDicts('enforce_type').then(val => {
                        const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
                        this.type = value.dictLabel
                    })
                })
            },
            daxing(a) {
                this.xing = a
            },
@@ -223,6 +275,11 @@
                uni.previewImage({
                    urls: [url]
                })
            },
            pingjia(){
                uni.navigateTo({
                    url: `/qiye/record/evaluate?id=${this.msg.orderId}`
                })
            },
            open() {
                this.show = true
@@ -232,7 +289,35 @@
                this.$emit('cancel')
            },
            entery() {
                this.$emit('entery')
                this.$emit('entery')
                if(this.complaintType==''){
                    uni.showToast({
                        title: '请选择投诉主题',
                        icon: 'none'
                    })
                    return
                }
                if(this.complaintReason==''){
                    uni.showToast({
                        title: '请输入投诉内容',
                        icon: 'none'
                    })
                    return
                }
                let data = {
                    orderId:Number(this.id),
                    complaintType:this.complaintType,
                    complaintReason:this.complaintReason
                }
                console.log(data)
                //return;
                orderComplaint(data).then(val => {
                    uni.showToast({
                        title: '提交成功',
                        icon: 'none'
                    })
                    this.show = false
                })
            },
        }
@@ -364,9 +449,10 @@
    /deep/ .u-radio-group {
        margin-top: 20rpx;
        flex-wrap: wrap;
        .u-radio {
            margin-right: 20rpx;
            margin-right: 20rpx;
            margin-bottom: 20rpx;
        }
    }
qiye/record/evaluate.vue
@@ -3,88 +3,132 @@
        <view class="wbox2">
            <view class="t">
                执法评价
            </view>
            <view class="sbox">
                <view class="t2">
                    本次执法还满意程度
                </view>
                <view class="xbox">
                    <view @click="daxing(1)">
                        <img src="/static/qiye/xing1.png" alt="" />
                        <view>
                            很糟糕
                        </view>
                    </view>
                    <view @click="daxing(2)">
                        <img v-if="xing>=2" src="/static/qiye/xing1.png" alt="" />
                        <img v-else src="/static/qiye/xing2.png" alt="" />
                        <view :class="xing==2?'hei':''">
                            不满意
                        </view>
                    </view>
                    <view @click="daxing(3)">
                        <img v-if="xing>=3" src="/static/qiye/xing1.png" alt="" />
                        <img v-else src="/static/qiye/xing2.png" alt="" />
                        <view :class="xing==3?'hei':''">
                            一般般
                        </view>
                    </view>
                    <view @click="daxing(4)">
                        <img v-if="xing>=4" src="/static/qiye/xing1.png" alt="" />
                        <img v-else src="/static/qiye/xing2.png" alt="" />
                        <view :class="xing==4?'hei':''">
                            满意
                        </view>
                    </view>
                    <view @click="daxing(5)">
                        <img v-if="xing>=5" src="/static/qiye/xing1.png" alt="" />
                        <img v-else src="/static/qiye/xing2.png" alt="" />
                        <view :class="xing==5?'hei':''">
                            非常满意
                        </view>
                    </view>
                </view>
                <view class="line"></view>
            </view>
            <view class="sbox">
                <view class="t2">
                    这是一个单选题的题干?
                </view>
                <u-radio-group v-model="value">
                    <u-radio name="orange">选中</u-radio>
                    <u-radio name="1" :disabled="true">未选中</u-radio>
                </u-radio-group>
                <view class="line"></view>
            </view>
            </view>
            <template v-for="(item,index) in msg">
                <view class="sbox" v-if="item.questionType==2">
                    <view class="t2">
                        {{item.questionName}}
                    </view>
                    <view class="xbox">
                        <view @click="daxing(index,1)">
                            <img src="/static/qiye/xing1.png" alt="" />
                            <view>
                                很糟糕
                            </view>
                        </view>
                        <view @click="daxing(index,2)">
                            <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==2?'hei':''">
                                不满意
                            </view>
                        </view>
                        <view @click="daxing(index,3)">
                            <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==3?'hei':''">
                                一般般
                            </view>
                        </view>
                        <view @click="daxing(index,4)">
                            <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==4?'hei':''">
                                满意
                            </view>
                        </view>
                        <view @click="daxing(index,5)">
                            <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" />
                            <img v-else src="/static/qiye/xing2.png" alt="" />
                            <view :class="item.getScore==5?'hei':''">
                                非常满意
                            </view>
                        </view>
                    </view>
                    <view class="line"></view>
                </view>
                <view class="sbox" v-if="item.questionType==1">
                    <view class="t2">
                        {{item.questionName}}
                    </view>
                    <u-radio-group v-model="item.remark" @change="radioGroupChange">
                        <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId">
                            {{aa.answerName}}
                        </u-radio>
                    </u-radio-group>
                    <view class="line"></view>
                </view>
            </template>
            <view class="sbox">
                <view class="t2" style="margin-bottom: 30rpx;">
                    对我们的评价
                </view>
                <u-textarea placeholder="请输入..."></u-textarea>
                <u-textarea v-model="questionRemark" placeholder="请输入..."></u-textarea>
            </view>
        </view>
        <view style="height: 200rpx;"></view>
        <view class="bottom">
            <view class="b1">
            <view class="b1" @click="submit()">
                提交
            </view>
        </view>
    </view>
</template>
<script>
<script>
    import { evaluate,saveOrder } from '@/api/qiye.js'
    export default {
        data() {
            return {
                xing: 5,
                value: 'orange',
                value: 'orange',
                msg:[],
                questionRemark:'',
                orderId:''
            }
        },
        onLoad(options) {
            this.orderId = options.id
            //this.getdata(options.id)
            evaluate().then(val => {
                this.msg = val.data.data.questionList
                for(let i = 0;i<this.msg.length;i++){
                    if(this.msg[i].questionType==2){
                        this.msg[i].getScore = 5
                    }
                }
                //console.log(this.msg)
            })
        },
        methods: {
            daxing(a) {
                this.xing = a
            daxing(i,a) {
                this.msg[i].getScore = a
                //this.xing = a
            },
            radioGroupChange(e){
                //console.log(this.msg)
            },
            submit(){
                let data = {
                    orderId:this.orderId,
                    questionList:this.msg,
                    questionRemark:this.questionRemark
                }
                console.log(data)
                //return;
                saveOrder(data).then(val => {
                    uni.showToast({
                        title: '提交成功',
                        icon: 'none'
                    })
                    setTimeout(() => {
                        uni.navigateBack()
                    }, 500)
                })
            }
        }
    }
</script>