提交 0c510571 authored 作者: 王鹏飞's avatar 王鹏飞

chore: upgrade to vue 2.7

上级 7c71a08e
module.exports = {
env: {
node: true
},
extends: ['plugin:vue/essential', 'standard'],
root: true,
env: { node: true },
extends: ['eslint:recommended', 'plugin:vue/essential'],
rules: {
'vue/comment-directive': 'off',
'space-before-function-paren': 'off'
'vue/multi-word-component-names': 'off'
}
}
const fs = require('fs')
const path = require('path')
const axios = require('axios')
const domain = 'ezijing.com'
const outputPath = './https'
// 生成文件夹
function genOutputDir() {
if (fs.existsSync(outputPath)) {
console.log('The path exists.')
} else {
fs.mkdir(outputPath, { recursive: true }, err => {
if (err) throw err
})
}
}
function downloadCertFile() {
genOutputDir()
axios.get(`https://ssl.godzyx.com/${domain}/${domain}.key?get=allow`, { responseType: 'stream' }).then(response => {
response.data.pipe(fs.createWriteStream(path.join(__dirname, `${outputPath}/${domain}.key`)))
})
axios.get(`https://ssl.godzyx.com/${domain}/${domain}.pem?get=allow`, { responseType: 'stream' }).then(response => {
response.data.pipe(fs.createWriteStream(path.join(__dirname, `${outputPath}/${domain}.pem`)))
})
}
downloadCertFile()
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAn0EINdIXTDCzmR7J5FOjOV+PbXt7GNO6fanoCGe2O0CPRlNf
2Ea/wv6SlRtJPd0ohmnKqZdUbBpAsiV4ggOdOqeEB6utVYQWY/zhXRKYeRjN/iDu
WCRY5S+eRVkSzVOJP9DlBn6dnHSsWj55h1PrkIac8B862F/cVno/Wk5dqU55ZUoN
wHGw5Goz3R37w+Q0C9HRS5mrmPqI+Ogy8TJrIRxw9YAj5OlvuqBAeYAW1sNdEfsi
mMB0H2fbbXqEL4AsipE5ppP7Ij3vxVpxvmnl/SO7N6+Fit6r25VeFSvplK+PIV3c
UsK3PCKV2sOo0BDWtWFQh5hW3fK5RYjLpNDHCwIDAQABAoIBAEkiBDMzF5/VfaSD
jxNblUlzqNoOKqlsEehDblrtxbHQI/uXrhwT4VwarBXtQeU2+rU/P+JBrHM4Wx10
N7L9FecppmgfXqo2zlF8f8HOGFcEHRTm6o1vo6McCwKttQS1qAG2XHZvDtIagkuv
BQAwea0VJFzg+pUC8JyF5zIBauGkfk8eHTLFVuIEJoSJbPWBYzp7Vf1SCjXqs3YY
aZ5QkOqY7S81D2EULFAWiMIMdY/PVT5DSXxsjaJFkvxjDedA4jNCplyODBKdpnBb
kfoJTJ7qsSnqgJ2y2xRdRlvZalE49lr2MkW254s5GH35+hMYam0bffgLXdPz6RIs
7X0atYECgYEA1A9G+0+uYlyxddyR54QlWGK7L3wP+REMXultudT9rq4S6qkHoOgP
rhi2kvZOqA0sMR7XMVz5nw0ouUMUVfW0YzudgAK99tdIuk6dP6VqVo9T4kqa0rXi
3ZKD51qGXbF22SndEWV68QEPzMCbf0E+kXl5MGGNnFtjZ5nxTGS+uH8CgYEAwECs
0T36EnLOCXZoi3rTeHr2pSO20VuFSgljnHA6Ups9Chu6h/iZ8t0XVNb8J14q7lFi
NY6b4D3FR/vwO3nFt7dvFYNFaFGuFrkAaH002p8EYWSckhlGcucBuKivBVUbhXuM
HMGmqGhAnnGCvCj/v4n5/wv3wtFYfzYWnYPHC3UCgYBZgbFGNhW28sT8qIL1I3PX
4KR9oHHlgOqlzQVBYMNKzbKyVXIg2pJzu36kfU4p5JV4jjnqXgIGvjkoKUYWGkVv
dSQ/eejQnYHXEYOR77H4ozqW00KSGa+OMl92cWExfsxZUTA8PYcs3nPayplXlyRf
ptQeNa7eBjzo57NPuV4+5QKBgQCrJihzUlBYshmYNPBXE25FOHpwgz3SXT5orbke
4I4bUhXh9NN3DqrGmWqW3Zi2108ywALFGQLNe1AwiCnSWNLafZOHvEhC2Uw48FNb
sfMmmR/GMFJugc/EpMBUit7cyWppx5XxV7gs/jpgkz7GkV00P/ntwtK7fbDh9t3l
NhYxrQKBgDVE4HSDqOvZOaXGRoM0pJ3uYRTTSIDGVNMZ9t2C/t3uwoyFBe+Om2t+
G6w2Gr+Dck1v+zizU3khbAHvE67rYoUtrDvae41bmLuVcnYh4UsXfhB6BWOSaQ+l
l8aQwTfmV74szsEDcFkg038zQ6Q4c8iiurYp29nwEM7/mayBGOcv
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIHEDCCBfigAwIBAgIQC53CSHjB5MGsHDzx/2AxzjANBgkqhkiG9w0BAQsFADBb
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMRowGAYDVQQDExFTZWN1cmUgU2l0ZSBDQSBHMjAeFw0y
MDA2MTAwMDAwMDBaFw0yMjA5MTIxMjAwMDBaMFsxCzAJBgNVBAYTAkNOMRAwDgYD
VQQIEwdCZWlqaW5nMSIwIAYDVQQKExlUSEggWmlqaW5nIChCZWlqaW5nKSBJbmMu
MRYwFAYDVQQDDA0qLmV6aWppbmcuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAn0EINdIXTDCzmR7J5FOjOV+PbXt7GNO6fanoCGe2O0CPRlNf2Ea/
wv6SlRtJPd0ohmnKqZdUbBpAsiV4ggOdOqeEB6utVYQWY/zhXRKYeRjN/iDuWCRY
5S+eRVkSzVOJP9DlBn6dnHSsWj55h1PrkIac8B862F/cVno/Wk5dqU55ZUoNwHGw
5Goz3R37w+Q0C9HRS5mrmPqI+Ogy8TJrIRxw9YAj5OlvuqBAeYAW1sNdEfsimMB0
H2fbbXqEL4AsipE5ppP7Ij3vxVpxvmnl/SO7N6+Fit6r25VeFSvplK+PIV3cUsK3
PCKV2sOo0BDWtWFQh5hW3fK5RYjLpNDHCwIDAQABo4IDzjCCA8owHwYDVR0jBBgw
FoAUxBF+iECGwkG/ZfMa4bRTQKOr7H0wHQYDVR0OBBYEFHxjLRRYXe2jIjYECuN8
r3EnjOTFMCUGA1UdEQQeMByCDSouZXppamluZy5jb22CC2V6aWppbmcuY29tMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwbwYD
VR0fBGgwZjAxoC+gLYYraHR0cDovL2NybDMuZGlnaWNlcnQuY29tL1NlY3VyZVNp
dGVDQUcyLmNybDAxoC+gLYYraHR0cDovL2NybDQuZGlnaWNlcnQuY29tL1NlY3Vy
ZVNpdGVDQUcyLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAqMCgGCCsGAQUF
BwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAECAjBsBggr
BgEFBQcBAQRgMF4wIQYIKwYBBQUHMAGGFWh0dHA6Ly9vY3NwLmRjb2NzcC5jbjA5
BggrBgEFBQcwAoYtaHR0cDovL2NybC5kaWdpY2VydC1jbi5jb20vU2VjdXJlU2l0
ZUNBRzIuY3J0MAwGA1UdEwEB/wQCMAAwggH1BgorBgEEAdZ5AgQCBIIB5QSCAeEB
3wB2AEalVet1+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABcpwT21oAAAQD
AEcwRQIgWTyqiBOL3dFTJBE2Q6cgSBzk9W5iTaC2B8T1f8gFCP0CIQDhngm9WJbO
J7v14h6w+B2Li7WEAkWLSLiTKzh7na2SuQB1ACJFRQdZVSRWlj+hL/H3bYbgIyZj
rcBLf13Gg1xu4g8CAAABcpwT2zEAAAQDAEYwRAIgckmPL6WJx9Jke4AfVLmy//ye
tsmT5si8FO8p9Fd52VECICPqDvdjlN2DtfQznTGTxaL0PQ5N8eNiX3fJn6sRCfcU
AHYAUaOw9f0BeZxWbbg3eI8MpHrMGyfL956IQpoN/tSLBeUAAAFynBPbfQAABAMA
RzBFAiEAwYooscdEijXGnRdJYnz0ClmvWcxtJ169Bq+sywhPReACIDjvE5a5d7mb
n3YTgfLOtbnuDpkDRjUfdY7cs6UfderhAHYAQcjKsd8iRkoQxqE6CUKHXk4xixsD
6+tLx2jwkGKWBvYAAAFynBPa0wAABAMARzBFAiAmJVwNfWFMKrqWTvEfHk9O/5/r
Crj/W3BqjV6p0D09hgIhAIKb4drMok8s1X0Evh4Nbzd3Nv9PuwITdICztemCrk4e
MA0GCSqGSIb3DQEBCwUAA4IBAQBWSrE/pt//MKeGpf6vMISGD0LZArebPFQ7wlgv
Y13HpCY5lqwrZItsuXWS5IYMv8ueYarCm081OJOBvSUKHOtYSe6wdFqsXehokUiy
7oVNief7Li5RvLcf6z5fyjB+i017dds73Dt94mE1imV1DR1WErp1U6QCMEh+TKFa
PL52V9X5VWiYdImzdm8AWOlNBrgicmVzEEQuglejF5uaALf9iiyAjP36apqXv77T
UtxKgjONB1tnRw4XRqzwrEK+QjeOhziKCn1v2ppFX/Z11YYA7ajICVrG6wGJ+ENc
ukf5+v8r+TU7PqxQmb62zocX22jhe8HM644UJ4FWCiBh4Lb1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCA/6gAwIBAgIQCH4Y+4+qkn7odgoNiYL1EjANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xOTA2MjAxMjIxMzVaFw0yOTA2MjAxMjIxMzVaMFsxCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xGjAYBgNVBAMTEVNlY3VyZSBTaXRlIENBIEcyMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAx7s903fR6SgpA08UdhKEUIZHa2Ig7KPNkTtwMS1+08YS
5QSEDM4DQxy48jP8dZkyyU9J/0WCm8Nlv5ga7HOAxhdJcv+CPP4oadx8EbdrmjAH
rGOv64oHvt7Ina7uzLd3krqxd0doeuxRpTHvFAyjaUhxjSfZx0wh1f6W7prPm7V5
0VcTudj4rI+xtHXUcFAuFz4bcapTcru5aaZ1v6F2usMCMVM+xJxEZcsUM4uTxdIf
W5FUTI0dbP8NyZkr/WVzL59aGwBE4ZU0JKBlgEmtkFpLPR7JCzYunafu7nMk5YY2
6WDOmezpWDjzDxJ8xakizykWYT5gdJYE3ULlUe31WQIDAQABo4IBzjCCAcowHQYD
VR0OBBYEFMQRfohAhsJBv2XzGuG0U0Cjq+x9MB8GA1UdIwQYMBaAFAPeUDVW0Uy7
ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcD
AQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAxBggrBgEFBQcBAQQlMCMwIQYI
KwYBBQUHMAGGFWh0dHA6Ly9vY3NwLmRjb2NzcC5jbjBEBgNVHR8EPTA7MDmgN6A1
hjNodHRwOi8vY3JsLmRpZ2ljZXJ0LWNuLmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
QS5jcmwwgc4GA1UdIASBxjCBwzCBwAYEVR0gADCBtzAoBggrBgEFBQcCARYcaHR0
cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzCBigYIKwYBBQUHAgIwfgx8QW55IHVz
ZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2Yg
dGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50IGxvY2F0ZWQgYXQgaHR0cHM6Ly93
d3cuZGlnaWNlcnQuY29tL3JwYS11YTANBgkqhkiG9w0BAQsFAAOCAQEAE+8lW5Yw
IuiRsHn4gYRRVbLmIypWwYH74lIXnQiALeUsUkWfW7KA0ARF1el3YaTAg8/r6zyX
eZTdlhndxKOKvO5N+rnHWJB6a3fJURn6e0I+rDzKV1Zacv2Vx/ZHLZmza/bp4Azi
BrDOiPlW/Ktj6ALQzAgq70Oytk9htLupBWPuplJDdyhGqb9RfQvWc1Fa1HwXdBQi
oJPibfMaYkHMY3pTbOv2rzMKEoZwHDHqyC73RI9JgqqiXHw0rIL8A1uL3IrymXEr
mycTqbSozQwiiEfb+cxzY82YaNzaLpJyIst0T2QmdDDngmyd2LEmm4NKeXRrcFRh
XDDFfpIn93B7JA==
-----END CERTIFICATE-----
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"],
"vueCompilerOptions": {
"target": 2.7
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,41 +4,36 @@
"config": {},
"scripts": {
"dev": "vite --mode dev",
"build": "cross-env BUILD_ENV=prod vite build && cross-env BUILD_ENV=prod npm run deploy",
"build:pre": "vite build",
"build": "vite build --mode prod && npm run deploy",
"build:pre": "vite build --mode pre",
"build:test": "vite build --mode test",
"preview": "vite preview",
"deploy": "node ./deploy.js",
"cert": "node ./cert.js",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src"
},
"dependencies": {
"axios": "^0.21.1",
"blueimp-md5": "^2.18.0",
"clipboard": "^2.0.8",
"element-ui": "^2.15.5",
"axios": "^1.2.3",
"blueimp-md5": "^2.19.0",
"clipboard": "^2.0.11",
"element-ui": "^2.15.12",
"js-file-download": "^0.4.12",
"qrcode.vue": "^1.7.0",
"query-string": "^7.0.1",
"vue": "^2.6.14",
"vue-router": "^3.5.2",
"vue": "^2.7.14",
"vue-router": "^3.6.5",
"vuedraggable": "^2.24.3",
"vuex": "^3.6.2",
"xlsx": "^0.17.1"
"xlsx": "^0.18.5"
},
"devDependencies": {
"@rollup/plugin-eslint": "^8.0.1",
"ali-oss": "^6.16.0",
"@vitejs/plugin-vue2": "^2.2.0",
"ali-oss": "^6.17.1",
"chalk": "^4.1.2",
"cross-env": "^7.0.3",
"eslint": "^7.32.0",
"eslint-config-standard": "^16.0.3",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.0",
"eslint-plugin-vue": "^7.16.0",
"sass": "^1.32.13",
"vite": "^2.5.0",
"vite-plugin-vue2": "^1.8.1",
"vue-template-compiler": "^2.6.14"
"eslint": "^8.32.0",
"eslint-plugin-vue": "^9.9.0",
"sass": "^1.57.1",
"vite": "^4.0.4",
"vite-plugin-checker": "^0.5.3"
}
}
......@@ -18,14 +18,12 @@
clearable
v-bind="item"
v-if="item.type === 'select'"
@change="search"
>
@change="search">
<template v-for="(option, index) in item.options">
<el-option
:label="option[item.labelKey] || option.label"
:value="option[item.valueKey] || option.value"
:key="index"
></el-option>
:key="index"></el-option>
</template>
</el-select>
</template>
......@@ -51,9 +49,7 @@
v-bind="$attrs"
v-on="$listeners"
style="height: 100%"
ref="table"
max-height="750"
>
ref="table">
<template v-for="item in currentColumns">
<el-table-column v-bind="item" :key="item.prop" v-if="visible(item)">
<template v-slot:default="scope" v-if="item.slots || item.computed">
......@@ -80,8 +76,7 @@
@size-change="pageSizeChange"
@current-change="fetchList()"
:hide-on-single-page="true"
v-if="hasPagination"
>
v-if="hasPagination">
</el-pagination>
</div>
<!-- 更多筛选 -->
......@@ -103,14 +98,12 @@
clearable
v-bind="item"
v-if="item.type === 'select'"
style="width: 100%"
>
style="width: 100%">
<template v-for="(option, index) in item.options">
<el-option
:label="option[item.labelKey] || option.label"
:value="option[item.valueKey] || option.value"
:key="index"
></el-option>
:key="index"></el-option>
</template>
</el-select>
</template>
......@@ -250,8 +243,7 @@ export default {
this.page.total = parseInt(total)
this.dataList = callback ? callback(list) : list
})
// eslint-disable-next-line node/handle-callback-err
.catch(error => {
.catch(() => {
this.page.total = 0
this.dataList = []
})
......@@ -319,7 +311,7 @@ export default {
// 保存表头设置
primaryColumnsOptions() {
const { key } = this.columnsOptions
updateTableColumns({ key, value: JSON.stringify(this.editableColumns) }).then(res => {
updateTableColumns({ key, value: JSON.stringify(this.editableColumns) }).then(() => {
this.$message.success('保存成功')
this.columnsOptionsVisible = false
this.customColumns = this.editableColumns
......
......@@ -34,11 +34,11 @@ export default {
path: '/invoice',
icon: 'el-icon-postcard'
},
{
name: '渠道管理',
path: '/channel',
icon: 'el-icon-box'
},
// {
// name: '渠道管理',
// path: '/channel',
// icon: 'el-icon-box'
// },
{
name: '项目列表',
path: '/project',
......@@ -49,7 +49,11 @@ export default {
},
computed: {
defaultActive() {
return this.$route.path
const found = this.menuList.find(item => {
const regExp = new RegExp(`^${item.path}`)
return regExp.test(this.$route.path)
})
return found ? found.path : ''
}
}
}
......@@ -57,17 +61,17 @@ export default {
<style lang="scss">
.app-aside {
position: sticky;
top: 0;
width: 200px;
z-index: 100;
background: #fff;
border-right: 1px solid rgba(0, 0, 0, 0.12);
overflow-x: hidden;
overflow-y: auto;
flex: 0 0 200px;
box-sizing: content-box;
}
.nav {
position: fixed;
width: 200px;
margin: 20px 0;
.el-menu {
border-right: 0;
......
......@@ -39,6 +39,9 @@ export default {
<style lang="scss">
.app-header {
position: sticky;
top: 0;
z-index: 1000;
padding: 0 20px;
display: flex;
align-items: center;
......@@ -46,7 +49,6 @@ export default {
height: 64px;
background-color: #3276fc;
color: #fff;
.logo {
width: 120px;
}
......
......@@ -19,7 +19,7 @@ export default function (blobInfo, succFun, failFun) {
failFun('上传失败')
})
})
.catch(response => {
.catch(() => {
failFun('获取Signature失败')
})
}
......@@ -7,11 +7,19 @@ import modules from './modules'
import '@/assets/css/base.css'
import beforeEnter from '@/utils/beforeEnter'
// 公共组件
import AppCard from './components/base/AppCard.vue'
import AppList from './components/base/AppList.vue'
// Element-UI
import ElementUI from 'element-ui'
import '@/assets/theme/style.scss'
Vue.use(ElementUI, { size: 'small' })
// 注册公共组件
Vue.component('AppCard', AppCard)
Vue.component('AppList', AppList)
// 注册模块
modules({ router, store })
......
......@@ -3,9 +3,9 @@ import httpRequest from '@/utils/axios'
/**
* 获取渠道列表
*/
export function getChannelList(params) {
export function getChannelList() {
// return httpRequest.get('/api/finance/v1/channels/list', { params })
return new Promise((resolve, reject) => {
return new Promise(resolve => {
resolve({
data: [
{ channel_code: '渠道编码1', channel_name: '渠道名称1' },
......
......@@ -14,14 +14,10 @@
</template>
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
// 接口
import { getChannelList } from '../api'
export default {
components: { AppCard, AppList },
data() {
return {
// 已选中的数据
......
......@@ -8,8 +8,7 @@
v-for="(item, index) in options"
:key="index"
:label="item.user_name"
:value="item.user_id"
></el-option>
:value="item.user_id"></el-option>
</el-select>
</el-form-item>
</el-form>
......@@ -45,7 +44,7 @@ export default {
invoices_id: ids.join(','),
sales_rep_user_id: this.form.value
}
assignSales(params).then(res => {
assignSales(params).then(() => {
this.$emit('update:visible', false)
this.$emit('success')
})
......
......@@ -19,8 +19,7 @@
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="small"
style="width: 360px"
>
style="width: 360px">
</el-date-picker>
</template>
<!-- 末次缴费时间 -->
......@@ -33,8 +32,7 @@
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="small"
style="width: 360px"
>
style="width: 360px">
</el-date-picker>
</template>
<el-row style="margin-bottom: 20px">
......@@ -54,7 +52,9 @@
style="margin-left: 10px"
>确认领取</el-button
>
<el-button type="primary" v-if="row.need_offline" style="margin-left: 10px" @click="paperSuccessPop(row)">确认开票</el-button>
<el-button type="primary" v-if="row.need_offline" style="margin-left: 10px" @click="paperSuccessPop(row)"
>确认开票</el-button
>
</template>
<template #footer>
<span>已选择{{ multipleSelection.length }}</span>
......@@ -69,12 +69,15 @@
@success="success"
:visible.sync="isShowDialog"
:options="conditionList.sales_rep_user_id"
:invoicesIds="multipleSelection"
></distribution-dialog>
:invoicesIds="multipleSelection"></distribution-dialog>
<el-dialog title="确认开票" :visible.sync="dialogFormVisible">
<el-form :model="form" label-width="150px">
<el-form-item label="发票开具时间">
<el-date-picker value-format="yyyy-MM-dd HH-mm-ss" v-model="form.invoice_issuing_time" type="datetime" placeholder="选择日期时间">
<el-date-picker
value-format="yyyy-MM-dd HH-mm-ss"
v-model="form.invoice_issuing_time"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="发票号码">
......@@ -94,17 +97,15 @@
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import DistributionDialog from '../components/DistributionDialog.vue'
// 接口
import { getInvoiceList, getCondition, deposit, confirmReceive, setPaperSuccess } from '../api'
import XLSX from 'xlsx'
import * as XLSX from 'xlsx'
import fileDownload from 'js-file-download'
import queryString from 'query-string'
export default {
components: { AppCard, AppList, DistributionDialog },
components: { DistributionDialog },
data() {
return {
dialogFormVisible: false,
......@@ -286,7 +287,7 @@ export default {
this.dialogFormVisible = true
},
setPaperSuccess() {
setPaperSuccess(this.form).then(res => {
setPaperSuccess(this.form).then(() => {
this.$message.success('确认成功')
this.form = {
invoice_id: '',
......@@ -308,14 +309,14 @@ export default {
},
// 发票充值
deposit() {
deposit().then(res => {
deposit().then(() => {
this.$message({
message: '充值成功',
type: 'success'
})
})
},
beforeRequest(params, isReset) {
beforeRequest(params) {
if (params.firstDate) {
const [firstTimeFrom, firstTimeTo] = params.firstDate
params.first_payment_time_from = firstTimeFrom
......
......@@ -14,8 +14,6 @@
</template>
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import { payCancel } from '../api'
// 接口
export default {
......@@ -24,7 +22,6 @@ export default {
type: Object
}
},
components: { AppCard, AppList },
data() {
return {}
},
......
......@@ -97,13 +97,6 @@ export default {
return this.dealList.invoices_list || []
}
},
mounted() {
setTimeout(() => {
Object.keys(this.dealList.invoices_list[0]).forEach(res => {
console.log(res)
})
}, 1000)
},
methods: {
invoice_type(item) {
if (item.invoice_type === 1 || item.invoice_type === '1') {
......
......@@ -12,12 +12,8 @@
</app-card>
</template>
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
// 接口
export default {
components: { AppCard, AppList },
props: {
dealList: {
type: Object
......
......@@ -72,8 +72,7 @@
start-placeholder="开始日期时间"
end-placeholder="结束日期时间"
value-format="yyyy-MM-dd HH:mm:ss"
size="small"
></el-date-picker>
size="small"></el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="comment">
<el-input type="textarea" v-model="form.comment"> </el-input>
......@@ -86,8 +85,7 @@
:auto-upload="false"
:on-change="handleChange"
:on-remove="handleChange"
accept="image/*"
>
accept="image/*">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
......@@ -100,11 +98,9 @@
</template>
<script>
import AppCard from '@/components/base/AppCard.vue'
import { payConfirm } from '../api'
export default {
components: { AppCard },
data() {
const row = JSON.parse(this.$route.query.row)
const dealList = JSON.parse(this.$route.query.dealList)
......@@ -142,7 +138,7 @@ export default {
params[`receiving_voucher_filename[${index}]`] = file.raw
})
delete params.receiving_voucher_filename
payConfirm(params).then(res => {
payConfirm(params).then(() => {
history.go(-1)
})
})
......
......@@ -51,7 +51,6 @@
<script>
// 组件
import AppCard from '@/components/base/AppCard.vue'
import Order from '../components/Order.vue'
import Student from '../components/Student.vue'
import Collection from '../components/Collection.vue'
......@@ -62,7 +61,7 @@ import Confirmed from '../components/Confirmed.vue'
import SecondChannel from '../components/SecondChannel.vue'
import { payDetail, confirmPayDetail, cancelPayDetail } from '../api'
export default {
components: { AppCard, Order, Student, Collection, Ticket, Channel, Toconfirm, Confirmed, SecondChannel },
components: { Order, Student, Collection, Ticket, Channel, Toconfirm, Confirmed, SecondChannel },
data() {
return {
id: '',
......@@ -130,12 +129,12 @@ export default {
}
if (this.dealList.payment_status === '70') {
// 确认
confirmPayDetail(params).then(res => {
confirmPayDetail(params).then(() => {
this.fetchTicketDetail()
})
} else {
// 取消
cancelPayDetail(params).then(res => {
cancelPayDetail(params).then(() => {
this.fetchTicketDetail()
})
}
......
......@@ -18,8 +18,7 @@
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="small"
style="width: 360px"
>
style="width: 360px">
</el-date-picker>
</template>
<!-- 末次缴费时间 -->
......@@ -32,8 +31,7 @@
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="small"
style="width: 360px"
>
style="width: 360px">
</el-date-picker>
</template>
<!-- 状态 -->
......@@ -43,8 +41,7 @@
active-value="1"
inactive-value="2"
@change="handleStatus(row)"
:disabled="row.refund_time !== null"
></el-switch>
:disabled="row.refund_time !== null"></el-switch>
</template>
<!-- 操作 -->
<template v-slot:table-x="{ row }">
......@@ -79,8 +76,7 @@
:id="id"
@close="ticketVisible = false"
@createTicket="handleCreateTicket"
:row="row"
/>
:row="row" />
<el-drawer
size="30%"
title="历史开票信息"
......@@ -89,8 +85,7 @@
append-to-body
:destroy-on-close="true"
center
:modal="false"
>
:modal="false">
<History v-if="historyVisible" :hasSearch="true" @select="handleSelect" />
</el-drawer>
</el-drawer>
......@@ -100,19 +95,17 @@
</template>
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
import TicketForm from '../components/TicketForm.vue'
import ShareQrcode from '../components/ShareQrcode.vue'
import History from '../components/History.vue'
// 接口
import { getCondition, getPayList, allowCreate, createNewTicket, drawBack, cancelTicket, download } from '../api'
import XLSX from 'xlsx'
import * as XLSX from 'xlsx'
import { funDownload } from '@/utils/util'
import queryString from 'query-string'
export default {
components: { AppCard, AppList, TicketForm, ShareQrcode, History },
components: { TicketForm, ShareQrcode, History },
data() {
return {
history: {},
......@@ -455,7 +448,7 @@ export default {
this.fetchCondition() // 获取过滤条件
},
methods: {
beforeRequest(params, isReset) {
beforeRequest(params) {
if (params.first_payment_time) {
const [firstTimeFrom, firstTimeTo] = params.first_payment_time
params.first_payment_time_from = firstTimeFrom
......@@ -498,7 +491,7 @@ export default {
// 作废发票
fetchDisabled(row) {
const params = { payment_id: row.id }
cancelTicket(params).then(res => {
cancelTicket(params).then(() => {
this.$refs.list.refetch()
})
},
......@@ -525,7 +518,7 @@ export default {
// 开具发票
handleCreateTicket(val) {
const params = Object.assign({ payment_id: this.id }, val)
createNewTicket(params).then(res => {
createNewTicket(params).then(() => {
this.$message.success('开票申请已提交')
this.ticketVisible = false
this.$refs.list.refetch() // 刷新订单列表
......@@ -535,7 +528,7 @@ export default {
handleStatus(row) {
const params = { id: row.id, can_add_invoice: row.can_add_invoice }
allowCreate(params)
.then(res => {
.then(() => {
this.$message.success('更新状态成功')
this.$refs.list.refetch() // 刷新订单列表
})
......@@ -546,7 +539,7 @@ export default {
// 确认作废
confirmDisabledTicket() {
cancelTicket()
.then(res => {
.then(() => {
this.disabledTicketVisible = false
this.$message.success('发票已作废')
this.$refs.list.refetch() // 刷新订单列表
......@@ -570,7 +563,7 @@ export default {
fetchDrawBack(row) {
const params = { id: row.id }
drawBack(params)
.then(res => {
.then(() => {
this.$refs.list.refetch() // 刷新订单列表
this.$message.success('退费成功')
})
......@@ -644,7 +637,7 @@ export default {
Object.keys(this.tableOptions.remote.params).forEach(key => {
if (this.tableOptions.remote.params[key] === '') delete this.tableOptions.remote.params[key]
})
download(this.tableOptions.remote.params).then(res => {
download(this.tableOptions.remote.params).then(() => {
const params = queryString.stringify(this.tableOptions.remote.params)
window.open(`/api/finance/v1/payments/download?${params}`)
})
......
......@@ -13,14 +13,10 @@
</template>
<script>
// 组件
import AppList from '@/components/base/AppList.vue'
import AppCard from '@/components/base/AppCard.vue'
// 接口
import { getProjectList } from '../api'
export default {
components: { AppCard, AppList },
data() {
return {
projectType: [
......@@ -67,7 +63,7 @@ export default {
}
],
columns: [
{ label: '项目编号', prop: 'project_id', minWidth: 50 },
{ label: '项目编号', prop: 'project_id', width: 100 },
{ label: '项目名称', prop: 'title', minWidth: 150 },
{ label: '显示别名', prop: 'alias' },
{
......@@ -90,7 +86,7 @@ export default {
return found ? found.label : row.project_status
}
},
{ label: '更新时间', prop: 'updated_time', minWidth: 110 }
{ label: '更新时间', prop: 'updated_time', width: 160 }
]
}
}
......
import fs from 'fs'
import path from 'path'
import { defineConfig } from 'vite'
import { createVuePlugin } from 'vite-plugin-vue2'
import eslint from '@rollup/plugin-eslint'
export default defineConfig({
base: process.env.BUILD_ENV === 'prod' ? 'https://webapp-pub.ezijing.com/website/prod/finance-admin/' : '/',
plugins: [eslint({ include: '**/*.+(vue|js|jsx|ts|tsx)' }), createVuePlugin()],
import vue from '@vitejs/plugin-vue2'
import checker from 'vite-plugin-checker'
export default defineConfig(({ mode }) => ({
base: mode === 'prod' ? 'https://webapp-pub.ezijing.com/website/prod/finance-admin/' : '/',
plugins: [vue(), checker({ eslint: { lintCommand: 'eslint "./src/**/*.{vue,js,jsx,ts,tsx}"' } })],
server: {
open: true,
host: 'dev.ezijing.com',
......@@ -13,25 +14,15 @@ export default defineConfig({
key: fs.readFileSync(path.join(__dirname, './https/ezijing.com.key')),
cert: fs.readFileSync(path.join(__dirname, './https/ezijing.com.pem'))
},
// proxy: {
// '/api/finance': 'https://finance-backend-api.ezijing.com'
// },
proxy: {
'/api/finance': {
target: 'https://finance-backend-api.ezijing.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api\/finance/, '')
},
'/api': 'https://app.ezijing.com'
'/api': 'https://finance-center.ezijing.com'
}
},
resolve: {
alias: [
{
find: '@',
replacement: path.resolve(__dirname, 'src')
}
]
alias: [{ find: '@', replacement: path.resolve(__dirname, 'src') }]
},
css: {
// 禁用SASS警告提醒
preprocessorOptions: { scss: { quietDeps: true, charset: false } }
}
})
}))
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论