123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783 |
- <template>
- <div id="register_merge">
- <el-tabs type="border-card" class="tabs">
-
- <div class='moreUser' style='position: absolute;right: 0px;z-index: 2;border: solid 1px rgba(128,128,128,0.2);' v-if='userInfoList&&userInfoList.length>1'>
- <el-table highlight-current-row :data="userInfoList" stripe @row-click="changeUserInfo" style="width: 100%">
- <el-table-column prop="address" header-align="center" label="用户地址" width="200"> </el-table-column>
- </el-table>
- </div>
- <el-tab-pane label="工单登记" style="height: 100%">
- <RegisterMerges
- ref="RegisterMerges"
- :data="editData"
- :arrearsFlag='arrearsFlag'
- :work-order-type="workOrderType"
- :acceptance-department="acceptanceDepartment"
- :phone-number="phoneNumber"
- :register-formdata="registerForm"
- :number="number"
- :download="true"
- :is-rxlx="true"
- :change-user-table="true"
- @remind="remind"
- @getKhbh="getKhbh"
- />
- </el-tab-pane>
- <el-tab-pane label="人员情况" style="height: 100%">
- <currentWorkInfo />
- </el-tab-pane>
- </el-tabs>
- <el-tabs type="border-card" class="tabs" style="margin-top: 10px">
- <el-tab-pane label="来电记录" style="height: 100%">
- <CallRecords :phone-number="phoneNumber" />
- </el-tab-pane>
- <el-tab-pane label="历史工单" style="height: 100%">
- <Historical :phone-number="phoneNumber" />
- </el-tab-pane>
- </el-tabs>
-
- </div>
- </template>
- <script>
- import { getNames, getRegisterList, getPhoneUserInfo } from "@/api/work";
- import RegisterMerges from "@/views/currentSystem/work/order/register/register_merge";
- import Historical from "./components/historical";
- import CallRecords from "./components/callRecords";
- import { getSXJList } from "@/utils/request";
- import { getMail } from "@/api/hotline";
- import axios from 'axios'
- import { lcInfo } from "staticPub/config";
- import currentWorkInfo from "./currentWorkInfo.vue";
- import message from "./message.vue";
- import commonMe from '@/utils/common'
- export default {
- name: "RegisterMerge",
- components: {
- currentWorkInfo,
- RegisterMerges,
- Historical,
- CallRecords,
- message,
- },
- props: {
- data: {
-
- type: Object,
- required: true,
- },
- disabled: {
- type: Boolean,
- },
- callNum: {
- type: Number,
- default: 0,
- },
- phoneNumber: {
- type: Number,
- default: 0,
- },
- workOrderType: {
-
- type: Array,
- required: true,
- },
- acceptanceDepartment: {
-
- type: Array,
- required: true,
- },
- modeltitle: {
- type: String,
- default: "工单登记",
- },
- code: {
- type: String,
- default: "1001",
- },
- },
- data() {
- return {
- userId: "",
- arrearsFlag:false,
- getMail: getMail,
- getUserList: getSXJList,
- rules: {
- gdlx: [{ required: true, message: " ", trigger: "change" }],
- gdxq: [{ required: true, message: " ", trigger: "change" }],
- jjcd: [{ required: true, message: " ", trigger: "change" }],
- slbm: [{ required: true, message: " ", trigger: "change" }],
- slry: [{ required: true, message: " ", trigger: "change" }],
- gddjZt: [{ required: true, message: " ", trigger: "change" }],
- gdms: [{ required: true, message: " ", trigger: "blur" }],
- lczzyy: [{ required: true, message: " ", trigger: "blur" }],
- },
- cxnr: "",
- cxtj: "",
-
- subdivide1: [],
- subdivide2: [],
- indexNum: 0,
- indexNumT: 0,
- number: 1,
-
- emergencyDegree: [
- {
- id: 82,
- cname: "一般",
- },
- {
- id: 83,
- cname: "重要",
- },
- {
- id: 84,
- cname: "非常急",
- },
- ],
-
- receiver: [],
- recordtotal: 0,
- totals: 0,
- pagination: { current: 1, size: 10 },
- paginations: { current: 1, size: 10 },
- recordpagination: { current: 1, size: 10, telephone: "" },
- total: 0,
- list: [],
- djryName: "",
- djsj: "",
- pageInfoShow:true,
- cellStyle: [
- {
- style: { color: "#67C23A", textAlign: "center" },
- field: "jjcdName",
- value: "一般",
- index: 4,
- },
- {
- style: { color: "#E6A23C", textAlign: "center" },
- field: "jjcdName",
- value: "紧急",
- index: 4,
- },
- {
- style: { color: "#F56C6C", textAlign: "center" },
- field: "jjcdName",
- value: "重要",
- index: 4,
- },
- ],
- column: [
- {
- label: "客户编号",
- prop: "khbh",
- },
- {
- label: "客户姓名",
- prop: "khxm",
- },
- {
- label: "客户地址",
- prop: "khdz",
- },
- {
- label: "接单时限",
- prop: "wcsx",
- },
- {
- label: "联系电话",
- prop: "lxdh",
- },
- ],
- rejectedList: [],
- registerForm: {
- intabManName:'',
- id: "",
- gdbh: "",
- ldhm: "",
- slbm: "",
- slry: "",
- gdlx: "",
- gdxf: "",
- gdxf1: "",
- gdxf2: "",
- jjcd: "",
- rzsx: "",
- wcsx: "",
- gddjZt: "",
- gdms: "",
- khbh: "",
- khxm: "",
- lxdh: "",
- khdz: "",
- lcid: "",
- djsj: "",
- djryName: "",
- lczzyy: "",
- ysxz: "",
- sbbh: "",
- sbkj: "",
- sjdh: "",
-
- qwxTime: undefined,
- startTime: "",
- endTime: "",
- orderSource: "",
- typeId: "",
- respUser: "",
- },
- allLcjd: "",
- menuId: "",
- jdsx: "",
- wcsx: "",
- dialogVisible: false,
- clientDialog: false,
- difference: false,
- editData: {},
- dataform: {
- object: {
- CBPQ: "",
- CBB: "",
- YHBH: "",
- YHXM: "",
- YHDZ: "",
- LXDH: "",
- YHZT: "",
- SBBH: "",
- SING: "",
- ACTION: "query",
- },
- url: `api/Business/GetCustomerData`,
- },
- recordlist: [],
- recordcolumn: [
- {
- label: "被叫号码",
- prop: "sysphone",
- sortable: true,
- },
- {
- label: "主叫号码",
- prop: "telephone",
- },
- {
- label: "呼叫时间",
- prop: "callTime",
- },
- {
- label: "挂机时间",
- prop: "hangupTime",
- },
- {
- label: "接通时长(秒)",
- prop: "times",
- },
- {
- label: "呼叫类型",
- prop: "callTypeName",
- },
- {
- label: "处理工号",
- prop: "empName",
- },
- ],
- columns: [
- {
- label: "工单编号",
- prop: "gdbh",
- sortable: true,
- },
- {
- label: "工单状态",
- prop: "lcjdName",
- },
- {
- label: "工单类型",
- prop: "gdlxName",
- },
- {
- label: "工单细分",
- prop: "gdxf1Name",
- },
- {
- label: "优先级别",
- prop: "jjcdName",
- },
- {
- label: "登记人员",
- prop: "djryName",
- },
- {
- label: "登记时间",
- prop: "djsj",
- },
- {
- label: "接单时限",
- prop: "jdsx",
- },
- ],
- lists: [],
- userInfoList:[],
- };
- },
- computed: {},
- created() {
- var aData = new Date();
- this.djsj =
- aData.getFullYear() +
- "-" +
- (aData.getMonth() + 1) +
- "-" +
- aData.getDate() +
- " " +
- aData.getHours() +
- ":" +
- aData.getMinutes();
- this.fetchDatas();
- if (this.phoneNumber !== 0) {
- this.fetchData({ tel: this.phoneNumber });
- }
- this.difference = JSON.stringify(this.data) !== "{}";
- if (this.difference) {
- this.handleEdit();
- this.fetchReject();
- } else {
- this.registerForm.gddjZt = 54;
- this.registerForm.jjcd = 82;
- this.registerForm.ldhm = this.phoneNumber;
- }
- if (this.phoneNumber === 1) {
- this.registerForm.ldhm = "";
- }
- this.getSubdivide1();
- this.getSubdivide2();
- if (this.difference) {
- this.handleEdit();
- }
- this.recordpagination.telephone = this.phoneNumber;
- this.fetchDataPhone(this.recordpagination);
- },
- methods: {
- getKhbh(val) {
- this.userId = val;
- },
- handleCurrentChange(currentPage) {
- this.paginations.current = currentPage;
- this.fetchData();
- },
- handleSizeChange(pagesize) {
- this.paginations.size = pagesize;
- this.fetchData();
- },
- recordhandleCurrentChange(currentPage) {
- this.pagination.current = currentPage;
- this.fetchDatas();
- },
- recordhandleSizeChange(pagesize) {
- this.pagination.size = pagesize;
- this.fetchDatas();
- },
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getSubdivide1() {
- this.subdivide1 = [];
- this.subdivide2 = [];
- this.registerForm.gdxf1 = "";
- this.registerForm.gdxf2 = "";
- for (let i = 0; i < this.workOrderType.length; i++) {
- if (this.workOrderType[i].id === this.registerForm.gdlx) {
- this.indexNum = i;
- break;
- }
- }
- this.subdivide1 = this.workOrderType[this.indexNum].gdglproblemdetails;
- },
- getSubdivide2() {
- this.subdivide2 = [];
- this.registerForm.gdxf2 = "";
- for (let i = 0; i < this.subdivide1.length; i++) {
- if (this.subdivide1[i].id === this.registerForm.gdxf1) {
- this.indexNumT = i;
- break;
- }
- }
- this.subdivide2 = this.subdivide1[this.indexNumT].gdglproblemdetails;
- },
- async fetchData(data) {
-
- try {
- const newaxios = axios.create({
- withCredentials: true,
- timeout: 60000,
- });
- this.registerForm.lxdh=data.tel
- newaxios({
- method: "get",
- url: lcInfo.otherUrlUserdetail,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded",
- Appkey: "oievemzt7bowa9v9sf2iczmg",
- AppSecret: "9rbbnwcs3idyyzfpvs2xv9aqr2g28hd7",
-
-
- },
- params: {
- start: 1,
- limit: 100,
- tel1:data.tel,
-
- },
- }).then((res) => {
- const tempData=res.data.result;
- this.userInfoList=[];
- console.log("接电话信息1-------",res);
- if(res&&res.data&&res.data.result&&tempData.data){
- let tableList = tempData.data;
- this.userInfoList=tableList;
- console.log("接电话信息2-------",this.userInfoList)
- this.userInfoList.forEach((item,index)=>{
- item.currentNum=index;
- })
- const currentNum=0;
-
- this.setRegisterForm(currentNum)
- }else{
- this.pageInfoShow=true;
- }
- });
- } catch (err) {
- console.log(err);
- }
- },
-
- changeUserInfo(data){
- this.setRegisterForm(data.currentNum);
- },
-
- setRegisterForm(number){
- const data=this.userInfoList[number];
- const startTime = commonMe.getDayAppend(commonMe.getPreYaerDate('day'), 'start')
- const endTime = commonMe.getDayAppend(commonMe.getCurrentDate('day'), 'end')
- const newaxios = axios.create({
- withCredentials: true,
- timeout: 60000,
- });
- newaxios({
- method: "get",
- url: lcInfo.getWaterUserInfosDetails2,
- headers: {
-
- Appkey: lcInfo.client_id2,
- AppSecret: lcInfo.client_secret2,
-
-
- },
- params: {
- userId: data.userid,
- startTime: startTime,
- endTime: endTime
-
- },
- }).then(res=>{
- let tempData = JSON.parse(res.data.result);
- console.log(tempData,'tempdata')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- this.registerForm.intabManName = tempData.data[0].InTabManName
- this.number=number;
- let lastChange = tempData.data[0].LastChange
- let totalMoney = tempData.data[0].TotMoneyDX
- let payMoney = tempData.data[0].PayMoney
- let yue = (lastChange + payMoney - totalMoney).toFixed(2)
- if(yue>=0){
- this.registerForm.yue = yue
- this.number=number;
- }else{
- this.registerForm.yue = yue
- this.arrearsFlag = true
- this.number=number;
- }
-
-
- }
- ).catch(e=>{
-
- this.number=number;
- })
- this.registerForm.khbh = data.userid;
- this.registerForm.khxm = data.username;
- this.registerForm.khdz =data.address;
- this.registerForm.sbbh = data.watertabid;
- this.registerForm.metertype = data.metertype;
- this.registerForm.lxdh = data.tel1;
- this.registerForm.ysxz = data.watertype1;
- debugger
- this.registerForm.sbkj=data.caliber
- this.registerForm.kaihutime=data.kaihutime;
-
- },
-
- async fetchDataPhone(data) {
- try {
- const tableData = await this.getMail(data);
- this.recordlist = tableData.result.records;
- this.recordtotal = tableData.result.total;
- console.log(tableData);
- if (tableData.result.message) {
- this.$message(tableData.result.message);
- }
- } catch (err) {
- console.log(err);
- }
- },
-
- fetchDatas() {
- const data = {
- current: this.paginations.current,
- size: this.paginations.size,
- ldhm: this.phoneNumber,
- };
- getRegisterList(data).then((res) => {
- this.totals = res.result.total;
- this.lists = res.result.records;
- for (var i = 0; i < this.lists.length; i++) {
- if (!this.lists[i].djsj) {
- this.lists[i].djsj = "无";
- }
- }
- });
- },
- search() {
-
- if (this.cxtj !== "" && this.cxnr !== "") {
- const data = {
- object: {
- CBPQ: "",
- CBB: "",
- YHBH: "0",
- YHXM: "",
- YHDZ: "",
- LXDH: "",
- YHZT: "",
- SBBH: "",
- SING: "",
- ACTION: "query",
- },
- url: "api/Business/GetCustomerData",
- };
- if (this.cxtj === 1) {
- data.object.YHBH = this.cxnr;
- } else if (this.cxtj === 2) {
- data.object.LXDH = this.cxnr;
- }
- getNames(data).then((res) => {
- console.log(res);
- if (res.code === 1) {
- this.list = res.result.records.map((v) => {
- return {
- khbh: v.YHBH,
- khxm: v.YHXM,
- lxdh: v.LXDH,
- khdz: v.YHDZ,
- };
- });
- }
- });
- } else {
- this.$message.error("请选择查询条件,并且输入6位以上查询");
- }
- },
-
- nameBtn() {
- this.clientDialog = true;
- },
-
- clientBtn(val) {
- this.clientDialog = false;
- this.registerForm = {
- ...this.registerForm,
- ...JSON.parse(JSON.stringify(val)),
- };
- },
-
- handleEdit() {
- const data = JSON.parse(JSON.stringify(this.data));
- console.log("处理llllllllllllllllll", data);
- this.djryName = data.djryName;
- this.djsj = data.djsj;
- Object.keys(this.registerForm).forEach((key) => {
- this.registerForm[key] = data[key];
- });
- },
-
-
-
-
-
- submitForm() {
- this.$refs.RegisterMerges.submitForm(1);
- },
- remind() {
- this.$emit("remind", "成功");
- },
-
-
-
-
-
-
-
-
-
-
-
- },
- };
- </script>
- <style lang="scss" scoped>
- #register_merge {
- .wrap {
- border: 1px solid rgba(57, 153, 243, 0.15);
- >>> .el-collapse-item__header {
- background: rgba(57, 153, 243, 0.15);
- font-size: 14px;
- height: 28px;
- }
- }
- .dialog_style {
- width: 100%;
- overflow-y: auto;
- /deep/ .el-table {
- text-align: center;
- vertical-align: middle;
- }
- }
- /deep/ .el-form-item {
- margin-bottom: 5px;
- }
- /deep/ .el-collapse-item__wrap {
- margin-top: 10px;
- }
- }
- .btn {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- width: 230px;
- height: 90px;
- line-height: 90px;
- text-align: center;
- color: #fff;
- font-size: 25px;
- text-transform: uppercase;
- cursor: pointer;
- background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
- background-size: 400%;
- border-radius: 60px;
- }
- .btn:hover {
- animation: animate 8s linear infinite;
- }
- @keyframes animate {
- 0% {
- background-position: 0%;
- }
- 100% {
- background-position: 400%;
- }
- }
- .btn::before {
- content: "";
- position: absolute;
- top: -5px;
- left: -5px;
- right: -5px;
- bottom: -5px;
- z-index: -1;
- background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
- background-size: 400%;
- border-radius: 40px;
- opacity: 0;
- transition: 0.5s;
- }
- .btn:hover::before {
- filter: blur(20px);
- opacity: 1;
- animation: animate 8s linear infinite;
- }
- </style>
|