Browse Source

攻坚事件

xiaowang-12345
是小王呀\24601 7 months ago
parent
commit
63f50b8815
  1. 8
      debug.log
  2. 3
      package.json
  3. 3
      src/assets/css/common.less
  4. 18
      src/router/index.js
  5. 6
      src/router/router.config.js
  6. 2
      src/utils/request.js
  7. 409
      src/views/AttackEvent/index.vue
  8. 75
      src/views/Hotline/index.vue
  9. 10
      src/views/HotlineDetail/index.vue
  10. 2
      src/views/assistanceDetail/index.vue
  11. 2
      vue.config.js

8
debug.log

@ -0,0 +1,8 @@
[1223/162702.573:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/162702.848:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/163014.254:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/163213.517:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/163517.755:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/163743.845:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/163744.572:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1223/170717.702:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)

3
package.json

@ -24,10 +24,11 @@
"amfe-flexible": "^2.2.1", "amfe-flexible": "^2.2.1",
"axios": "^0.27.2", "axios": "^0.27.2",
"core-js": "^3.23.3", "core-js": "^3.23.3",
"dayjs": "^1.11.7", "dayjs": "^1.11.13",
"eslint": "^8.12.0", "eslint": "^8.12.0",
"eslint-plugin-vue": "^8.4.0", "eslint-plugin-vue": "^8.4.0",
"filemanager-webpack-plugin": "^8.0.0", "filemanager-webpack-plugin": "^8.0.0",
"formatjs": "^0.1.1",
"html-webpack-plugin": "^5.5.3", "html-webpack-plugin": "^5.5.3",
"jsencrypt": "^3.0.3", "jsencrypt": "^3.0.3",
"less-loader": "^11.1.0", "less-loader": "^11.1.0",

3
src/assets/css/common.less

