From 811bbc3feb318238214d022cb3a7458176f28e55 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 02 九月 2024 17:17:18 +0800
Subject: [PATCH] 新增插队、扫码枪等功能
---
src/components/do/b1-ins-order/add.vue | 43 +++++-
src/components/tool/value-table.vue | 42 +++++-
src/main.js | 8
src/components/do/b1-inspect-order-plan/Inspection.vue | 7 +
src/components/view/b1-inspect-order-plan.vue | 184 +++++++++++++++++++++++++++++-
src/components/view/b1-sample.vue | 57 +++++++++
src/assets/api/controller.js | 1
7 files changed, 314 insertions(+), 28 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index aa66f54..9f38e24 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -206,6 +206,7 @@
getReportModel: "/insOrderPlan/getReportModel", // 鍒囨崲鍏夌氦-鍏夌氦甯﹁褰曟ā鐗堟煡璇㈡楠屽唴瀹�
write: "/insOrderPlan/write", // 濉啓娓╁害涓庢箍搴�
temCycle: "/insOrderPlan/temCycle", // 娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��)
+ jumpTeam: "/insOrderPlan/jumpTeam", // 鎻掗槦
}
const systemLog = {
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 1515195..0f3c868 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -384,7 +384,7 @@
<el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input>
</template>
</el-table-column>
- <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center">
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="100" align="center">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
:readonly="active>1"></el-input>
@@ -399,7 +399,7 @@
</el-select>
</template>
</el-table-column>
- <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)">
+ <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" min-width="100" align="center" v-if="!(active>1)">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�"
@keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)"
@@ -412,6 +412,15 @@
placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)"
@focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []">
<el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="testRequirements" label="璇曢獙鏍囧噯" align="center" min-width="100">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1"
+ placeholder="璇曢獙鏍囧噯" size="small" :readonly="active>1" style="width: 100%;" clearable>
+ <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value">
</el-option>
</el-select>
</template>
@@ -1127,7 +1136,8 @@
temId: '',
sonLaboratoryList:[],
selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃
- deaprtEnum:[]
+ deaprtEnum:[],
+ standard:[]
}
},
watch: {
@@ -1193,6 +1203,7 @@
// this.selectInsOrderTemplate()
this.getAuthorizedPerson();
this.selectEnumByCategoryForUnit()
+ this.selectEnumByCategoryForStandard()
this.selectStandardMethods()
this.selectEnumByCategoryForOrderType()
this.selectDepartmentEnum()
@@ -1594,10 +1605,11 @@
}else if(this.addObj.orderType&&this.addObj.orderType!='C'&&!this.addObj.departmentLimsId){
this.addObj.departmentLims = '妫�娴嬩腑蹇�'
this.addObj.departmentLimsId = this.deaprtEnum.find(m=>m.name=='妫�娴嬩腑蹇�').id
- }else{
- this.$message.error('璇烽�夋嫨妫�楠岀被鍒�')
- return
}
+ // else{
+ // this.$message.error('璇烽�夋嫨妫�楠岀被鍒�')
+ // return
+ // }
if (!this.addObj.companyId) {
this.$message.error('鏈�夋嫨瀹㈡埛鍗曚綅')
return
@@ -2137,9 +2149,15 @@
})
},
getProNum() {
- this.sampleSelectionList.forEach((m, i) => {
- Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
- })
+ if (this.active != 1) {
+ this.sampleList.forEach((m, i) => {
+ Vue.set(this.sampleList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
+ })
+ }else{
+ this.sampleSelectionList.forEach((m, i) => {
+ Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
+ })
+ }
this.$refs.sampleTable.doLayout()
},
searchFilter() {
@@ -2559,6 +2577,13 @@
this.units = res.data
})
},
+ selectEnumByCategoryForStandard() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "璇曢獙鏍囧噯"
+ }).then(res => {
+ this.standard = res.data
+ })
+ },
selectEnumByCategoryForOrderType() {
this.$axios.post(this.$api.enums.selectEnumByCategory, {
category: "妫�楠岀被鍒�"
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index cbbee28..77318b8 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -440,6 +440,9 @@
<template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'">
<div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&¤tSample.model!==null">{{currentSample.model}}</div>
</template>
+ <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鏍囧噯'">
+ <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.testRequirements!==undefined&¤tSample.testRequirements!==null">{{currentSample.testRequirements}}</div>
+ </template>
<template v-else-if="n.v.ps!=undefined && n.v.ps.value==='濂楃'">
<div style="display: flex;flex-wrap: nowrap;align-items: center;">
<!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> -->
@@ -2739,6 +2742,7 @@
}
}
})
+ console.log(4444,a.template)
// 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭�
ids.forEach(id => {
for (let b = 0; b < a.template.length; b++) {
@@ -2751,6 +2755,9 @@
.ps.value === '妫�娴嬫柟娉�')) {
a.template[b].v.v = id.product.methodS
}
+ // if (a.template[b].v.ps != undefined && (a.template[b].v.ps.value === '璇曢獙鏍囧噯')) {
+ // a.template[b].v.v = id.product.testRequirements
+ // }
}
}
})
diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue
index 1892627..4d7ee4a 100644
--- a/src/components/tool/value-table.vue
+++ b/src/components/tool/value-table.vue
@@ -4,6 +4,10 @@
height: 100%;
overflow-y: auto;
}
+ >>>.el-table__row {
+ cursor: move;
+ position: relative;
+ }
.table {
width: 100%;
@@ -118,7 +122,7 @@
@row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0"
:summary-method="getSummaries" :row-class-name="tableRowClassName" :row-key="record=>record[rowKey]"
:current-row-key="data.currentId" :highlight-current-row="data.highlight===undefined||data.highlight"
- :span-method="spanMethod" :key="specialKey">
+ :span-method="spanMethod" :key="specialKey" :class="{sortable:data.sortable}">
<el-table-column type="selection" :width="selectionWidth" v-if="data.showSelect" :key="Math.random()">
</el-table-column>
<el-table-column type="index" align="center" label="搴忓彿" :width="selectionWidth" v-if="data.isIndex" :key="Math.random()">
@@ -332,12 +336,7 @@
</template>
<script>
- import {
- Page
- } from 'iview';
- import {
- data
- } from 'jquery';
+ import Sortable from 'sortablejs';
export default {
props: {
selectionWidth: {
@@ -503,8 +502,37 @@
'token': sessionStorage.getItem('token')
}
this.specialKey = this.specialKey+Math.random()*100;
+ // 鏄惁鍙嫋鍔ㄥ垪琛�--姝ゅ姛鑳芥殏鏃舵湭瀹炵幇
+ if(this.data.sortable){
+ this.$nextTick(() => {
+ this.initializeSortable()
+ })
+ }
},
methods: {
+ initializeSortable() {
+ let className =".el-table__body-wrapper > table > tbody";
+ const table= document.querySelector(className);
+ const self = this
+ Sortable.create(table, {
+ animation: 150, //鍔ㄧ敾鏃堕暱
+ handle: ".el-table__row", //鍙嫋鎷藉尯鍩焎lass
+ onEnd({ newIndex, oldIndex }) {
+ console.log(3333,newIndex, oldIndex)
+ const movedItem = this.tableData[oldIndex];
+ this.tableData.splice(oldIndex, 1);
+ this.tableData.splice(newIndex, 0, movedItem);
+ }
+ })
+ },
+ getUpdatedOrder() {
+ // 鏍规嵁鎷栨嫿鍚庣殑椤哄簭鑾峰彇鏇存柊鐨勬暟鎹�
+ // 杩欓噷闇�瑕佸疄鐜颁綘鐨勯�昏緫
+ },
+ updateTableData(newOrder) {
+ // 鏍规嵁鏂扮殑椤哄簭鏇存柊琛ㄦ牸鏁版嵁
+ // 杩欓噷闇�瑕佸疄鐜颁綘鐨勯�昏緫
+ },
rowspan(spanArr, position, spanName) {
this.tableData.forEach((item, index) => {
if (index === 0) {
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 2bd248c..5aa83ee 100644
--- a/src/components/view/b1-inspect-order-plan.vue
+++ b/src/components/view/b1-inspect-order-plan.vue
@@ -97,6 +97,10 @@
.view-self-checkbox {
margin-left: 50px;
}
+ .draggable-row {
+ cursor: move;
+ position: relative;
+ }
</style>
<style>
.ins-order-plan-main .el-form-item__label{
@@ -154,10 +158,101 @@
</el-col>
</el-row>
</div>
- <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
+ <!-- <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
:isColumnWidth="true"
:url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" @handleInspection="handleInspection"
- :key="upIndex"/>
+ :key="upIndex"/> -->
+ <el-table
+ :data="tableData"
+ ref="table"
+ border
+ style="width: 100%;"
+ height="calc(100% - 80px)"
+ :row-class-name="rowClassName"
+ v-loading="tableLoading"
+ >
+ <el-table-column
+ prop="entrustCode"
+ label="濮旀墭缂栧彿"
+ width="140px"
+ >
+ <template slot-scope="scope">
+ <el-button @click="selectAllByOne(scope.row)" type="text" size="small">{{ scope.row.entrustCode }}</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="sample"
+ label="鏍峰搧鍚嶇О"
+ width="100px"
+ ></el-table-column>
+ <el-table-column
+ prop="type"
+ label="绱ф�ョ▼搴�"
+ width="100px"
+ >
+ <template slot-scope="scope">
+ <el-tag :type="typeList.find(m=>m.value==scope.row.type).type" size="small">{{ typeList.find(m=>m.value==scope.row.type).label }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="insState"
+ label="鐘舵��"
+ width="100px"
+ >
+ <template slot-scope="scope">
+ <el-tag :type="typeList.find(m=>m.value==scope.row.insState).type" size="small">{{ typeList.find(m=>m.value==scope.row.insState).label }}</el-tag>
+ </template></el-table-column>
+ <el-table-column
+ prop="userName"
+ label="妫�楠屼汉"
+ width="140px"
+ ></el-table-column>
+ <el-table-column
+ prop="checkName"
+ label="澶嶆牳浜�"
+ width="100px"
+ ></el-table-column>
+ <el-table-column
+ prop="appointed"
+ label="绾﹀畾鏃堕棿"
+ width="120px"
+ ></el-table-column>
+ <el-table-column
+ prop="sendTime"
+ label="涓嬪彂鏃堕棿"
+ width="160px"
+ ></el-table-column>
+ <el-table-column
+ prop="insTime"
+ label="妫�楠屽紑濮嬫椂闂�"
+ width="160px"
+ ></el-table-column>
+ <el-table-column
+ prop="verifyTell"
+ label="鐞嗙敱"
+ width="150px"
+ ></el-table-column>
+ <el-table-column
+ fixed="right"
+ align="center" label="鎿嶄綔"
+ width="250px"
+ >
+ <template slot-scope="scope">
+ <el-button @click="handleDataLook(scope.row)" type="text" size="small">鏁版嵁鏌ョ湅</el-button>
+ <el-button @click="handleInspection(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))">妫�楠�</el-button>
+ <el-button @click="handleConnect(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 5 || scope.row.insState == 3||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))">浜ゆ帴</el-button>
+ <el-button @click="handleReview(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.checkName&&!scope.row.checkName.includes(userName))">澶嶆牳</el-button>
+ <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null">璁ら</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="display: flex;justify-content: flex-end;width: 100%;margin-top: 10px;">
+ <span></span>
+ <el-pagination @size-change="refreshTable" @current-change="refreshTable" :current-page="page.current"
+ :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </div>
</div>
</div>
<el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="400px">
@@ -219,7 +314,7 @@
getYearAndMonthAndDays
} from '../../util/date'
import Add from '../do/b1-ins-order/add.vue'
-import { CellGroup } from 'iview'
+ import Sortable from 'sortablejs';
export default {
components: {
ValueTable,
@@ -299,6 +394,7 @@
insState: null,
userId: null
},
+ sortable:true,
isIndex: true,
showSelect: false,
select: false,
@@ -387,6 +483,7 @@
requiredAdd: [],
requiredUp: []
},
+ userName:JSON.parse(localStorage.getItem("user")).name,
upIndex: 0,
planTotal: 0,
insStateList: [],
@@ -403,7 +500,29 @@
},
loading:false,
currentTime: null,
- sonLaboratoryList:[]
+ sonLaboratoryList:[],
+ tableData: [],
+ page:{
+ current:1,
+ size:20,
+ },
+ total:0,
+ tableLoading:false,
+ jumpTeam:false,
+ insResultList:[{
+ value: 0,
+ label: '涓嶅悎鏍�',
+ type: 'danger'
+ },{
+ value: 1,
+ label: '鍚堟牸',
+ type: 'success'
+ },{
+ value: '',
+ label: '鏈嚭缁撴灉',
+ type: 'info'
+ }],
+ typeList:[]
}
},
created() {
@@ -416,8 +535,43 @@
mounted() {
this.entityCopy = this.HaveJson(this.componentData.entity)
this.getPower()
+ if(this.jumpTeam){
+ this.initializeSortable();
+ }
},
methods: {
+ initializeSortable() {
+ const tableBody = this.$refs.table.$el.querySelector('.el-table__body-wrapper > table > tbody');
+
+ if (tableBody) {
+ Sortable.create(tableBody, {
+ handle: '.el-table__row', // 鎷栧姩鎵嬫焺
+ animation: 150,
+ onEnd: this.handleSortEnd,
+ });
+ } else {
+ console.error('Table body not found.');
+ }
+ },
+ handleSortEnd(evt) {
+ const oldIndex = evt.oldIndex;
+ const newIndex = evt.newIndex;
+ const movedItem = this.tableData[oldIndex];
+ this.$axios.post(this.$api.insOrderPlan.jumpTeam,
+ {
+ id: movedItem.id,
+ sort: newIndex+1,
+ ...this.page
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }
+ ).then(res => {})
+ },
+ rowClassName({ row, rowIndex }) {
+ return 'draggable-row';
+ },
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
this.componentDataDataLook.entity.id = row.id
@@ -430,6 +584,7 @@
let connect = false
let review = false
let claim = false
+ let jumpTeam = false
for (var i = 0; i < power.length; i++) {
if (power[i].menuMethod == 'doInsOrder') {
inspection = true
@@ -442,6 +597,9 @@
}
if (power[i].menuMethod == 'claimInsOrderPlan') {
claim = true
+ }
+ if (power[i].menuMethod == 'jumpTeam') {
+ jumpTeam = true
}
}
if (!claim) {
@@ -456,6 +614,7 @@
if (!inspection) {
this.componentData.do.splice(0, 1)
}
+ this.jumpTeam = jumpTeam
},
changeCheckBox(val) {
this.componentData.entity.userId = val?0:null
@@ -499,8 +658,20 @@
this.loading = false;
})
},
- refreshTable(e) {
- this.$refs.insOrderPlan.selectList(e)
+ refreshTable() {
+ this.tableLoading = true
+ this.$axios.post(this.$api.insOrderPlan.selectInsOrderPlanList,{
+ entity:this.componentData.entity,
+ page:this.page
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then((res) => {
+ this.tableLoading = false
+ this.total = res.data.body.total
+ this.tableData = res.data.body.records
+ })
},
changeRowClass({
row,
@@ -549,6 +720,7 @@
}
})
this.componentData.tagField.type.select = data
+ this.typeList = data
})
},
getInsStateDicts() {
diff --git a/src/components/view/b1-sample.vue b/src/components/view/b1-sample.vue
index 192a677..1f7589a 100644
--- a/src/components/view/b1-sample.vue
+++ b/src/components/view/b1-sample.vue
@@ -222,7 +222,7 @@
effect="dark"
placement="top"
v-for="(n,j) in m.samples"
- :key="j" :disabled="`${n.sample}${n.model}`.length<10">
+ :key="j" :disabled="`${n.sample}${n.model}`.length<5">
<div slot="content"><span>{{ n.sample }}</span>
<span> ({{ n.model }}) [{{ n.sampleCode }}]</span></div>
<li class="green"
@@ -366,6 +366,7 @@
<el-button type="primary" @click="confirmShelves" :loading="upLoadShelves">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <input type="password" id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;"></input>
</div>
</template>
@@ -382,6 +383,7 @@
shelfId: null
},
warehouse: [],
+ startTime: null,
shelf: [],
storageList:[],
storageVisible: false,
@@ -406,13 +408,64 @@
tableLoading:false,
sampleCode:'',
currentId:null,
- searchSampleCode:''
+ searchSampleCode:'',
+ codeInfo:null,
}
+ },
+ watch:{
+ storageVisible(newVal){
+ if(newVal){
+ // this.$message.success('鎵爜锛氭墦寮�')
+ let input = document.getElementById('ScanCodeInfo');
+ input.focus();
+ this.startTime = setInterval(()=>{
+ input.focus()
+ },1000)
+ }else{
+ // this.$message.warning('鎵爜锛氬叧闂�')
+ clearInterval(this.startTime)
+ }
+ },
+ exportVisible(newVal){
+ if(newVal){
+ // this.$message.success('鎵爜锛氭墦寮�')
+ let input = document.getElementById('ScanCodeInfo');
+ input.focus();
+ this.startTime = setInterval(()=>{
+ input.focus()
+ },1000)
+ }else{
+ // this.$message.warning('鎵爜锛氬叧闂�')
+ clearInterval(this.startTime)
+ }
+ },
},
mounted() {
this.selectList()
},
methods: {
+ keyup(e){
+ var code = ''
+ var str = {}
+ var that = this;
+ console.log(3333,this.codeInfo)
+ try{
+ code = JSON.parse(this.codeInfo)
+ if(code.moNo2==null||code.moNo2==undefined||code.moNo2==''){
+ this.$message.error('璇ヤ簩缁寸爜鏈夎')
+ }else{
+ str = {
+ moNo2: code.moNo2,
+ }
+ // if(this.storageVisible){
+ // }else if(this.exportVisible){}
+ this.sampleCode = code.moNo2
+ }
+ }catch(e){
+ this.$message.error('璇ヤ簩缁寸爜鏈夎')
+ }
+ this.codeInfo = null
+ },
selectList() {
this.$axios.get(this.$api.warehouse.selectWarehouse).then(res => {
this.warehouse = res.data
diff --git a/src/main.js b/src/main.js
index e9bae15..bcca7c2 100644
--- a/src/main.js
+++ b/src/main.js
@@ -18,9 +18,9 @@
Vue.prototype.PROJECT = '妫�娴嬩腑蹇�'
// Vue.prototype.PROJECT = '瑁呭鐢电紗'
//鏈湴
-Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
-const javaApi = 'http://127.0.0.1:8001';
-// const javaApi = 'http://192.168.0.104:8001';
+// Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
+// const javaApi = 'http://127.0.0.1:8001';
+const javaApi = 'http://192.168.212.249:8001';
// //閫氫俊娴嬭瘯搴�
// Vue.prototype.LOCATIONVUE = "http://10.1.13.77:8080";
@@ -28,7 +28,7 @@
//浜�
// Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
-//const javaApi = 'http://114.132.189.42:1234';
+// const javaApi = 'http://114.132.189.42:1234';
// //妫�娴嬩腑蹇冩寮忓簱
// Vue.prototype.LOCATIONVUE = "http://10.1.200.86:8080";
--
Gitblit v1.9.3