|
|
|
|
|
|
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<div> |
|
|
<div> |
|
|
<el-button v-if="btnRule.inspectquestion_assign&&(status==1||status==='0')" |
|
|
|
|
|
|
|
|
<el-button @click="assignList" v-if="btnRule.inspectquestion_assign&&(status==1||status==='0')" |
|
|
:disabled="multipleSelection.length>0?false:true" size="small" type="primary">批量指派 |
|
|
:disabled="multipleSelection.length>0?false:true" size="small" type="primary">批量指派 |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-button v-if="btnRule.inspectquestion_finished&&(status==1||status==='0'||status==2)" |
|
|
|
|
|
|
|
|
<el-button @click="signList" v-if="btnRule.inspectquestion_finished&&(status==1||status==='0'||status==2)" |
|
|
:disabled="multipleSelection.length>0?false:true" size="small" type="success">批量标记完成 |
|
|
:disabled="multipleSelection.length>0?false:true" size="small" type="success">批量标记完成 |
|
|
</el-button> |
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<el-button v-if="btnRule.inspectquestion_assign&&scope.row.status==1" type="primary" size="mini" |
|
|
<el-button v-if="btnRule.inspectquestion_assign&&scope.row.status==1" type="primary" size="mini" |
|
|
icon="el-icon-s-operation" @click="assign(scope.row)">指派 |
|
|
icon="el-icon-s-operation" @click="assign(scope.row)">指派 |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-button v-if="btnRule.inspectquestion_dealWith&&scope.row.status==2&&scope.row.assignUser==info.id" type="primary" size="mini" |
|
|
|
|
|
icon="el-icon-monitor" @click="handleAddRole(scope.row)">处理 |
|
|
|
|
|
|
|
|
<el-button v-if="btnRule.inspectquestion_dealWith&&scope.row.status==2&&scope.row.assignUser==info.id" |
|
|
|
|
|
type="primary" size="mini" |
|
|
|
|
|
icon="el-icon-monitor" @click="handle(scope.row)">处理 |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-button v-if="btnRule.inspectquestion_finished&&(scope.row.status==1||scope.row.status==2)" type="success" |
|
|
<el-button v-if="btnRule.inspectquestion_finished&&(scope.row.status==1||scope.row.status==2)" type="success" |
|
|
size="mini" icon="el-icon-finished" @click="handleAddRole(scope.row)">标记完成 |
|
|
|
|
|
|
|
|
size="mini" icon="el-icon-finished" @click="sign(scope.row)">标记完成 |
|
|
</el-button> |
|
|
</el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
required: true, message: '责任人不能为空', trigger: 'change' |
|
|
required: true, message: '责任人不能为空', trigger: 'change' |
|
|
}"> |
|
|
}"> |
|
|
<el-select @change="assignUserClick" clearable filterable v-model="ruleForm.assignUser"> |
|
|
<el-select @change="assignUserClick" clearable filterable v-model="ruleForm.assignUser"> |
|
|
<el-option :key="index" :value="item.id" :label="item.realname" v-for="(item,index) in userList"></el-option> |
|
|
|
|
|
|
|
|
<el-option :key="index" :value="item.id" :label="item.realname" |
|
|
|
|
|
v-for="(item,index) in userList"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="联系方式" prop="assignContact"> |
|
|
<el-form-item label="联系方式" prop="assignContact"> |
|
|
|
|
|
|
|
|
</el-button> |
|
|
</el-button> |
|
|
</span> |
|
|
</span> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
<el-dialog v-if="signVisible" :close-on-press-escape="false" :close-on-click-modal="false" ref="signDialog" |
|
|
|
|
|
top="5vh" center title="标记完成" |
|
|
|
|
|
class="sign-dialog" :visible.sync="signVisible"> |
|
|
|
|
|
<el-form ref="ruleForm" :model="ruleForm" size="small" label-width="100px" |
|
|
|
|
|
class="form"> |
|
|
|
|
|
<div style="display: flex;align-items: center;margin-left: 100px;margin-bottom: 30px;font-size: 20px"> |
|
|
|
|
|
<i style="font-size:28px;margin-right:10px;color: #FFAA15" class="el-icon-warning-outline"></i>确定手动标记完成? |
|
|
|
|
|
</div> |
|
|
|
|
|
<el-form-item label="备注" prop="note"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
rows="4" |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
placeholder="备注" |
|
|
|
|
|
v-model="ruleForm.note" |
|
|
|
|
|
maxlength="99" |
|
|
|
|
|
show-word-limit |
|
|
|
|
|
> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<span slot="footer" class="dialog-footer no-print"> |
|
|
|
|
|
<el-button :loading="submitLoading" @click="signSubmit('ruleForm')" type="primary" size="medium" |
|
|
|
|
|
icon="el-icon-printer">提交</el-button> |
|
|
|
|
|
<el-button size="medium" icon="el-icon-back" |
|
|
|
|
|
@click="signVisible = false">返回 |
|
|
|
|
|
</el-button> |
|
|
|
|
|
</span> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
<el-dialog v-if="handleVisible" :close-on-press-escape="false" :close-on-click-modal="false" ref="handleDialog" |
|
|
|
|
|
top="5vh" center title="问题处理" |
|
|
|
|
|
class="handle-dialog" :visible.sync="handleVisible"> |
|
|
|
|
|
<el-form ref="ruleForm" :model="ruleForm" size="small" label-width="120px" |
|
|
|
|
|
class="form"> |
|
|
|
|
|
<el-form-item label="上传处理后图片" prop="handlerImage"> |
|
|
|
|
|
<uploadImage v-model="ruleForm.handlerImage"></uploadImage> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="处理情况" prop="handlerResult"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
rows="4" |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
placeholder="备注" |
|
|
|
|
|
v-model="ruleForm.handlerResult" |
|
|
|
|
|
maxlength="99" |
|
|
|
|
|
show-word-limit |
|
|
|
|
|
> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<span slot="footer" class="dialog-footer no-print"> |
|
|
|
|
|
<el-button :loading="submitLoading" @click="handleSubmit('ruleForm')" type="primary" size="medium" |
|
|
|
|
|
icon="el-icon-printer">提交</el-button> |
|
|
|
|
|
<el-button size="medium" icon="el-icon-back" |
|
|
|
|
|
@click="handleVisible = false">返回 |
|
|
|
|
|
</el-button> |
|
|
|
|
|
</span> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import driverAreaSelect from "@/components/driverAreaSelect"; |
|
|
import driverAreaSelect from "@/components/driverAreaSelect"; |
|
|
import detailDialog from "./detailDialog"; |
|
|
import detailDialog from "./detailDialog"; |
|
|
import {mapGetters} from "vuex"; |
|
|
import {mapGetters} from "vuex"; |
|
|
|
|
|
import uploadImage from '@/components/uploadImage' |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: "problem-container", |
|
|
name: "problem-container", |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
submitLoading:false, |
|
|
|
|
|
|
|
|
handleVisible:false, |
|
|
|
|
|
signVisible: false, |
|
|
|
|
|
submitLoading: false, |
|
|
assignVisible: false, |
|
|
assignVisible: false, |
|
|
drawerWidth: document.body.clientWidth - 190 + "px", |
|
|
drawerWidth: document.body.clientWidth - 190 + "px", |
|
|
direction: "rtl", |
|
|
direction: "rtl", |
|
|
|
|
|
|
|
|
inspectTime: "", |
|
|
inspectTime: "", |
|
|
driverArea: "" |
|
|
driverArea: "" |
|
|
}, |
|
|
}, |
|
|
ruleForm:{}, |
|
|
|
|
|
|
|
|
ruleForm: {}, |
|
|
dataList: [], |
|
|
dataList: [], |
|
|
currentPage: 1, |
|
|
currentPage: 1, |
|
|
pageSize: parseInt((document.body.clientHeight - 365 - 43) / 47), |
|
|
pageSize: parseInt((document.body.clientHeight - 365 - 43) / 47), |
|
|
|
|
|
|
|
|
tableHeight: document.body.clientHeight - 365, |
|
|
tableHeight: document.body.clientHeight - 365, |
|
|
multipleSelection: [], |
|
|
multipleSelection: [], |
|
|
userList: [], |
|
|
userList: [], |
|
|
ids:'' |
|
|
|
|
|
|
|
|
ids: '' |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
components: {driverAreaSelect, detailDialog}, |
|
|
|
|
|
|
|
|
components: {driverAreaSelect, detailDialog,uploadImage}, |
|
|
computed: { |
|
|
computed: { |
|
|
...mapGetters(["btnRule", "info"]) |
|
|
...mapGetters(["btnRule", "info"]) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
watch: {}, |
|
|
watch: {}, |
|
|
methods: { |
|
|
methods: { |
|
|
assignSubmit(formName){ |
|
|
|
|
|
|
|
|
handle(row){ |
|
|
|
|
|
this.ruleForm = { |
|
|
|
|
|
id: row.id + '', |
|
|
|
|
|
handlerImage: [], |
|
|
|
|
|
handlerResult:'' |
|
|
|
|
|
} |
|
|
|
|
|
this.handleVisible = true |
|
|
|
|
|
}, |
|
|
|
|
|
handleSubmit(formName){ |
|
|
|
|
|
this.$refs[formName].validate((valid) => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
this.submitLoading = true |
|
|
|
|
|
api.dealWith(this.ruleForm).then(res => { |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
message: '处理成功!' |
|
|
|
|
|
}) |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
this.handleVisible = false |
|
|
|
|
|
this.getAllList() |
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
signSubmit(formName){ |
|
|
|
|
|
this.$refs[formName].validate((valid) => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
this.submitLoading = true |
|
|
|
|
|
api.finished(this.ruleForm).then(res => { |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
message: '标记完成成功!' |
|
|
|
|
|
}) |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
this.signVisible = false |
|
|
|
|
|
this.getAllList() |
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
signList() { |
|
|
|
|
|
let bl = true |
|
|
|
|
|
let ids = [] |
|
|
|
|
|
this.multipleSelection.map(item => { |
|
|
|
|
|
ids.push(item.id) |
|
|
|
|
|
if (item.status != 1&&item.status != 2) { |
|
|
|
|
|
bl = false |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
if (!bl) { |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
type: 'error', |
|
|
|
|
|
message: '存在已完成状态数据,无法操作,请重新选择' |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.ruleForm = { |
|
|
|
|
|
id: ids.join(','), |
|
|
|
|
|
note: '', |
|
|
|
|
|
} |
|
|
|
|
|
this.signVisible = true |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
assignList() { |
|
|
|
|
|
let bl = true |
|
|
|
|
|
let ids = [] |
|
|
|
|
|
this.multipleSelection.map(item => { |
|
|
|
|
|
ids.push(item.id) |
|
|
|
|
|
if (item.status != 1) { |
|
|
|
|
|
bl = false |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
if (!bl) { |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
type: 'error', |
|
|
|
|
|
message: '存在非’待指派‘状态数据,无法操作,请重新选择!' |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.ruleForm = { |
|
|
|
|
|
id: ids.join(','), |
|
|
|
|
|
assignUser: '', |
|
|
|
|
|
assignContact: '', |
|
|
|
|
|
assignNote: '' |
|
|
|
|
|
} |
|
|
|
|
|
this.assignVisible = true |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
assignSubmit(formName) { |
|
|
this.$refs[formName].validate((valid) => { |
|
|
this.$refs[formName].validate((valid) => { |
|
|
if (valid) { |
|
|
if (valid) { |
|
|
|
|
|
this.submitLoading = true |
|
|
|
|
|
api.assign(this.ruleForm).then(res => { |
|
|
|
|
|
this.$message({ |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
message: '指派成功!' |
|
|
|
|
|
}) |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
this.assignVisible = false |
|
|
|
|
|
this.getAllList() |
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
this.submitLoading = false |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
assignUserClick(){ |
|
|
|
|
|
let ruleForm=JSON.parse(JSON.stringify(this.ruleForm)) |
|
|
|
|
|
if(ruleForm.assignUser){ |
|
|
|
|
|
let child = this.userList.find(item=>item.id==ruleForm.assignUser) |
|
|
|
|
|
if(child){ |
|
|
|
|
|
ruleForm.assignContact=child.mobile |
|
|
|
|
|
|
|
|
assignUserClick() { |
|
|
|
|
|
let ruleForm = JSON.parse(JSON.stringify(this.ruleForm)) |
|
|
|
|
|
if (ruleForm.assignUser) { |
|
|
|
|
|
let child = this.userList.find(item => item.id == ruleForm.assignUser) |
|
|
|
|
|
if (child) { |
|
|
|
|
|
ruleForm.assignContact = child.mobile |
|
|
} |
|
|
} |
|
|
}else{ |
|
|
|
|
|
ruleForm.assignContact='' |
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
ruleForm.assignContact = '' |
|
|
} |
|
|
} |
|
|
this.ruleForm=Object.assign({},ruleForm) |
|
|
|
|
|
|
|
|
this.ruleForm = Object.assign({}, ruleForm) |
|
|
}, |
|
|
}, |
|
|
assign(row){ |
|
|
|
|
|
this.ruleForm={ |
|
|
|
|
|
id:row.id, |
|
|
|
|
|
assignUser:'', |
|
|
|
|
|
assignContact:'', |
|
|
|
|
|
assignNote:'' |
|
|
|
|
|
|
|
|
sign(row) { |
|
|
|
|
|
this.ruleForm = { |
|
|
|
|
|
id: row.id + '', |
|
|
|
|
|
note: '' |
|
|
} |
|
|
} |
|
|
this.assignVisible=true |
|
|
|
|
|
|
|
|
this.signVisible = true |
|
|
|
|
|
}, |
|
|
|
|
|
assign(row) { |
|
|
|
|
|
this.ruleForm = { |
|
|
|
|
|
id: row.id + '', |
|
|
|
|
|
assignUser: '', |
|
|
|
|
|
assignContact: '', |
|
|
|
|
|
assignNote: '' |
|
|
|
|
|
} |
|
|
|
|
|
this.assignVisible = true |
|
|
}, |
|
|
}, |
|
|
getUserAdminList() { |
|
|
getUserAdminList() { |
|
|
adminApi.getUserAdminList().then(res => { |
|
|
adminApi.getUserAdminList().then(res => { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
this.$refs.table.clearSelection(); |
|
|
this.$refs.table.clearSelection(); |
|
|
this.multipleSelection = [] |
|
|
this.multipleSelection = [] |
|
|
|
|
|
this.tableLoading = true |
|
|
searchParam.status = this.status === '0' ? '' : this.status |
|
|
searchParam.status = this.status === '0' ? '' : this.status |
|
|
api.getList(searchParam).then(res => { |
|
|
api.getList(searchParam).then(res => { |
|
|
this.count = res.data.total; |
|
|
this.count = res.data.total; |
|
|
|
|
|
|
|
|
color: #333 !important; |
|
|
color: #333 !important; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.detail-dialog { |
|
|
|
|
|
.assign-dialog { |
|
|
|
|
|
width: 400px !important; |
|
|
|
|
|
|
|
|
.assign-dialog, .sign-dialog{ |
|
|
|
|
|
.el-dialog { |
|
|
|
|
|
width: 500px !important; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
.handle-dialog{ |
|
|
|
|
|
.el-dialog { |
|
|
|
|
|
width: 60% !important; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |