Merge remote-tracking branch 'origin/master'
| | |
| | | "babel-polyfill": "^6.26.0", |
| | | "classlist-polyfill": "^1.2.0", |
| | | "crypto-js": "^4.1.1", |
| | | "echarts": "4.9.0", |
| | | "element-ui": "^2.15.6", |
| | | "instead": "^1.0.3", |
| | | "js-base64": "^2.5.1", |
| | |
| | | "node-gyp": "^4.0.0", |
| | | "nprogress": "^0.2.0", |
| | | "portfinder": "^1.0.23", |
| | | "save": "^2.9.0", |
| | | "script-loader": "^0.7.2", |
| | | "vue": "^2.6.10", |
| | | "vue-axios": "^2.1.2", |
| | | "vue-clipboard2": "^0.3.3", |
| | | "vue-echarts": "5.0.0-beta.0", |
| | | "vue-flowchart-editor": "^1.0.2", |
| | | "vue-i18n": "^8.7.0", |
| | | "vue-router": "^3.0.1", |
| | |
| | | "@vue/cli-plugin-babel": "^3.1.1", |
| | | "@vue/cli-plugin-eslint": "^3.1.5", |
| | | "@vue/cli-service": "^3.1.4", |
| | | "@vue/composition-api": "^1.7.2", |
| | | "chai": "^4.1.2", |
| | | "node-sass": "^6.0.1", |
| | | "sass-loader": "^10.0.5", |
| | |
| | | </ul> |
| | | <div |
| | | class="radio_box" |
| | | v-show="currentTypeObj[type]['upParams'] === 'classifyAttr'" |
| | | v-show="currentTypeObj[type]['upParams'] === 'classifyAttr' && this.type !== 'bulkEdit'" |
| | | > |
| | | <span>åç±»çè·¯å¾ä½¿ç¨ç屿§:</span> |
| | | <el-radio-group v-model="classifyAttr"> |
| | |
| | | size="small" |
| | | @click="downloadTemplateFun" |
| | | :loading="downloadLoading" |
| | | >ä¸è½½å¯¼å
¥æ¨¡æ¿</el-button |
| | | > |
| | | v-if="type !== 'bulkEdit'" |
| | | >ä¸è½½å¯¼å
¥æ¨¡æ¿</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | :loading="downloadLoading" |
| | | @click="downloadTemplateFun" |
| | | v-if="type === 'bulkEdit'" |
| | | >ä¸è½½ç¼è¾æ¨¡æ¿</el-button> |
| | | <el-button size="small" @click="dialogVisible = false">å
³é</el-button> |
| | | </template> |
| | | <ShowImportData |
| | |
| | | downloadBatchImportApplyTemplate, |
| | | downloadBatchApplyCodeTemplate, |
| | | } from "../../api/batchImport/index"; |
| | | import {exportCode} from '@/api/GetItem' |
| | | import func from "@/util/func"; |
| | | import FormTemplate from "../FormTemplate/FormTemplate.vue"; |
| | | import { getToken } from "@/util/auth"; |
| | | import codeApply from "@/mixins/codeApply.js"; |
| | |
| | | type: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | tableHeadFindData:{ |
| | | type:Array, |
| | | default:[] |
| | | }, |
| | | selectRow:{ |
| | | type:Array, |
| | | default:[] |
| | | }, |
| | | resetTable: Function |
| | | }, |
| | |
| | | return this.currentTypeObj[this.type]["action"]; |
| | | }, |
| | | upParams() { |
| | | if (this.type === "historyImport" || this.type === "batchApplyCode") { |
| | | if (this.type === "historyImport" || this.type === "batchApplyCode" || this.type === "bulkEdit") { |
| | | return { |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | classifyAttr: this.classifyAttr, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | exportArrTwo: {}, |
| | | classifyAttr: "id", |
| | | downloadLoading: false, |
| | | showVisible: false, |
| | |
| | | downloadTemplateFun: downloadHistoryImportTemplate, |
| | | upParams: "classifyAttr", |
| | | }, |
| | | bulkEdit:{ |
| | | title: "æ¹éç¼è¾å¯¼å
¥", |
| | | tipList: [ |
| | | "1.æ é¢å¸¦äºè§æç表示å
³é®å±æ§ï¼å¸¦æå·è¡¨ç¤ºå¿
è¾é¡¹", |
| | | "2.æ¯æ¬¡ä»
è½æå¤å¯¼å
¥5000æ¡æ°æ®(å¯éè¿nacosè¿è¡é
ç½®ï¼æ¨è5000/次导å
¥)ï¼å¦æåºéä¼è¿åéè¯¯çæ°æ®ååå ï¼ä½æ¯æ£ç¡®æ°æ®å¯ä»¥ç»§ç»ä¿å", |
| | | "3.请æç
§ä¸è½½çç¼è¾æ¨¡æ¿æä½¿ç¨çé
ç½®è¿è¡å
·ä½é
ç½®" |
| | | ], |
| | | action: "/api/ubcs-code/mdmEngineController/batchImportHistoryData", |
| | | downloadTemplateFun: downloadHistoryImportTemplate, |
| | | upParams: "classifyAttr", |
| | | }, |
| | | batchImportApply: { |
| | | title: "æ¹éç³è¯·ç¼ç ", |
| | | title: "æ¹é导å
¥ç³è¯·", |
| | | tipList: [ |
| | | "1.æ é¢å¸¦äºè§æç表示å
³é®å±æ§ï¼å¸¦æå·è¡¨ç¤ºå¿
è¾é¡¹", |
| | | "2.请ä¸å®å
éæ©/è¾å
¥ç¼ç è§åçç æ®µå¼ååéæ©excelæä»¶", |
| | |
| | | }, |
| | | // ä¸è½½å¯¼å
¥æ¨¡æ¿ |
| | | downloadTemplateFun() { |
| | | this.downloadLoading = true; |
| | | this.downloadTemplateApi({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }) |
| | | .then((res) => { |
| | | this.$utilFunc.downloadFileByBlob(res.data, this.title + "模æ¿.xls"); |
| | | this.downloadLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.downloadLoading = false; |
| | | }); |
| | | if(this.type !== 'bulkEdit'){ |
| | | this.downloadLoading = true; |
| | | this.downloadTemplateApi({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }) |
| | | .then((res) => { |
| | | this.$utilFunc.downloadFileByBlob(res.data, this.title + "模æ¿.xls"); |
| | | this.downloadLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.downloadLoading = false; |
| | | }); |
| | | return; |
| | | } |
| | | if(this.type === 'bulkEdit'){ |
| | | this.tableHeadFindData.map(item => item.prop) |
| | | .forEach((prop, index) => { |
| | | this.exportArrTwo[`attrIdIndexMap[${index}]`] = prop; |
| | | }); |
| | | exportCode({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | 'conditionMap[oid]': this.ids, ...this.exportArrTwo, |
| | | limit: -1 |
| | | }).then(res => { |
| | | // console.log('res',res) |
| | | if (res) { |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('ä¸è½½æåï¼è¯·æ¥çï¼') |
| | | } |
| | | }) |
| | | return; |
| | | } |
| | | }, |
| | | onSuccess(res) { |
| | | if (Object.keys(res.data).length === 0) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | v-if="dialogVisible" |
| | | v-dialogDrag |
| | | title="æ¹éä¿®æ¹" |
| | | :visible.sync="dialogVisible" |
| | | append-to-body |
| | | ></el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "MasterEditBulk", |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | data(){ |
| | | return{ |
| | | |
| | | } |
| | | }, |
| | | computed:{ |
| | | dialogVisible: { |
| | | get() { |
| | | return this.visible; |
| | | }, |
| | | set(val) { |
| | | this.$emit("update:visible", val); |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | }, |
| | | value: { |
| | | handler(newval, oldval) { |
| | | //console.log('value', newval) |
| | | // console.log('value', newval) |
| | | } |
| | | } |
| | | }, |
| | |
| | | this.TableRend(); // TableHeadRend() æ¹æ³å®æååæ§è¡ TableRend() |
| | | this.$emit('nodeClick', this.templateOids) |
| | | this.$emit("codeClassifyOid", this.nodeClickList.oid) |
| | | this.$emit("nodeClickList", this.nodeClickList) |
| | | } catch (error) { |
| | | // å¤çé误 |
| | | this.$message.error(error) |
| | |
| | | </el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus'" |
| | | <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0" |
| | | :key="item.id" |
| | | :formatter="item.formatter" |
| | | :label="item.label" :prop="item.prop" |
| | |
| | | :width="item.width" |
| | | align="center"> |
| | | </el-table-column> |
| | | |
| | | <!-- åç
§æ°æ®--> |
| | | <el-table-column v-for="(item,index) in referArray" key="index" v-if="Object.keys(item.referConfig).length > 0 && !item.hidden" :label="item.title" prop="jiliangdw" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.jiliangdwname }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-row> |
| | |
| | | :visible.sync="editvisible" |
| | | type="edit" @submit="EditSumbit"></FormTemplateDialog> |
| | | <!-- æ¹éç¼è¾--> |
| | | <FormBulkEdit :visible.sync="bulkeditvisible"></FormBulkEdit> |
| | | <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> |
| | | <!-- æ°æ®è¯¦æ
--> |
| | | <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" |
| | | :rowOid="this.LinkObject.oid" :templateOid="templateOid" |
| | |
| | | :tableData="tableData" |
| | | :tableHeadData="tableHeadFindData" :templateOid="templateOid" |
| | | :visible.sync="dialogPush"></MasterTransfer> |
| | | <!-- 导å
¥--> |
| | | <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" |
| | | :visible.sync="batchImportData.visible" :tableHeadData="tableHeadFindData" :selectRow="selectRow"> |
| | | </BatchImport> |
| | | <!-- ç¸ä¼¼é¡¹--> |
| | | <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" |
| | | :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <!-- 导å
¥--> |
| | | <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" |
| | | :visible.sync="batchImportData.visible"> |
| | | </BatchImport> |
| | | </div> |
| | | <div class="bottom"> |
| | | <el-collapse v-model="visibleNames" @change="handleCollapse"> |
| | |
| | | import SetPersonnel from "@/components/template/SetPersonnel"; |
| | | import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue"; |
| | | import BatchImport from '@/components/BatchImport' |
| | | import MasterEditBulk from '@/components/Master/MasterEditBulk' |
| | | import {validatenull} from "@/util/validate"; |
| | | import fileInHtml from "@/components/file/inHtml.vue"; |
| | | import {getUserInfo} from "@/api/system/user"; |
| | |
| | | ResembleQueryDialog, |
| | | BatchImport, |
| | | fileInHtml, |
| | | MasterEditBulk |
| | | }, |
| | | name: "Crud.vue", |
| | | props: { |
| | |
| | | Treedata: { |
| | | type: Array |
| | | }, |
| | | |
| | | nodeClickList:{ |
| | | type:Array, |
| | | default:[] |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | LinkList: [], |
| | | isCodeArrayPushed: false, // ç¼ç æ°ç»æ·»å æ è¯åé |
| | | CodeArray: [], |
| | | //çå½å¨ææ°ç» |
| | | lcstatusArray:[], |
| | | //åç
§æ°æ®æ°ç» |
| | | referArray:[], |
| | | islcstatusPushed:false, |
| | | isReferPushed:false, |
| | | // ç¶ææç´¢ |
| | | statusSelect: "all", |
| | | // å
³é®åæ¥è¯¢ |
| | |
| | | // console.log('lcstatusArray', this.lcstatusArray); |
| | | this.islcstatusPushed = true; |
| | | } |
| | | // console.log('new',newval) |
| | | if(!this.isReferPushed){ |
| | | if (newval.find(item => Object.keys(item.referConfig).length > 0)) { |
| | | this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0)); |
| | | }else { |
| | | this.referArray.push([]) |
| | | } |
| | | } |
| | | this.isReferPushed=true; |
| | | console.log('new',this.referArray) |
| | | console.log('ss',newval.find(item => Object.keys(item.referConfig).length > 0)) |
| | | this.WupinFindValue = '' |
| | | }, |
| | | }, |
| | |
| | | // æ å修订 |
| | | if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler() |
| | | //æ¹éç¼è¾ |
| | | if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler() |
| | | if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit") |
| | | }); |
| | | }, |
| | | //æ åç³è¯· |
| | |
| | | } |
| | | }, |
| | | //æ¹éç¼è¾ |
| | | bulkEditHandler(){ |
| | | bulkEditHandler(type){ |
| | | console.log(this.nodeClickList) |
| | | if(this.nodeClickList.children.length >= 1){ |
| | | this.$message.warning('å½åéæ©çåç±»ä¸æ¯å¶åèç¹ï¼ä¸å
许æ¹éç¼è¾ï¼') |
| | | return; |
| | | } |
| | | if(this.selectRow.length <= 0){ |
| | | this.$message.warning('è¯·éæ©è³å°ä¸æ¡æ°æ®ï¼') |
| | | return; |
| | |
| | | const Editing = this.selectRow.every(item => item.lcstatus === 'Editing'); |
| | | |
| | | if (Editing) { |
| | | this.bulkeditvisible = true; |
| | | this.batchImportData.visible = true |
| | | this.batchImportData.type = type |
| | | this.batchImportData.codeClassifyOid = this.codeClassifyOid |
| | | } else { |
| | | this.$message.warning('éæ©çæ°æ®ä¸æç¼ç ç¶æä¸æ¯âç¼è¾ä¸âï¼ä¸å¯ç¼è¾ï¼'); |
| | | } |
| | |
| | | // const requestData = this.selectRow.forEach(item => { |
| | | // return { oids: item.oid, btmName: item.btmname }; |
| | | // }); |
| | | |
| | | const oids = this.selectRow.map(item => item.oid).join(','); |
| | | applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => { |
| | | if (res.data.code == 200) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div id="main"> |
| | | <basic-container> |
| | | <v-chart :options="option" ref="chart" style="width: 100%;height:100vh"></v-chart> |
| | | </basic-container> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import 'echarts' |
| | | import 'echarts/lib/chart/line'; |
| | | import 'echarts/lib/component/tooltip'; |
| | | import 'echarts/lib/component/title'; |
| | | import 'echarts/lib/component/legend'; |
| | | export default { |
| | | name: "statisticPage", |
| | | data() { |
| | | return { |
| | | option: { |
| | | color: ['red','black'], |
| | | legend: { |
| | | data: ['å¾ä¾1', 'å¾ä¾2', 'å¾ä¾3'], |
| | | }, |
| | | dataset: [ |
| | | { |
| | | id: 'dataset_raw', |
| | | source: [ |
| | | { month: 1, total: 1000, newly: 800 }, |
| | | { month: 2, total: 5000, newly: 1000 }, |
| | | { month: 3, total: 1800, newly: 1400 }, |
| | | { month: 4, total: 1500, newly: 1200 }, |
| | | { month: 5, total: 1000, newly: 1200 }, |
| | | { month: 6, total: 1500, newly: 1200 }, |
| | | { month: 7, total: 1500, newly: 1200 }, |
| | | { month: 8, total: 1500, newly: 1000 }, |
| | | { month: 9, total: 1500, newly: 1200 }, |
| | | { month: 10, total: 1500, newly: 1200 }, |
| | | { month: 11, total: 1500, newly: 1200 }, |
| | | { month: 12, total: 1500, newly: 1200 }, |
| | | ], |
| | | }, |
| | | ], |
| | | title: { |
| | | text: '主é¢åºæ°æ®ç»è®¡åæ', |
| | | left:'center', |
| | | textAlign:'center' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | nameLocation: 'middle', |
| | | name:'month', |
| | | // data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] // æä»½æ°æ® |
| | | }, |
| | | yAxis: { |
| | | name: 'Number', |
| | | type: 'value', |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'line', |
| | | datasetId: 'dataset_raw', |
| | | showSymbol: false, |
| | | encode: { |
| | | x: 'month', |
| | | y: 'total', |
| | | itemName: 'month', |
| | | tooltip: ['total'], |
| | | }, |
| | | }, |
| | | { |
| | | type: 'line', |
| | | datasetId: 'dataset_raw', |
| | | showSymbol: false, |
| | | encode: { |
| | | x: 'month', |
| | | y: 'newly', |
| | | itemName: 'month', |
| | | tooltip: ['newly'], |
| | | }, |
| | | }, |
| | | ], |
| | | } |
| | | }; |
| | | }, |
| | | mounted() { |
| | | import('echarts').then((echarts) => { |
| | | // console.log(echarts) |
| | | this.$nextTick(() => { |
| | | const chartDom = this.$refs.chart.$el; |
| | | const myChart = echarts.init(chartDom); |
| | | myChart.setOption(this.option); |
| | | }); |
| | | }); |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | import website from '@/config/website'; |
| | | import crudCommon from '@/mixins/crud'; |
| | | import Divider from './components/Divider'; |
| | | import ECharts from 'vue-echarts' |
| | | Vue.component('v-chart', ECharts) |
| | | // ä¸å¡ç»ä»¶ |
| | | import tenantPackage from './views/system/tenantpackage'; |
| | | import enupackage from "@/views/modeling/enupackage"; |
| | |
| | | @tableHeadBttoms="tableHeadBttoms" |
| | | @tableHeadDataFateher="tableHeadDatas" |
| | | @tableHeadFindData="tableHeadFindDatas" |
| | | @nodeClickList="nodeClickLists" |
| | | @total="totals" |
| | | > |
| | | </master-tree> |
| | |
| | | :tableHeadFindData="tableHeadFindData" |
| | | :templateOid="templateOid" |
| | | :total="this.total" |
| | | :nodeClickList="this.nodeClickList" |
| | | @currentPage="currentPages" |
| | | @pageSize="pageSizes" |
| | | > |
| | |
| | | total: "", |
| | | isLoading: false, |
| | | tableHeadFindData: {}, |
| | | TreeValue: '' |
| | | TreeValue: '', |
| | | nodeClickList:[] |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | nodeClickLists(val){ |
| | | this.nodeClickList=val; |
| | | }, |
| | | TreeValueEmit(val) { |
| | | this.TreeValue = val |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <lineChart></lineChart> |
| | | </template> |
| | | |
| | | <script> |
| | | import lineChart from "../../components/StatisticsComponent/lineChart" |
| | | |
| | | export default { |
| | | components: { |
| | | lineChart |
| | | }, |
| | | name: "statisticPage", |
| | | data(){ |
| | | return{ |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | top='-40px'> |
| | | <el-table |
| | | ref="TableBox" |
| | | v-loading="TableLoading" |
| | | :data="Crud.data" |
| | | border |
| | | style="width: 100%" |
| | |
| | | name: "Statistic", |
| | | data() { |
| | | return { |
| | | TableLoading: false, |
| | | loading: true, |
| | | Crud: { |
| | | form: '', |
| | |
| | | // console.log(row) |
| | | this.SelectRow = row; |
| | | }, |
| | | SaveHandler() { |
| | | async SaveHandler() { |
| | | if (this.SelectRow.length <= 0) { |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®ï¼') |
| | | return |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®ï¼'); |
| | | return; |
| | | } |
| | | let mdmNameList = []; |
| | | mdmNameList = this.SelectRow.map(item => { |
| | | return item.code |
| | | }) |
| | | console.log(mdmNameList) |
| | | save(this.userId, mdmNameList).then(res => { |
| | | console.log(res) |
| | | if (res.data.code === 200) { |
| | | this.$message.success('ä¿åæåï¼') |
| | | //æ¸
é¤å·²ææ°ç»ä¸pushæ°æ® |
| | | this.TableLoading = true; |
| | | try { |
| | | const {data: {code}} = await save(this.userId, this.SelectRow.map(item => item.code)); |
| | | if (code === 200) { |
| | | this.$message.success('ä¿åæåï¼'); |
| | | this.newData = []; |
| | | this.option.data = [] |
| | | this.MasterGetList() |
| | | this.option.data = []; |
| | | this.MasterGetList(); |
| | | this.dialogTableVisible = false; |
| | | //åä½åè¾¹æ¡éæ°å è½½ |
| | | this.TableLoading = false; |
| | | this.loading = true; |
| | | this.FontInfo() |
| | | this.FontInfo(); |
| | | } |
| | | }) |
| | | } catch { |
| | | this.TableLoading = false; |
| | | } |
| | | }, |
| | | MoreHandler() { |
| | | this.dialogTableVisible = true; |
| | |
| | | proxy: { |
| | | '/api': { |
| | | //æ¬å°æå¡æ¥å£å°å |
| | | target: 'http://127.0.0.1:37000', |
| | | // target: 'http://127.0.0.1:37000', |
| | | // target: 'http://192.168.1.51:37000', |
| | | // target: 'http://dev.vci-tech.com:37000', |
| | | target: 'http://dev.vci-tech.com:37000', |
| | | //yxc |
| | | // target: 'http:// 192.168.0.104:37000', |
| | | // target: 'http://192.168.0.105:37000', |