| | |
| | | <template> |
| | | <div class="order-manage"> |
| | | <el-dialog |
| | | :title="editCommonConfig.title + '工单管理'" |
| | | :title="editCommonConfig.title + '客户服务单'" |
| | | :visible.sync="editConfig.visible" |
| | | :width="dialogWidth" |
| | | :before-close="handleClose" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="工单编号" prop="number"> |
| | | <el-form-item label="服务单编号" prop="number"> |
| | | <el-input v-model="editConfig.infomation.number"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="工单名称" prop="name"> |
| | | <el-input v-model="editConfig.infomation.name"></el-input> |
| | | <el-form-item label="服务合同" prop="name"> |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="editConfig.infomation.client_name" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | @select="handleSelectClient" |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient"> |
| | | <i class="el-icon-edit-outline" title="清除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="工单类型" prop="orderType"> |
| | | <el-form-item label="故障类别" prop="orderType"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.orderType" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="联系人姓名" prop="contactId"> |
| | | <el-form-item label="主题" prop="contactId"> |
| | | <el-input v-model="editConfig.infomation.contactId"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="合同订单" prop="name"> |
| | | <div class="custom-name"> |
| | | <el-input v-model="editConfig.infomation.contactId"></el-input> |
| | | <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> |
| | | <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> |
| | | <el-autocomplete |
| | | v-model="editConfig.infomation.client_name" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | @select="handleSelectClient" |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient"> |
| | | <i class="el-icon-edit-outline" title="清除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="报修来源" prop="reportSourceId"> |
| | | <el-form-item label="产品类别" prop="orderType"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.orderType" |
| | | placeholder="请选择" |
| | | class="common-select-sel" |
| | | size="mini" |
| | | > |
| | | <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <div class="common-select-btn"><i class="el-icon-setting"></i></div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="产品名称" prop="name"> |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="editConfig.infomation.client_name" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | @select="handleSelectClient" |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient"> |
| | | <i class="el-icon-edit-outline" title="清除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="服务方式" prop="orderType"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.orderType" |
| | | placeholder="请选择" |
| | | class="common-select-sel" |
| | | size="mini" |
| | | > |
| | | <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <div class="common-select-btn"><i class="el-icon-setting"></i></div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="服务人员" prop="orderType"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.orderType" |
| | | placeholder="请选择" |
| | | class="common-select-sel" |
| | | size="mini" |
| | | > |
| | | <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="联系人姓名" prop="client_name"> |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="editConfig.infomation.client_name" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | @select="handleSelectClient" |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient"> |
| | | <i class="el-icon-edit-outline" title="清除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="严重程度" prop="reportSourceId"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.reportSourceId" |
| | |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="选择源单" prop="sourceSheet"> |
| | | <el-select v-model="editConfig.infomation.sourceSheet" size="mini"> |
| | | <el-option |
| | | v-for="item in sourceSheetOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-col :span="24"> |
| | | <el-form-item label="上门地址" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | | placeholder="请输入内容" |
| | | v-model="editConfig.infomation.problemDescription" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="优先级别" prop="reportSourceId"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.reportSourceId" |
| | | placeholder="请选择" |
| | | class="common-select-sel" |
| | | size="mini" |
| | | > |
| | | <el-option v-for="item in reportSourceOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <div class="common-select-btn"><i class="el-icon-setting"></i></div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="预约上门时间" prop="startTime"> |
| | | <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="销售机会" prop="client_name"> |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="editConfig.infomation.client_name" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | @select="handleSelectClient" |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient"> |
| | | <i class="el-icon-edit-outline" title="清除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 动态信息 --> |
| | | <div class="basic-info-title">动态信息</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="希望处理时间" prop="startTime"> |
| | | <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="实际处理时间" prop="startTime"> |
| | | <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="交通费" prop="reportSourceId"> |
| | | <el-input v-model="editConfig.infomation.problemDescription"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="收费金额" prop="reportSourceId"> |
| | | <el-input v-model="editConfig.infomation.problemDescription"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="花费时间" prop="reportSourceId"> |
| | | <div class="common-select"> |
| | | <el-select |
| | | v-model="editConfig.infomation.reportSourceId" |
| | | placeholder="请选择" |
| | | class="common-select-sel" |
| | | size="mini" |
| | | > |
| | | <el-option v-for="item in reportSourceOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <div class="common-select-btn"><i class="el-icon-setting"></i></div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 时间/金额 --> |
| | | <div class="basic-info-title">时间/金额</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="常见问题" prop="problemDescription"> |
| | | <el-input v-model="editConfig.infomation.problemDescription"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="问题描述" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | | placeholder="请输入内容" |
| | | v-model="editConfig.infomation.problemDescription" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 定位地址 --> |
| | | <div class="basic-info-title">定位地址</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="定位" prop="position"> |
| | | <el-input v-model="editConfig.infomation.position"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="地图" prop="map"> |
| | | <div style="height: 100px"></div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 问题描述 --> |
| | | <div class="basic-info-title">问题描述</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="常见问题" prop="problemDescription"> |
| | | <el-input v-model="editConfig.infomation.problemDescription"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="问题描述" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | | placeholder="请输入内容" |
| | | v-model="editConfig.infomation.problemDescription" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 解决方法 --> |
| | | <div class="basic-info-title">解决方法</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="解决方法" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | | placeholder="请输入内容" |
| | | v-model="editConfig.infomation.problemDescription" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="内部备注" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | | placeholder="请输入内容" |
| | | v-model="editConfig.infomation.problemDescription" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 备注 --> |
| | | <div class="basic-info-title">备注</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注" prop="problemDescription"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 4 }" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 选择审批流程 --> |
| | | <!-- <div class="basic-info-title">选择审批流程</div> |
| | | <div class="basic-info-view"> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="审批流程" prop="approvalWorkflow"> |
| | | <el-select |
| | | v-model="editConfig.infomation.approvalWorkflow" |
| | | placeholder="请选择" |
| | | size="mini" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in approvalWorkflowOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-form-item label="审批步骤" prop="approvalSteps"> |
| | | <el-input v-model="editConfig.infomation.approvalSteps"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | \ |
| | | <el-col :span="20"> |
| | | <el-form-item label="审批人" prop="approvalPerson"> |
| | | <el-input v-model="editConfig.infomation.approvalPerson"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-form-item label="审批意见" prop="approvalOpinion"> |
| | | <el-input v-model="editConfig.infomation.approvalOpinion" type="textarea" :rows="2"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> --> |
| | | <!-- 客户服务单历史记录 --> |
| | | <div v-if="editConfig.title === '编辑'" class="basic-info"> |
| | | <div class="basic-info-label" @click="expandClick('record')"> |
| | | <i v-if="isRecordExpand" class="el-icon-arrow-down"></i> |
| | | <i v-else class="el-icon-arrow-up"></i> |
| | | <span style="margin-left: 10px">客户服务单历史记录</span> |
| | | </div> |
| | | <div v-show="isRecordExpand" class="basic-info-content"> |
| | | <div class="list" v-if="recordTableList.length > 0"> |
| | | <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> |
| | | <TableCommonView |
| | | ref="recordTableListRef" |
| | | :select-box="false" |
| | | :table-list="recordTableList" |
| | | ></TableCommonView> |
| | | </div> |
| | | <div class="no-data" v-else>没有找到任何记录</div> |
| | | </div> |
| | | </div> |
| | | <!-- 服务合同信息 --> |
| | | <div v-if="editConfig.title === '编辑'" class="basic-info"> |
| | | <div class="basic-info-label" @click="expandClick('contract')"> |
| | | <i v-if="isConttractExpand" class="el-icon-arrow-down"></i> |
| | | <i v-else class="el-icon-arrow-up"></i> |
| | | <span style="margin-left: 10px">服务合同信息</span> |
| | | </div> |
| | | <div v-show="isConttractExpand" class="basic-info-content"> |
| | | <div class="list" v-if="recordTableList.length > 0"> |
| | | <PagerView class="page" :pager-options="pagerOptions1" v-on="pagerEvents" /> |
| | | <TableCommonView ref="tableListRef" :select-box="false" :table-list="tableList"></TableCommonView> |
| | | </div> |
| | | <div class="no-data" v-else>没有找到任何记录</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | import { getAllData } from "@/api/client/client" |
| | | import { getAddOrderManage, getUpdateOrderManage } from "@/api/serviceManage/orderManage" |
| | | import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | export default { |
| | | name: "AddOrderManageDialog", |
| | | mixins: [pageMixin], |
| | | props: { |
| | | editCommonConfig: { |
| | | type: Object, |
| | |
| | | editVisible: false, |
| | | title: "", |
| | | infomation: {} |
| | | }, |
| | | isRecordExpand: true, |
| | | recordTableList: {}, |
| | | pagerOptions: { |
| | | currPage: 1, |
| | | pageSize: 5, |
| | | totalCount: 0 |
| | | }, |
| | | isConttractExpand: true, |
| | | tableList: {}, |
| | | pagerOptions1: { |
| | | currPage: 1, |
| | | pageSize: 5, |
| | | totalCount: 0 |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.$store.dispatch("geClient") |
| | | this.getCommonData() |
| | | this.setTable() |
| | | }, |
| | | methods: { |
| | | setTable() { |
| | | this.recordTableList = { |
| | | tableInfomation: [], |
| | | tableColumn: [ |
| | | { label: "服务单编号", prop: "number", min: 100 }, |
| | | { label: "主题", prop: "name" }, |
| | | { label: "服务人员", prop: "clientId", min: 130 }, |
| | | { label: "服务方式", prop: "contactName" }, |
| | | { label: "产品类别", prop: "name" }, |
| | | { label: "产品名称", prop: "orderType" }, |
| | | { label: "修改时间", prop: "reportSourceId" } |
| | | ] |
| | | } |
| | | }, |
| | | getCommonData() { |
| | | getAllData() |
| | | .then((res) => { |
| | |
| | | // 添加附件 |
| | | addAnnexClick() {}, |
| | | // 设置允许上传文件格式 |
| | | setFormatClick() {} |
| | | setFormatClick() {}, |
| | | // 展开收起点击事件 |
| | | expandClick(value) { |
| | | console.log(value) |
| | | if (value === "record") { |
| | | this.isRecordExpand = !this.isRecordExpand |
| | | } else if (value === "contract") { |
| | | this.isConttractExpand = !this.isConttractExpand |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | .basic-info { |
| | | .basic-info-label { |
| | | padding-left: 10px; |
| | | height: 42px; |
| | | line-height: 42px; |
| | | background: #f4f8fe; |
| | | color: #333; |
| | | font-size: 14px; |
| | | } |
| | | .basic-info-content { |
| | | .list { |
| | | .page { |
| | | text-align: right; |
| | | margin-bottom: 5px; |
| | | } |
| | | } |
| | | .no-data { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .dialog-footer { |
| | | background-color: #f5f5f5; |