@ -63,6 +63,9 @@
} }
} }
.m{ .m{
&-left8{
margin-left: 8px;
}
&-left12{ &-left12{
margin-left: 12px; margin-left: 12px;
} }

18
src/router/index.js

@ -37,7 +37,23 @@ router.beforeEach((to, from, next) => {
console.log(urlParams.worktoken,"Sdfsfdjhjh") console.log(urlParams.worktoken,"Sdfsfdjhjh")
localStorage.setItem('token_work',urlParams.worktoken) localStorage.setItem('token_work',urlParams.worktoken)
next({ }) next({ })
}else{ }else if(urlParams.worktoken&&to.path=='/AttackEvent'){
console.log(store.state.app,"store.state.app.userInfo");
store.state.app.isRouterLoading = true
console.log(to,"to");
console.log(urlParams.worktoken,"Sdfsfdjhjh")
localStorage.setItem('token_work',urlParams.worktoken)
next({ })
}
else if(urlParams.worktoken&&to.path=='/HotlineDetail'){
console.log(store.state.app,"store.state.app.userInfo");
store.state.app.isRouterLoading = true
console.log(to,"to");
console.log(urlParams.worktoken,"Sdfsfdjhjh")
localStorage.setItem('token_work',urlParams.worktoken)
next({ })
}
else{
next() next()
console.log(urlParams.worktoken,"Sdfsfd") console.log(urlParams.worktoken,"Sdfsfd")
} }

6
src/router/router.config.js

@ -39,6 +39,12 @@ export const constantRouterMap = [
component: () => import('@/views/Hotline'), component: () => import('@/views/Hotline'),
meta: { title: '热线接办', keepAlive: false } meta: { title: '热线接办', keepAlive: false }
}, },
{
path: '/AttackEvent',
name:'AttackEvent',
component: () => import('@/views/AttackEvent'),
meta: { title: '', keepAlive: false }
},
{ {
path: '/HotlineDetail', path: '/HotlineDetail',
name:'HotlineDetail', name:'HotlineDetail',

2
src/utils/request.js

@ -9,7 +9,7 @@ import { Tips } from '@/utils/index'
const service = axios.create({ const service = axios.create({
baseURL: baseApi, // url = base api url + request url baseURL: baseApi, // url = base api url + request url
withCredentials: true, // send cookies when cross-domain requests withCredentials: true, // send cookies when cross-domain requests
timeout: 30000 // request timeout timeout: 300000 // request timeout
}) })
// request拦截器 request interceptor // request拦截器 request interceptor

409
src/views/AttackEvent/index.vue

@ -0,0 +1,409 @@
<template>
<div class='pages flex flex-y' ref="scroll">
<div class="bto_top1">
<div class="grid-container">
<van-search v-model="workOrderNum" left-icon="false" shape="round" placeholder="按工单号" />
<van-search v-model="mobile" left-icon="false" shape="round" placeholder="手机号" />
<van-button round color="#f7f8fa" border-color="transparent" @click="showpicker1('办理状态')">
<span style="color: #999999;">{{ operationTypeType ? operationTypeType : '办理状态' }}</span>
</van-button>
<van-button round color="#f7f8fa" border-color="transparent" @click="showpicker1('开始时间')">
<span style="color: #999999;">{{ startTime ? startTime : '开始时间' }}</span>
</van-button>
<van-button round color="#f7f8fa" border-color="transparent" @click="showpicker1('结束时间')">
<span style="color: #999999;">{{ endTime ? endTime : '结束时间' }}</span>
</van-button>
<van-button style="height: 35px;width: 70px; margin-left: 10px;" @click="onQuery" round
type="info">检索</van-button>
<van-popup v-if="showpicker2" v-model="showpicker2" position="bottom" :style="{ height: '40%' }" @click-overlay="closePopup">
<van-picker v-if="showStutas" show-toolbar title="状态" :columns="actions"
@cancel="showStutas = false" @confirm="onConfirm" />
<van-datetime-picker v-if="showstartTime" v-model="startTime" type="datetime" title="选择完整时间"
:min-date="minDate" :max-date="maxDate" @change="strChange('startTime')" @cancel="closePopup" @confirm="onConfirm('showstartTime')"/>
<van-datetime-picker v-if="showEndTime" v-model="endTime" type="datetime" title="选择完整时间"
@cancel="closePopup('showendTime')" @confirm="onConfirm('showendTime')" @change="strChange('endTime')"
:min-date="minDate" :max-date="maxDate" />
</van-popup>
</div>
</div>
<div class="container">
<div class=" card m-top12" style="box-shadow: none; " v-for="(item, index) in tableData" :key="index"
@click="onHandle(item)">
<div class="flex flex-certer1 flex-center2 ">
<div class="flex flex-center2">
<img style="width: 18px; height: 18px;"
src="https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250107/98ae411b86df48529139259c58c8e748.png">
<div class="workorder m-left8">
工单号{{ item.workOrderNum }}
</div>
</div>
</div>
<div class="flex flex-certer1 flex-center2 flex-end m-top5 ">
<div class="phonenName" style="font-size:14px; line-height: 26px;">
{{ item.categoryAllName }}
</div>
<div class="flex ">
<div v-if="item.resolveStatus == 'resolved'" class="Resolutionstatus flex "
style="font-size:14px; line-height: 26px;">
未解决
<div v-if="item.satisfaction == 'bad'" class="Resolutionstatus"></div>
</div>
<div v-if="item.satisfaction == 'bad'" class="satisfactionstatus"
style="font-size:14px; line-height: 26px;">
{{ item.satisfactionName }}
</div>
</div>
</div>
<div>
<div class="van-multi-ellipsis--l2 m-top5">
{{ item.eventContent }}
</div>
</div>
</div>
</div>
<div style="position: fixed;bottom: 0px;width: 100%;">
</div>
</div>
</template>
<script>
import throttle from 'lodash/debounce'
import { icEventList, reply } from '@/api/service'
import { uploadvariedfile } from '@/api/basic'
import { Dialog } from 'vant';
import dayjs from 'dayjs';
export default {
data() {
return {
showstartTime:false,
showEndTime:false,
showStutas:false,
minDate: new Date(),
maxDate: new Date(2025, 10, 1),
startTime: "",
endTime: "",
confirmSolved: "",
status: "",
replyOperationType: "",
satisfied: "",
overTimeFlag: "",
staffId: '',
type: '',
operationTypeType: "",
showpicker2: false,
showpicker: false,
workOrderNum: "",
mobile: "",
operationType: "",
operationTypeName: "10",
pageNo: 1,
pageSize: 30,
tableData: [
],
actions: [
{
value: "8",
text: "未联系当事人",
},
{
value: "9",
text: "已联系当事人",
},
{
value: "10",
text: "办理中",
},
{
value: "11",
text: "已办结待审核",
},
{
value: "12",
text: "已审核归档",
},
],
};
},
created() {
},
mounted() {
const url = window.location.href;
const queryString = url.split('?')[1];
const urlParams = new URLSearchParams(queryString);
const worktoken = urlParams.get('worktoken');
const staffId = urlParams.get('staffId')
this.staffId=staffId
this.icEventList()
this.$nextTick(() => {
console.log(this.$refs.scroll, "dslkjfskjdf");
this.scroll = this.$refs.scroll;
if (this.$store.state.app.scrollTop) {
setTimeout(() => {
this.$refs.scroll.scrollTo(0, this.$store.state.app.scrollTop);
}, 500)
}
this.scroll.addEventListener('scroll', this.bottomScroll); //
})
// this.scroll.addEventListener('scroll', this.bottomScroll); //
},
activated() {
},
methods: {
strChange(value){
if(value=='startTime'){
console.log(value, this.startTime,"dsjfsl");
this.startTime= this.$dayjs(this.startTime).format('YYYY-MM-DD HH:mm:ss')
console.log(value, this.startTime,"dsjfsl");
}
if(value=='endTime'){
this.endTime= this.$dayjs(this.endTime).format('YYYY-MM-DD HH:mm:ss')
}
},
closePopup(value){
console.log("123");
this.showstartTime=false
this.showEndTime=false
this.showpicker2=false
this.showStutas=false
},
statusClass(item) {
return {
'status-red': item === '未联系当事人',
'lan': item === '已联系当事人',
'status-cycn': item === '办理中',
'status-orange': item === '已办结待审核',
'status-grey': item === '已审核归档' || item === '其他默认状态'
};
},
onConfirm(value) {
if(value=='showstartTime'){
console.log("我选择了开始时间");
this.startTime= this.$dayjs(this.startTime).format('YYYY-MM-DD HH:mm:ss')
this.showpicker2=false
this.showstartTime=false
console.log(this.startTime);
}else if(value=="showendTime"){
console.log("我选择了结束事件");
this.endTime= this.$dayjs(this.endTime).format('YYYY-MM-DD HH:mm:ss')
this.showpicker2=false
this.showEndTime=false
console.log(this.endTime);
}
else{
console.log("我是状态事件");
this.operationTypeType = value.text
this.operationType = value.value
this.showpicker2 = false;
this.showStutas=false
}
},
bottomScroll: throttle(function () {
console.log('滚动加载');
let scrollTop = this.scroll.scrollTop + 100; //
this.$store.dispatch('setScrollTop', scrollTop);
let scrollHeight = this.scroll.scrollHeight; //
let clientHeight = this.scroll.clientHeight; //
console.log(scrollTop, scrollHeight, clientHeight, "dsflksdkjfh");
if (scrollTop + clientHeight >= scrollHeight) {
console.log("dfls kj");
this.pageNo++;
this.icEventList()
}
}, 500),
showpicker1(param) {
this.showpicker2 = true
console.log(param,"sdfhsdflkjsdf");
if(param=="办理状态"){
this.showStutas=true
}else if(param=='开始时间'){
this.showstartTime=true
}else{
this.showEndTime=true
}
},
//
async icEventList() {
console.log(window.location.href, "执行成功");
let parms = {
pageSize: this.pageSize,
pageNo: this.pageNo,
workOrderNum: this.workOrderNum,
mobile: this.mobile,
operationType: this.operationType,
staffId: this.staffId,
satisfied: this.satisfied,
status: this.status,
replyOperationType: this.replyOperationType,
confirmSolved: this.confirmSolved,
endTime: this.endTime,
startTime: this.startTime,
selectType: "gjk"
}
let { data, code, msg } = await icEventList(parms)
if (code == 0) {
if (this.workOrderNum || this.mobile || this.operationType) {
this.tableData = []
}
this.tableData = this.tableData.concat(data.list)
}
else {
console.log(msg);
}
},
onHandle(item) {
this.$router.push({ name: 'HotlineDetail', query: { icEventId: item.icEventId,typeEvent:false } })
},
onQuery() {
this.icEventList()
},
onOperationType(item) {
console.log(item);
this.operationType = item
},
},
components: {},
computed: {
onSelect() {
console.log("dslkfkhlkadf lk");
},
},
destroyed() {
this.scroll.removeEventListener('scroll', this.bottomScroll);//
},
watch: {}
}
</script>
<style lang='less' scoped>
:deep .van-button{
height: 38.95px;
}
:deep .van-search{
padding:0
}
:deep(.van-cascader__title) {
width: 100%;
}
:deep(.van-tabs__nav) {
padding-right: 80px;
box-sizing: border-box;
}
:deep(.van-tabs__nav--line) {
padding-bottom: 10px;
}
.workorder {
font-family: PingFang SC;
font-weight: 500;
font-size: 15px;
color: #000000;
}
.phonenName {
font-family: PingFang SC;
font-weight: 500;
font-size: 13px;
color: #999999;
white-space: nowrap;
/* 防止文本换行 */
overflow: hidden;
/* 隐藏超出的文本 */
text-overflow: ellipsis;
/* 如果文本超出容器,显示省略号 */
flex: 1;
}
.status-red {
color: red;
}
.lan {
color: blue;
}
.status-cycn {
color: cyan;
}
.status-orange {
color: orange;
}
.status-grey {
color: grey;
}
.status-red {
font-family: PingFang SC;
font-weight: 500;
font-size: 13px;
color: #FF3C3C;
}
.no-margin {
margin: 0 !important;
/* 确保边距为 0 */
padding: 0 !important;
width: 25%;
}
.handle {
height: 30px;
}
.custom-dropdown-menu {
background-color: red;
/* 背景颜色 */
border: 1px solid #ddd;
/* 边框样式 */
border-radius: 8px;
/* 圆角边框 */
padding: 10px;
/* 内边距 */
z-index: 10;
}
.van-dropdown-menu__bar {
background-color: wheat;
}
.satisfactionstatus {
font-weight: 500;
font-size: 26rpx;
color: #FC5231;
line-height: 42rpx;
}
.Resolutionstatus {
font-weight: 500;
font-size: 26rpx;
color: #FFA312;
line-height: 42rpx;
}
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 每行显示 3 列,等宽 */
gap: 10px; /* 图片之间的间隔 */
}
</style>

75
src/views/Hotline/index.vue

@ -31,7 +31,7 @@
</div> </div>
<div class="container"> <div class="container">
<div class=" card m-top12" style="box-shadow: none; " v-for="(item, index) in tableData" :key="index" @click="onHandle(item)"> <div class=" card m-top12" style="box-shadow: none; position: relative; " v-for="(item, index) in tableData" :key="index" @click="onHandle(item)">
<div class="flex flex-certer1 flex-center2 flex-end "> <div class="flex flex-certer1 flex-center2 flex-end ">
<div class="workorder"> <div class="workorder">
工单号{{ item.workOrderNum }} 工单号{{ item.workOrderNum }}
@ -56,6 +56,7 @@
</div> </div>
<img style="position: absolute; top: 0px; right: 200px;width: 90px;height: 90px;" v-if="item.solved=='未解决'||item.examine==1|| item.satisfaction=='bad'" src="https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250108/7bebc0b135a54380a4d62adea97a23d0.png">
</div> </div>
</div> </div>
<div style="position: fixed;bottom: 0px;width: 100%;"> <div style="position: fixed;bottom: 0px;width: 100%;">
@ -66,12 +67,21 @@
</template> </template>
<script> <script>
import throttle from 'lodash/debounce' import throttle from 'lodash/debounce'
import { icEventList } from '@/api/service' import { icEventList, reply } from '@/api/service'
import { uploadvariedfile } from '@/api/basic' import { uploadvariedfile } from '@/api/basic'
import { Dialog } from 'vant'; import { Dialog } from 'vant';
export default { export default {
data() { data() {
return { return {
startTime:"",
endTime:"",
confirmSolved:"",
status:"",
replyOperationType:"",
satisfied:"",
overTimeFlag:"",
staffId: '',
type: '',
operationTypeType:"", operationTypeType:"",
showpicker2:false, showpicker2:false,
showpicker:false, showpicker:false,
@ -79,9 +89,8 @@ export default {
mobile:"", mobile:"",
operationType:"", operationType:"",
operationTypeName:"10", operationTypeName:"10",
status: false,
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 30,
tableData: [ tableData: [
], ],
actions: [ actions: [
@ -109,9 +118,46 @@ export default {
}; };
}, },
created() { created() {
this.icEventList()
}, },
mounted() { mounted() {
const url = window.location.href;
const queryString = url.split('?')[1];
const urlParams = new URLSearchParams(queryString);
const worktoken = urlParams.get('worktoken');
const staffId = urlParams.get('staffId')
if (staffId) {
const type = urlParams.get('type');
const day = urlParams.get('day');
const day2 = urlParams.get('day2');
this.staffId=staffId
this.startTime=day+ " 00:00:00"
this.endTime=day2 + " 23:59:59"
this.type=type
if(this.type=="notSatisfied"){
this.satisfaction="bad"
}else if(this.type=="unresolve"){
this.status="closed_case",
this.operationType="12",
this.confirmSolved=0
}else if (this.type=="returnTotal") {
this.replyOperationType="13"
}
else if (this.type=="overTime") {
this.replyOperationType="13"
this.overTimeFlag="1"
}
else{
}
}else{
this.staffId="",
this.endTime="",
this.startTime="",
this.type=""
}
this.icEventList()
this.$nextTick(() => { this.$nextTick(() => {
console.log(this.$refs.scroll,"dslkjfskjdf"); console.log(this.$refs.scroll,"dslkjfskjdf");
this.scroll = this.$refs.scroll; this.scroll = this.$refs.scroll;
@ -120,10 +166,8 @@ export default {
this.$refs.scroll.scrollTo(0, this.$store.state.app.scrollTop); this.$refs.scroll.scrollTo(0, this.$store.state.app.scrollTop);
}, 500) }, 500)
} }
// this.scroll.addEventListener('scroll', this.bottomScroll); // this.scroll.addEventListener('scroll', this.bottomScroll); //
}) })
// this.scroll.addEventListener('scroll', this.bottomScroll); //
}, },
activated() { activated() {
@ -159,18 +203,26 @@ export default {
this.icEventList() this.icEventList()
} }
}, 500), }, 500),
showpicker1(){ showpicker1() {
this.showpicker2=true this.showpicker2 = true
}, },
// //
async icEventList() { async icEventList() {
console.log(window.location.href,"执行成功");
let parms = { let parms = {
pageSize: this.pageSize, pageSize: this.pageSize,
pageNo: this.pageNo, pageNo: this.pageNo,
workOrderNum: this.workOrderNum, workOrderNum: this.workOrderNum,
mobile:this.mobile, mobile:this.mobile,
operationType:this.operationType, operationType:this.operationType,
staffId:this.staffId,
satisfied:this.satisfied,
status:this.status,
replyOperationType:this.replyOperationType,
confirmSolved:this.confirmSolved,
endTime:this.endTime,
startTime:this.startTime
} }
let { data, code, msg } = await icEventList(parms) let { data, code, msg } = await icEventList(parms)
if(code==0){ if(code==0){
@ -217,6 +269,9 @@ export default {
}, },
},
destroyed() {
this.scroll.removeEventListener('scroll', this.bottomScroll);//
}, },
watch: {} watch: {}
} }

