|
|
@@ -0,0 +1,265 @@
|
|
|
+<template>
|
|
|
+ <div class="edit-view">
|
|
|
+ <el-form
|
|
|
+ :model="formData"
|
|
|
+ :rules="rules"
|
|
|
+ ref="form"
|
|
|
+ label-width="100px"
|
|
|
+ label-position="right"
|
|
|
+ size="small"
|
|
|
+ style="max-width: 700px;"
|
|
|
+ >
|
|
|
+ <el-divider direction="horizontal" content-position="left">诉求人基本信息</el-divider>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item prop="source" label="来源渠道">
|
|
|
+ <el-input v-model="formData.source"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item prop="complainAt" label="来电时间">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="formData.complainAt"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ placeholder="选择日期时间"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item prop="name" label="服务对象">
|
|
|
+ <el-input v-model="formData.name"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item prop="sex" label="性别">
|
|
|
+ <el-select v-model="formData.sex">
|
|
|
+ <el-option label="男" value="男"></el-option>
|
|
|
+ <el-option label="女" value="女"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item prop="phone" label="联系方式">
|
|
|
+ <el-input v-model="formData.phone"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider direction="horizontal" content-position="left">诉求信息</el-divider>
|
|
|
+ </el-col>
|
|
|
+ <el-form-item prop="content" label="投诉内容">
|
|
|
+ <el-input type="textarea" :rows="5" v-model="formData.content" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="title" label="投诉目的">
|
|
|
+ <el-input type="textarea" :rows="3" v-model="formData.title" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="nature" label="问题性质" v-if="formData.finish">
|
|
|
+ <el-input v-model="formData.nature" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="unitType" label="涉及的单位" v-if="formData.finish">
|
|
|
+ <el-select v-model="formData.unitType" clearable filterable placeholder="请选择单位类型" disabled>
|
|
|
+ <el-option
|
|
|
+ v-for="item in unitTypeOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-input v-model="formData.unitName" style="width: 68%"></el-input> -->
|
|
|
+ <el-select
|
|
|
+ v-model="formData.unitName"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 68%"
|
|
|
+ v-if="formData.unitType === 'ORGANIZATION'"
|
|
|
+ disabled
|
|
|
+ >
|
|
|
+ <el-option v-for="item in organizations" :key="item.value" :label="item.label" :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ v-model="formData.unitName"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 68%"
|
|
|
+ v-else-if="formData.unitType === 'GRADING_ORGANIZATION'"
|
|
|
+ disabled
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in gradingOrganizations"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="file" label="附件" v-if="formData.finish">
|
|
|
+ <file-upload v-model="formData.file" :readonly="true"></file-upload>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider direction="horizontal" content-position="left" v-if="formData.finish">审查情况</el-divider>
|
|
|
+ <el-form-item prop="processing" label="办理情况" v-if="formData.finish">
|
|
|
+ <el-input type="textarea" :rows="5" v-model="formData.processing" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="situationIsReal" label="情况属实" v-if="formData.finish">
|
|
|
+ <el-radio-group v-model="formData.situationIsReal">
|
|
|
+ <el-radio :label="true" disabled>是</el-radio>
|
|
|
+ <el-radio :label="false" disabled>否</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="reviewFile" label="审查附件" v-if="formData.finish">
|
|
|
+ <file-upload v-model="formData.reviewFile" :readonly="true"></file-upload>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="reviewAt" label="审查时间" v-if="formData.finish">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="formData.reviewAt"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ placeholder="选择日期时间"
|
|
|
+ readonly
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="$router.go(-1)">取消</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ name: 'ComplainShow',
|
|
|
+ created() {
|
|
|
+ if (this.$route.query.id) {
|
|
|
+ this.$http
|
|
|
+ .get('complain/get/' + this.$route.query.id)
|
|
|
+ .then(res => {
|
|
|
+ this.formData = res;
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.$http
|
|
|
+ .post('/gradingOrganization/all', { size: 1000 }, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ if (res.content.length > 0) {
|
|
|
+ res.content.forEach(item => {
|
|
|
+ this.gradingOrganizations.push({
|
|
|
+ label: item.name,
|
|
|
+ value: item.id
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ this.$http
|
|
|
+ .post('/organization/all', { size: 1000 }, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ if (res.content.length > 0) {
|
|
|
+ res.content.forEach(item => {
|
|
|
+ this.organizations.push({
|
|
|
+ label: item.name,
|
|
|
+ value: item.id
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ saving: false,
|
|
|
+ formData: {},
|
|
|
+ rules: {
|
|
|
+ phone: [
|
|
|
+ {
|
|
|
+ pattern: /^1[3-9]\d{9}$/,
|
|
|
+ message: '请输入正确的手机号',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ unitTypeOptions: [
|
|
|
+ { label: '承办单位', value: 'ORGANIZATION' },
|
|
|
+ { label: '考级机构', value: 'GRADING_ORGANIZATION' },
|
|
|
+ { label: '考点', value: 'EXAMINATION' }
|
|
|
+ ],
|
|
|
+ gradingOrganizations: [],
|
|
|
+ organizations: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onSave(finish) {
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.submit(finish);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submit(finish) {
|
|
|
+ let data = { ...this.formData, finish: finish };
|
|
|
+
|
|
|
+ this.saving = true;
|
|
|
+ this.$http
|
|
|
+ .post('/complain/save', data, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ this.saving = false;
|
|
|
+ this.$message.success('成功');
|
|
|
+ // this.$router.go(-1);
|
|
|
+ this.$router.replace({
|
|
|
+ query: {
|
|
|
+ id: res.id
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.saving = false;
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onDelete() {
|
|
|
+ this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
|
|
|
+ .then(() => {
|
|
|
+ return this.$http.post(`/complain/del/${this.formData.id}`);
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$message.success('删除成功');
|
|
|
+ this.$router.go(-1);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ if (e !== 'cancel') {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error((e || {}).error || '删除失败');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+/deep/.el-radio__input.is-checked + .el-radio__label {
|
|
|
+ color: #606266;
|
|
|
+}
|
|
|
+/deep/.el-radio__input.is-disabled + span.el-radio__label {
|
|
|
+ color: #606266;
|
|
|
+}
|
|
|
+/deep/ .el-input.is-disabled .el-input__inner {
|
|
|
+ background-color: #ffffff;
|
|
|
+ color: #606266;
|
|
|
+}
|
|
|
+</style>
|