| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\order\\invoice\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\order\\invoice\\index.vue","mtime":1761185180146},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgb3JkZXJEZXRhbGwgZnJvbSAnLi9vcmRlckRldGFsbCc7DQppbXBvcnQgew0KICBvcmRlckludm9pY2VDaGFydCwNCiAgb3JkZXJJbnZvaWNlTGlzdCwNCiAgb3JkZXJJbnZvaWNlU2V0LA0KICBpbnZvaWNlSXNzdWFuY2VVcmwsDQogIGRvd25JbnZvaWNlLA0KICByZWRJbnZvaWNlSXNzdWFuY2UsDQogIHNhdmVJbnZvaWNlSW5mbywNCn0gZnJvbSAnQC9hcGkvb3JkZXInOw0KaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ2ludm9pY2UnLA0KICBjb21wb25lbnRzOiB7DQogICAgb3JkZXJEZXRhbGwsDQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgLi4ubWFwU3RhdGUoJ21lZGlhJywgWydpc01vYmlsZSddKSwNCiAgICBsYWJlbFdpZHRoKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiAnODBweCc7DQogICAgfSwNCiAgICBsYWJlbFBvc2l0aW9uKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAndG9wJyA6ICdyaWdodCc7DQogICAgfSwNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgb3JkZXJTaG93OiBmYWxzZSwNCiAgICAgIGludm9pY2VTaG93OiBmYWxzZSwNCiAgICAgIGludm9pY2VNb2RhbFNob3c6IGZhbHNlLA0KICAgICAgaW52b2ljZURldGFpbHM6IHt9LA0KICAgICAgZm9ybUlubGluZTogew0KICAgICAgICBpc19pbnZvaWNlOiAwLA0KICAgICAgICBpbnZvaWNlX251bWJlcjogJycsDQogICAgICAgIHJlbWFyazogJycsDQogICAgICB9LA0KICAgICAga2V5VXJsOiAnJywNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgY3VycmVudFRhYjogJycsDQogICAgICB0YWJsaXN0czogbnVsbCwNCiAgICAgIHRpbWVWYWw6IFtdLA0KICAgICAgcGlja2VyT3B0aW9uczogdGhpcy4kdGltZU9wdGlvbnMsDQogICAgICBvcmRlckxpc3Q6IFtdLA0KICAgICAgdG90YWw6IDAsIC8vIOaAu+adoeaVsA0KICAgICAgb3JkZXJEYXRhOiB7DQogICAgICAgIHBhZ2U6IDEsIC8vIOW9k+WJjemhtQ0KICAgICAgICBsaW1pdDogMTUsIC8vIOavj+mhteaYvuekuuadoeaVsA0KICAgICAgICBzdGF0dXM6ICcnLA0KICAgICAgICBkYXRhOiAnJywNCiAgICAgICAgcmVhbF9uYW1lOiAnJywNCiAgICAgICAgZmllbGRfa2V5OiAnJywNCiAgICAgICAgdHlwZTogJycsDQogICAgICB9LA0KICAgICAgb3JkZXJJZDogMCwNCiAgICAgIGludm9pY2VJZDogMCwNCiAgICB9Ow0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHRoaXMuZ2V0VGFicygpOw0KICAgIHRoaXMuZ2V0TGlzdCgpOw0KICB9LA0KICBtb3VudGVkKCkge30sDQoNCiAgbWV0aG9kczogew0KICAgIG9wZW5OZWdhdGl2ZShyb3cpIHsNCiAgICAgIC8vIOW8ueeql+ehruiupA0KICAgICAgdGhpcy4kY29uZmlybSgn56Gu5a6a5byA5YW36LSf5pWw5Y+R56Wo77yfJywgJ+aPkOekuicsIHsNCiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLA0KICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywNCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLA0KICAgICAgfSkudGhlbigoKSA9PiB7DQogICAgICAgIHJlZEludm9pY2VJc3N1YW5jZShyb3cuaW52b2ljZV9pZCkudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICB9KTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgZG93bkludm9pY2Uocm93KSB7DQogICAgICBkb3duSW52b2ljZShyb3cuaW52b2ljZV9pZCkudGhlbigocmVzKSA9PiB7DQogICAgICAgIHdpbmRvdy5vcGVuKHJlcy5kYXRhLmRvd25sb2FkQmFzZTY0LnBkZlVybCwgJ19ibGFuaycpOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRJbnZvaWNlKHJvdykgew0KICAgICAgaW52b2ljZUlzc3VhbmNlVXJsKHJvdy5pbnZvaWNlX2lkKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgdGhpcy5pbnZvaWNlSWQgPSByb3cuaW52b2ljZV9pZDsNCiAgICAgICAgdGhpcy5rZXlVcmwgPSByZXMuZGF0YS51cmk7DQogICAgICAgIHRoaXMuaW52b2ljZU1vZGFsU2hvdyA9IHRydWU7DQogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5oYW5kbGVNZXNzYWdlKTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5aSE55CGaWZyYW1l5Lyg5YC8DQogICAgaGFuZGxlTWVzc2FnZShldmVudCkgew0KICAgICAgc3dpdGNoIChldmVudC5kYXRhLmV2ZW50KSB7DQogICAgICAgIGNhc2UgJ29uQ2FuY2VsJzoNCiAgICAgICAgICB0aGlzLmludm9pY2VNb2RhbFNob3cgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLmtleVVybCA9ICcnOw0KICAgICAgICAgIHRoaXMuaW52b2ljZUlkID0gMDsNCiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdvblN1Y2Nlc3MnOg0KICAgICAgICAgIHNhdmVJbnZvaWNlSW5mbyh0aGlzLmludm9pY2VJZCwgZXZlbnQuZGF0YS5kYXRhKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsNCiAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICAgICAgdGhpcy5rZXlVcmwgPSAnJzsNCiAgICAgICAgICAgIHRoaXMuaW52b2ljZUlkID0gMDsNCiAgICAgICAgICAgIHRoaXMuaW52b2ljZU1vZGFsU2hvdyA9IGZhbHNlOw0KICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgICB9LA0KICAgIGRldGFsbChlKSB7DQogICAgICB0aGlzLm9yZGVyU2hvdyA9IGU7DQogICAgfSwNCiAgICBvcmRlckluZm8oaWQpIHsNCiAgICAgIHRoaXMub3JkZXJJZCA9IGlkOw0KICAgICAgdGhpcy5vcmRlclNob3cgPSB0cnVlOw0KICAgIH0sDQogICAgZW1wdHkoKSB7DQogICAgICB0aGlzLmZvcm1JbmxpbmUgPSB7DQogICAgICAgIGlzX2ludm9pY2U6IDEsDQogICAgICAgIGludm9pY2VfbnVtYmVyOiAnJywNCiAgICAgICAgcmVtYXJrOiAnJywNCiAgICAgIH07DQogICAgfSwNCiAgICBjYW5jZWwoKSB7DQogICAgICB0aGlzLmludm9pY2VTaG93ID0gZmFsc2U7DQogICAgICB0aGlzLmVtcHR5KCk7DQogICAgfSwNCiAgICBrYWlJbnZvaWNlKGludm9pY2UpIHsNCiAgICAgIGlmIChpbnZvaWNlICE9PSAxKSB7DQogICAgICAgIHRoaXMuZm9ybUlubGluZS5pbnZvaWNlX251bWJlciA9ICcnOw0KICAgICAgICB0aGlzLmZvcm1JbmxpbmUucmVtYXJrID0gJyc7DQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVTdWJtaXQoKSB7DQogICAgICBpZiAodGhpcy5mb3JtSW5saW5lLmlzX2ludm9pY2UgPT09IDEpIHsNCiAgICAgICAgaWYgKHRoaXMuZm9ybUlubGluZS5pbnZvaWNlX251bWJlci50cmltKCkgPT09ICcnKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6K+35aGr5YaZ5Y+R56Wo57yW5Y+3Jyk7DQogICAgICB9DQogICAgICBvcmRlckludm9pY2VTZXQodGhpcy5pbnZvaWNlRGV0YWlscy5pbnZvaWNlX2lkLCB0aGlzLmZvcm1JbmxpbmUpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy5pbnZvaWNlU2hvdyA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICAgIHRoaXMuZW1wdHkoKTsNCiAgICAgICAgICB0aGlzLmdldFRhYnMoKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGVyci5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIGVkaXQocm93KSB7DQogICAgICB0aGlzLmludm9pY2VTaG93ID0gdHJ1ZTsNCiAgICAgIHRoaXMuaW52b2ljZURldGFpbHMgPSByb3c7DQogICAgICB0aGlzLmZvcm1JbmxpbmUuaW52b2ljZV9udW1iZXIgPSByb3cuaW52b2ljZV9udW1iZXI7DQogICAgICB0aGlzLmZvcm1JbmxpbmUucmVtYXJrID0gcm93Lmludm9pY2VfcmVhbXJrOw0KICAgICAgdGhpcy5mb3JtSW5saW5lLmlzX2ludm9pY2UgPSByb3cuaXNfaW52b2ljZTsNCiAgICB9LA0KICAgIC8vIOiuouWNleWIl+ihqA0KICAgIGdldExpc3QoKSB7DQogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOw0KICAgICAgb3JkZXJJbnZvaWNlTGlzdCh0aGlzLm9yZGVyRGF0YSkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgICAgIGxldCBkYXRhID0gcmVzLmRhdGE7DQogICAgICAgICAgdGhpcy5vcmRlckxpc3QgPSBkYXRhLmxpc3Q7DQogICAgICAgICAgdGhpcy50b3RhbCA9IGRhdGEuY291bnQ7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRUYWJzKCkgew0KICAgICAgb3JkZXJJbnZvaWNlQ2hhcnQodGhpcy5vcmRlckRhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLnRhYmxpc3RzID0gcmVzLmRhdGE7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDnsr7noa7mkJzntKIoKQ0KICAgIG9yZGVyU2VhcmNoKCkgew0KICAgICAgdGhpcy5vcmRlckRhdGEucGFnZSA9IDE7DQogICAgICB0aGlzLmdldFRhYnMoKTsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogICAgLy8g5YW35L2T5pel5pyf5pCc57SiKCnvvJsNCiAgICBvbmNoYW5nZVRpbWUoZSkgew0KICAgICAgdGhpcy5vcmRlckRhdGEucGFnZSA9IDE7DQogICAgICB0aGlzLnRpbWVWYWwgPSBlIHx8IFtdOw0KICAgICAgdGhpcy5vcmRlckRhdGEuZGF0YSA9IHRoaXMudGltZVZhbFswXSA/ICh0aGlzLnRpbWVWYWwgPyB0aGlzLnRpbWVWYWwuam9pbignLScpIDogJycpIDogJyc7DQogICAgICB0aGlzLmdldExpc3QoKTsNCiAgICAgIHRoaXMuZ2V0VGFicygpOw0KICAgIH0sDQogICAgLy/orqLljZXnirbmgIHmkJzntKIoKQ0KICAgIHNlbGVjdENoYW5nZSgpIHsNCiAgICAgIHRoaXMub3JkZXJEYXRhLnBhZ2UgPSAxOw0KICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgfSwNCiAgICAvL+iuouWNleaQnOe0oigpDQogICAgb25DbGlja1RhYigpIHsNCiAgICAgIHRoaXMub3JkZXJEYXRhLnBhZ2UgPSAxOw0KICAgICAgdGhpcy5vcmRlckRhdGEudHlwZSA9IHRoaXMuY3VycmVudFRhYjsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAmSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/order/invoice","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mb-16\" :body-style=\"{ padding: 0 }\">\r\n <div class=\"padding-add\">\r\n <el-form\r\n ref=\"orderData\"\r\n :model=\"orderData\"\r\n label-width=\"80px\"\r\n label-position=\"right\"\r\n inline\r\n @submit.native.prevent\r\n >\r\n <el-form-item label=\"创建时间:\">\r\n <el-date-picker\r\n clearable\r\n v-model=\"timeVal\"\r\n type=\"daterange\"\r\n :editable=\"false\"\r\n @change=\"onchangeTime\"\r\n format=\"yyyy/MM/dd\"\r\n value-format=\"yyyy/MM/dd\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n style=\"width: 250px\"\r\n class=\"mr20\"\r\n ></el-date-picker>\r\n </el-form-item>\r\n <el-form-item label=\"搜索:\" prop=\"real_name\" label-for=\"real_name\">\r\n <el-input clearable v-model=\"orderData.real_name\" placeholder=\"请输入\" class=\"form_content_width\">\r\n <el-select v-model=\"orderData.field_key\" slot=\"prepend\" style=\"width: 100px\">\r\n <el-option value=\"all\" label=\"全部\"></el-option>\r\n <el-option value=\"order_id\" label=\"订单号\"></el-option>\r\n <el-option value=\"uid\" label=\"UID\"></el-option>\r\n <el-option value=\"real_name\" label=\"用户姓名\"></el-option>\r\n <el-option value=\"user_phone\" label=\"用户电话\"></el-option>\r\n </el-select>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" v-db-click @click=\"orderSearch\">查询</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" :body-style=\"{ padding: '0 20px 20px' }\">\r\n <el-tabs v-model=\"currentTab\" @tab-click=\"onClickTab\" v-if=\"tablists\">\r\n <el-tab-pane :label=\"'全部发票(' + tablists.all + ')'\" name=\" \" />\r\n <el-tab-pane :label=\"'待开发票(' + tablists.noOpened + ')'\" name=\"1\" />\r\n <el-tab-pane :label=\"'已开发票(' + tablists.opened + ')'\" name=\"2\" />\r\n <el-tab-pane :label=\"'退款发票(' + tablists.refund + ')'\" name=\"3\" />\r\n </el-tabs>\r\n <el-table\r\n :data=\"orderList\"\r\n ref=\"table\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n >\r\n <el-table-column label=\"订单号\" min-width=\"140\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.order_id }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"订单金额\" min-width=\"90\">\r\n <template slot-scope=\"scope\">\r\n <div>¥ {{ scope.row.pay_price }}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"发票类型\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <div v-if=\"scope.row.type === 1\">电子普通发票</div>\r\n <div v-else>纸质专用发票</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"发票抬头类型\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <div v-if=\"scope.row.header_type === 1\">个人</div>\r\n <div v-else>企业</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"下单时间\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.add_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"开票状态\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <div v-if=\"scope.row.is_invoice === 1\">已开票</div>\r\n <div v-else>未开票</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"订单状态\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <div v-if=\"scope.row.status === 0\">未发货</div>\r\n <div v-else-if=\"scope.row.status === 1\">待收货</div>\r\n <div v-else-if=\"scope.row.status === 2\">待评价</div>\r\n <div v-else-if=\"scope.row.status === 3\">已完成</div>\r\n <div v-else-if=\"scope.row.status === -2\">已退款</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"300\">\r\n <template slot-scope=\"scope\">\r\n <template v-if=\"tablists.elec_invoice && tablists.elec_invoice == 1\">\r\n <a\r\n v-if=\"\r\n scope.row.is_invoice == 1 &&\r\n scope.row.unique_num !== '' &&\r\n scope.row.red_invoice_num == '' &&\r\n scope.row.refund_status == 0\r\n \"\r\n v-db-click\r\n @click=\"downInvoice(scope.row)\"\r\n >下载发票</a\r\n >\r\n <el-divider\r\n v-if=\"\r\n scope.row.is_invoice == 1 &&\r\n scope.row.unique_num !== '' &&\r\n scope.row.red_invoice_num == '' &&\r\n scope.row.refund_status == 0\r\n \"\r\n direction=\"vertical\"\r\n />\r\n <a\r\n v-if=\"scope.row.is_invoice == 1 && scope.row.unique_num !== '' && scope.row.red_invoice_num == ''\"\r\n v-db-click\r\n @click=\"openNegative(scope.row)\"\r\n >开具负数发票</a\r\n >\r\n <el-divider\r\n v-if=\"scope.row.is_invoice == 1 && scope.row.unique_num !== '' && scope.row.red_invoice_num == ''\"\r\n direction=\"vertical\"\r\n />\r\n <a\r\n v-if=\"scope.row.is_invoice !== 1 && scope.row.refund_status == 0\"\r\n v-db-click\r\n @click=\"getInvoice(scope.row)\"\r\n >开具电子发票</a\r\n >\r\n <el-divider v-if=\"scope.row.is_invoice !== 1 && scope.row.refund_status == 0\" direction=\"vertical\" />\r\n </template>\r\n <a v-if=\"scope.row.status != -2\" v-db-click @click=\"edit(scope.row)\">操作</a>\r\n <el-divider v-if=\"scope.row.status != -2\" direction=\"vertical\" />\r\n <a v-db-click @click=\"orderInfo(scope.row.id)\">订单信息</a>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"orderData.page\"\r\n :limit.sync=\"orderData.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n <el-dialog :visible.sync=\"invoiceShow\" title=\"发票详情\" class=\"order_box\" width=\"720px\" @closed=\"cancel\">\r\n <el-form ref=\"formInline\" :model=\"formInline\" label-width=\"80px\" @submit.native.prevent>\r\n <div v-if=\"invoiceDetails.header_type === 1 && invoiceDetails.type === 1\">\r\n <div class=\"list\">\r\n <div class=\"title\">发票信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\"\r\n >发票抬头: <span class=\"info\">{{ invoiceDetails.name }}</span></el-col\r\n >\r\n <el-col :span=\"12\">发票类型: <span class=\"info\">电子普通发票</span></el-col>\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">发票抬头类型: 个人</el-col>\r\n <el-col :span=\"12\">订单金额: {{ invoiceDetails.pay_price }}</el-col>\r\n </el-row>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"title row\">联系信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">真实姓名: {{ invoiceDetails.name }}</el-col>\r\n <el-col :span=\"12\">联系电话: {{ invoiceDetails.drawer_phone }}</el-col>\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">联系邮箱: {{ invoiceDetails.email }}</el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n <div v-if=\"invoiceDetails.header_type === 2 && invoiceDetails.type === 1\">\r\n <div class=\"list\">\r\n <div class=\"title\">发票信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\"\r\n >发票抬头: <span class=\"info\">{{ invoiceDetails.name }}</span></el-col\r\n >\r\n <el-col :span=\"12\"\r\n >企业税号: <span class=\"info\">{{ invoiceDetails.duty_number }}</span></el-col\r\n >\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">发票类型: 电子普通发票</el-col>\r\n <el-col :span=\"12\">发票抬头类型: 企业</el-col>\r\n </el-row>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"title row\">联系信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">真实姓名: {{ invoiceDetails.name }}</el-col>\r\n <el-col :span=\"12\">联系电话: {{ invoiceDetails.user_phone }}</el-col>\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">联系邮箱: {{ invoiceDetails.email }}</el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n <div v-if=\"invoiceDetails.header_type === 2 && invoiceDetails.type === 2\">\r\n <div class=\"list\">\r\n <div class=\"title\">发票信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\"\r\n >发票抬头: <span class=\"info\">{{ invoiceDetails.name }}</span></el-col\r\n >\r\n <el-col :span=\"12\"\r\n >企业税号: <span class=\"info\">{{ invoiceDetails.duty_number }}</span></el-col\r\n >\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">发票类型: 纸质专用发票</el-col>\r\n <el-col :span=\"12\">发票抬头类型: 企业</el-col>\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\"\r\n >开户银行: <span class=\"info\">{{ invoiceDetails.bank }}</span></el-col\r\n >\r\n <el-col :span=\"12\"\r\n >银行账号: <span class=\"info\">{{ invoiceDetails.card_number }}</span></el-col\r\n >\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">企业地址: {{ invoiceDetails.address }}</el-col>\r\n <el-col :span=\"12\">企业电话: {{ invoiceDetails.tell }}</el-col>\r\n </el-row>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"title row\">联系信息</div>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">真实姓名: {{ invoiceDetails.real_name }}</el-col>\r\n <el-col :span=\"12\">联系电话: {{ invoiceDetails.user_phone }}</el-col>\r\n </el-row>\r\n <el-row class=\"row\">\r\n <el-col :span=\"12\">联系邮箱: {{ invoiceDetails.email }}</el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n <el-form-item label=\"开票状态:\" style=\"margin-top: 14px\">\r\n <el-radio-group v-model=\"formInline.is_invoice\" @input=\"kaiInvoice(formInline.is_invoice)\">\r\n <el-radio :label=\"1\">已开票</el-radio>\r\n <el-radio :label=\"0\">未开票</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"发票编号:\" v-if=\"formInline.is_invoice === 1\">\r\n <el-input v-model=\"formInline.invoice_number\" placeholder=\"请输入发票编号\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"发票备注:\" v-if=\"formInline.is_invoice === 1\">\r\n <el-input\r\n v-model=\"formInline.remark\"\r\n value=\"备注\"\r\n type=\"textarea\"\r\n :autosize=\"{ minRows: 2, maxRows: 5 }\"\r\n placeholder=\"请输入发票备注\"\r\n ></el-input>\r\n </el-form-item>\r\n <div class=\"acea-row row-right\">\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit()\">确定</el-button>\r\n </div>\r\n </el-form>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"orderShow\" title=\"订单详情\" class=\"order_box\" width=\"720px\">\r\n <orderDetall :orderId=\"orderId\" @detall=\"detall\" v-if=\"orderShow\"></orderDetall>\r\n </el-dialog>\r\n <el-dialog\r\n :visible.sync=\"invoiceModalShow\"\r\n title=\"发票信息\"\r\n append-to-body\r\n :close-on-click-modal=\"false\"\r\n width=\"1320px\"\r\n class=\"mapBox\"\r\n >\r\n <iframe id=\"invoicePage\" width=\"100%\" height=\"600px\" frameborder=\"0\" v-bind:src=\"keyUrl\"></iframe>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport orderDetall from './orderDetall';\r\nimport {\r\n orderInvoiceChart,\r\n orderInvoiceList,\r\n orderInvoiceSet,\r\n invoiceIssuanceUrl,\r\n downInvoice,\r\n redInvoiceIssuance,\r\n saveInvoiceInfo,\r\n} from '@/api/order';\r\nimport { mapState } from 'vuex';\r\nexport default {\r\n name: 'invoice',\r\n components: {\r\n orderDetall,\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '80px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n data() {\r\n return {\r\n orderShow: false,\r\n invoiceShow: false,\r\n invoiceModalShow: false,\r\n invoiceDetails: {},\r\n formInline: {\r\n is_invoice: 0,\r\n invoice_number: '',\r\n remark: '',\r\n },\r\n keyUrl: '',\r\n loading: false,\r\n currentTab: '',\r\n tablists: null,\r\n timeVal: [],\r\n pickerOptions: this.$timeOptions,\r\n orderList: [],\r\n total: 0, // 总条数\r\n orderData: {\r\n page: 1, // 当前页\r\n limit: 15, // 每页显示条数\r\n status: '',\r\n data: '',\r\n real_name: '',\r\n field_key: '',\r\n type: '',\r\n },\r\n orderId: 0,\r\n invoiceId: 0,\r\n };\r\n },\r\n created() {\r\n this.getTabs();\r\n this.getList();\r\n },\r\n mounted() {},\r\n\r\n methods: {\r\n openNegative(row) {\r\n // 弹窗确认\r\n this.$confirm('确定开具负数发票?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then(() => {\r\n redInvoiceIssuance(row.invoice_id).then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n });\r\n });\r\n },\r\n downInvoice(row) {\r\n downInvoice(row.invoice_id).then((res) => {\r\n window.open(res.data.downloadBase64.pdfUrl, '_blank');\r\n });\r\n },\r\n getInvoice(row) {\r\n invoiceIssuanceUrl(row.invoice_id).then((res) => {\r\n this.invoiceId = row.invoice_id;\r\n this.keyUrl = res.data.uri;\r\n this.invoiceModalShow = true;\r\n window.addEventListener('message', this.handleMessage);\r\n });\r\n },\r\n // 处理iframe传值\r\n handleMessage(event) {\r\n switch (event.data.event) {\r\n case 'onCancel':\r\n this.invoiceModalShow = false;\r\n this.keyUrl = '';\r\n this.invoiceId = 0;\r\n window.removeEventListener('message');\r\n break;\r\n case 'onSuccess':\r\n saveInvoiceInfo(this.invoiceId, event.data.data).then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n this.keyUrl = '';\r\n this.invoiceId = 0;\r\n this.invoiceModalShow = false;\r\n window.removeEventListener('message');\r\n });\r\n break;\r\n }\r\n },\r\n detall(e) {\r\n this.orderShow = e;\r\n },\r\n orderInfo(id) {\r\n this.orderId = id;\r\n this.orderShow = true;\r\n },\r\n empty() {\r\n this.formInline = {\r\n is_invoice: 1,\r\n invoice_number: '',\r\n remark: '',\r\n };\r\n },\r\n cancel() {\r\n this.invoiceShow = false;\r\n this.empty();\r\n },\r\n kaiInvoice(invoice) {\r\n if (invoice !== 1) {\r\n this.formInline.invoice_number = '';\r\n this.formInline.remark = '';\r\n }\r\n },\r\n handleSubmit() {\r\n if (this.formInline.is_invoice === 1) {\r\n if (this.formInline.invoice_number.trim() === '') return this.$message.error('请填写发票编号');\r\n }\r\n orderInvoiceSet(this.invoiceDetails.invoice_id, this.formInline)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.invoiceShow = false;\r\n this.getList();\r\n this.empty();\r\n this.getTabs();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n edit(row) {\r\n this.invoiceShow = true;\r\n this.invoiceDetails = row;\r\n this.formInline.invoice_number = row.invoice_number;\r\n this.formInline.remark = row.invoice_reamrk;\r\n this.formInline.is_invoice = row.is_invoice;\r\n },\r\n // 订单列表\r\n getList() {\r\n this.loading = true;\r\n orderInvoiceList(this.orderData)\r\n .then(async (res) => {\r\n this.loading = false;\r\n let data = res.data;\r\n this.orderList = data.list;\r\n this.total = data.count;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n getTabs() {\r\n orderInvoiceChart(this.orderData)\r\n .then((res) => {\r\n this.tablists = res.data;\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n // 精确搜索()\r\n orderSearch() {\r\n this.orderData.page = 1;\r\n this.getTabs();\r\n this.getList();\r\n },\r\n // 具体日期搜索();\r\n onchangeTime(e) {\r\n this.orderData.page = 1;\r\n this.timeVal = e || [];\r\n this.orderData.data = this.timeVal[0] ? (this.timeVal ? this.timeVal.join('-') : '') : '';\r\n this.getList();\r\n this.getTabs();\r\n },\r\n //订单状态搜索()\r\n selectChange() {\r\n this.orderData.page = 1;\r\n this.getList();\r\n },\r\n //订单搜索()\r\n onClickTab() {\r\n this.orderData.page = 1;\r\n this.orderData.type = this.currentTab;\r\n this.getList();\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.order_box .list {\r\n font-size: 12px;\r\n color: #17233d;\r\n border-bottom: 1px solid #e7eaec;\r\n margin: 0 10px;\r\n padding-bottom: 22px;\r\n}\r\n.ivu-form-item {\r\n margin-left: 10px;\r\n margin-right: 10px;\r\n}\r\n::v-deep .el-tabs__item {\r\n height: 54px !important;\r\n line-height: 54px !important;\r\n}\r\n::v-deep .ivu-form-item-label {\r\n text-align: left;\r\n width: 83px !important;\r\n}\r\n::v-deep .ivu-form-item-content {\r\n margin-left: 83px !important;\r\n}\r\n.order_box .list .title {\r\n color: #000000;\r\n font-weight: bold;\r\n}\r\n.order_box .list .row {\r\n margin-top: 13px;\r\n}\r\n.order_box .list .info {\r\n color: #515a6e;\r\n}\r\n.tab_data ::v-deep .ivu-form-item-content {\r\n margin-left: 0 !important;\r\n}\r\n.table_box ::v-deep .ivu-divider-horizontal {\r\n margin-top: 0px !important;\r\n}\r\n.table_box ::v-deep .ivu-form-item {\r\n margin-bottom: 15px !important;\r\n}\r\n.tabform {\r\n margin-bottom: 10px;\r\n}\r\n.Refresh {\r\n font-size: 12px;\r\n color: var(--prev-color-primary);\r\n cursor: pointer;\r\n}\r\n</style>\r\n"]}]}
|