10
src/views/HotlineDetail/index.vue

@ -182,7 +182,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="container1" v-if="tableData.operationType !== '11' && tableData.operationType !== '12'"> <div class="container1" v-if="tableData.operationType !== '11' && tableData.operationType !== '12'&&tableData.operationTypeName!='正常退件'">
<van-button style="width: 40%; margin-right: 10%; background-color: #999999; color: #ffffff; border: none;" <van-button style="width: 40%; margin-right: 10%; background-color: #999999; color: #ffffff; border: none;"
round type="info" @click="handleRefund()">退件</van-button> round type="info" @click="handleRefund()">退件</van-button>
<van-button style="width: 40%;" round type="info" @click="handlelist()">办理</van-button> <van-button style="width: 40%;" round type="info" @click="handlelist()">办理</van-button>
@ -223,7 +223,7 @@
<van-cell :required="required"> <van-cell :required="required">
<div class="flex flex-y" is-link> <div class="flex flex-y" is-link>
<span style=" white-space: nowrap;">上传录音</span> <span style=" white-space: nowrap;">上传录音</span>
<van-uploader v-model="fileList" :after-read="afterRead" accept="audio/*" preview-size=80px> <van-uploader v-model="fileList" :after-read="afterRead" accept=".awb audio/*" preview-size=80px>
<div class="flex flex-center2 m-left18"> <div class="flex flex-center2 m-left18">
<img style="width: 15px;height: 15px;" src="../../assets/images/uploand.png"> <img style="width: 15px;height: 15px;" src="../../assets/images/uploand.png">
<span style=" white-space: nowrap;padding-left: 10px;">选择文件</span> <span style=" white-space: nowrap;padding-left: 10px;">选择文件</span>
@ -327,11 +327,11 @@
</van-cell-group> </van-cell-group>
<div class="flex flex-x flex-mean" style="margin-top: 10px;"> <div class="flex flex-x flex-mean" style="margin-top: 10px;">
<van-button style="width: 30%;" round type="info" @click="cancel">取消</van-button> <van-button style="width: 30%;" round type="info" @click="cancel">取消</van-button>
<van-button v-if="tableData.operationType!=='11'&& tableData.operationType!=='12'" style="width: 30%;" <van-button v-if="tableData.operationType!=='11'&& tableData.operationType!=='12'&& tableData.operationType!=='12'" style="width: 30%;"
round type="info" @click="onreply">办理</van-button> round type="info" @click="onreply">办理</van-button>
</div> </div>
</van-popup> </van-popup>
<img style="position: absolute; top: 0px;right: 20px; width: 100px;" v-if="tableData.solved=='未解决'|| tableData.examine==1|| tableData.satisfaction=='bad'" src="https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250108/4646fec31c4e478b8287f58d07979dcf.png">
</div> </div>
</template> </template>
@ -486,6 +486,8 @@ export default {
}, },
created() { created() {
this.getUserInfo() this.getUserInfo()
console.log(this.$route.query.typeEvent,"DFGJLDFG");
this.typeEvent=this.$route.query.typeEvent
this.icEventId =this.$route.query.icEventId; this.icEventId =this.$route.query.icEventId;
this.icEventList() this.icEventList()
this.process() this.process()

2
src/views/assistanceDetail/index.vue

@ -176,12 +176,14 @@ export default {
rdFinishResult: null,// rdFinishResult: null,//
fileList: [],// fileList: [],//
rdFinishDesc: null,// rdFinishDesc: null,//
}; };
}, },
created() { created() {
this.getServiceScopeTree() this.getServiceScopeTree()
}, },
mounted() { mounted() {
this.detail = this.$route.params.detail; this.detail = this.$route.params.detail;
this.selfObj = this.$route.params.selfObj; this.selfObj = this.$route.params.selfObj;
this.source = this.selfObj.source; this.source = this.selfObj.source;

2
vue.config.js

@ -11,7 +11,7 @@ const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)
const { defineConfig } = require('@vue/cli-service') const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({ module.exports = defineConfig({
publicPath: process.env.NODE_ENV === 'development' ? '/' : '/epmet-work-h5', // 署应用包时的基本 URL。 vue-router hash 模式使用 publicPath: process.env.NODE_ENV === 'development' ? '/epmet-work-h5' : '/epmet-work-h5', // 署应用包时的基本 URL。 vue-router hash 模式使用
// publicPath: process.env.NODE_ENV === 'development' ? '/' : '/h5', //署应用包时的基本 URL。 vue-router history模式使用 // publicPath: process.env.NODE_ENV === 'development' ? '/' : '/h5', //署应用包时的基本 URL。 vue-router history模式使用
outputDir: `dist/${OUTPUT_FILE_NAME}`, // 生产环境构建文件的目录 outputDir: `dist/${OUTPUT_FILE_NAME}`, // 生产环境构建文件的目录
assetsDir: 'static', // outputDir的静态资源(js、css、img、fonts)目录 assetsDir: 'static', // outputDir的静态资源(js、css、img、fonts)目录

Loading…
Cancel
Save