Commit 47b626e4 authored by 张豪's avatar 张豪

Merge branch 'dev'

parents 8fdd8b35 dd9517ec
...@@ -36,7 +36,7 @@ pipeline: ...@@ -36,7 +36,7 @@ pipeline:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod-devops/ui-base:2.0.0 base: registry.cn-qingdao.aliyuncs.com/wod-devops/ui-base:2.0.0
repo: wod/apaas-ui repo: wod/apaas-ui
version: "v3.1.0" version: "v3.2.0"
channel: alpha channel: alpha
registry: registry.cn-qingdao.aliyuncs.com registry: registry.cn-qingdao.aliyuncs.com
secrets: secrets:
...@@ -52,7 +52,7 @@ pipeline: ...@@ -52,7 +52,7 @@ pipeline:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
base: registry.cn-qingdao.aliyuncs.com/wod-devops/ui-base:2.0.0 base: registry.cn-qingdao.aliyuncs.com/wod-devops/ui-base:2.0.0
repo: wod/apaas-ui repo: wod/apaas-ui
version: "v3.1.0" version: "v3.2.0"
registry: registry.cn-qingdao.aliyuncs.com registry: registry.cn-qingdao.aliyuncs.com
secrets: secrets:
- source: REGISTRY_USER_ALIYUN - source: REGISTRY_USER_ALIYUN
...@@ -87,3 +87,4 @@ pipeline: ...@@ -87,3 +87,4 @@ pipeline:
- source: REGISTRY_PASSWORD_ALIYUN - source: REGISTRY_PASSWORD_ALIYUN
target: REGISTRY_PASSWORD target: REGISTRY_PASSWORD
branches: [master,dev] branches: [master,dev]
...@@ -35,12 +35,27 @@ module.exports = { ...@@ -35,12 +35,27 @@ module.exports = {
rules: [ rules: [
{ {
test: /\.vue$/, test: /\.vue$/,
loader: 'vue-loader', use:[
options: vueLoaderConfig {
loader: 'thread-loader'
},
{
loader: 'vue-loader',
options: vueLoaderConfig
},
],
}, },
{ {
test: /\.js$/, test: /\.js$/,
loader: 'babel-loader', use:[
{
loader: 'thread-loader'
},
{
loader: 'babel-loader',
}
],
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
}, },
{ {
......
...@@ -24,6 +24,13 @@ module.exports = { ...@@ -24,6 +24,13 @@ module.exports = {
"^/awecloud": "" "^/awecloud": ""
} }
}, },
"/vmap": {
target: "https://apaas3.wodcloud.com/vmap/",
changeOrigin: true,
pathRewrite: {
"^/vmap": ""
}
},
}, },
// Various Dev Server settings // Various Dev Server settings
host: "localhost", // can be overwritten by process.env.HOST host: "localhost", // can be overwritten by process.env.HOST
......
This diff is collapsed.
...@@ -7,6 +7,7 @@ export const lang = { ...@@ -7,6 +7,7 @@ export const lang = {
personal_center: "个人中心", personal_center: "个人中心",
profile: "个人档案", profile: "个人档案",
message_center: "消息中心", message_center: "消息中心",
my_questions_and_answers: "我的问答",
// unit of purchase duration // unit of purchase duration
by_year: "按年", by_year: "按年",
......
src/assets/imgs/img_head.png

2.15 KB | W: | H:

src/assets/imgs/img_head.png

3.09 KB | W: | H:

src/assets/imgs/img_head.png
src/assets/imgs/img_head.png
src/assets/imgs/img_head.png
src/assets/imgs/img_head.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -80,9 +80,12 @@ ...@@ -80,9 +80,12 @@
</div> </div>
<div class="list-container" v-else> <div class="list-container" v-else>
<list-table <list-table
ref="listTable"
:header="listHeader" :header="listHeader"
:data="listData" :data="listData"
:padding-left="listPaddingLeft" :padding-left="listPaddingLeft"
:select="listSelect"
@select="selectAction"
></list-table> ></list-table>
</div> </div>
...@@ -146,6 +149,10 @@ export default { ...@@ -146,6 +149,10 @@ export default {
type: String, type: String,
default: () => "请输入关键字", default: () => "请输入关键字",
}, },
listSelect: {
type: Boolean,
default: false,
},
}, },
data: () => ({ data: () => ({
showListFilter: false, showListFilter: false,
...@@ -223,6 +230,15 @@ export default { ...@@ -223,6 +230,15 @@ export default {
}); });
}, 200); }, 200);
}, },
selectAction(selectedItems) {
this.$emit("list-select", selectedItems);
},
clearSelection() {
this.$refs.listTable.clearSelection();
},
setSelectedRow(row, flag) {
this.$refs.listTable.setSelectedRow(row, flag);
},
}, },
mounted() { mounted() {
this.initOtherFilter(); this.initOtherFilter();
......
<template> <template>
<div class="apass_table"> <div class="apass_table">
<el-table <el-table
ref="apassTable"
:data="data" :data="data"
@sort-change="sortChange" @sort-change="sortChange"
@row-click="rowClick" @row-click="rowClick"
@selection-change="selectAction"
:row-class-name="rowClassName" :row-class-name="rowClassName"
> >
<el-table-column <el-table-column
v-if="paddingLeft > 10" v-if="paddingLeft > 10"
:width="paddingLeft - 10" :width="paddingLeft - 10"
></el-table-column> ></el-table-column>
<el-table-column type="selection" width="80" align="center" v-if="select">
<!-- checkbox -->
</el-table-column>
<el-table-column <el-table-column
v-for="(item, index) in header" v-for="(item, index) in header"
:label="item.label" :label="item.label"
...@@ -296,13 +301,17 @@ export default { ...@@ -296,13 +301,17 @@ export default {
default: () => 50, default: () => 50,
}, },
height: { height: {
type: Number, type: [Number,String],
default: null, default: null,
}, },
rowClassName: { rowClassName: {
type: Function, type: Function,
default: null, default: null,
}, },
select: {
type: Boolean,
default: false,
},
}, },
data() { data() {
return { return {
...@@ -395,6 +404,15 @@ export default { ...@@ -395,6 +404,15 @@ export default {
leaveMoreActionList() { leaveMoreActionList() {
this.showMoreActionList = false; this.showMoreActionList = false;
}, },
selectAction(selectedItems) {
this.$emit("select", selectedItems);
},
clearSelection() {
this.$refs.apassTable.clearSelection();
},
setSelectedRow(row, flag) {
this.$refs.apassTable.toggleRowSelection(row, flag);
},
}, },
}; };
</script> </script>
......
<template>
<el-upload
ref="upload"
drag
action="/apaas/static/file/upload"
:data="{
directory: 'sdk',
uniqueCode: false,
}"
:file-list="fileList"
:before-upload="beforeUpload"
:on-success="uploadSuccess"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
<p>将文件拖到此处,或<em>点击上传</em></p>
<p class="upload_tip" v-if="tip" v-text="tip"></p>
</div>
</el-upload>
</template>
<script>
export default {
model: {
prop: "url",
event: "change",
},
props: {
url: {
type: String,
default: "",
},
tip: {
type: String,
default: "",
},
},
data() {
return {
preUrl: "",
};
},
computed: {
fileList() {
let list = [];
if (this.url) {
let path = this.url.split("/");
list = [
{
name: path[path.length - 1],
url: this.url,
},
];
}
return list;
},
},
methods: {
getFileType(fileName) {
let startIndex = fileName.lastIndexOf(".");
if (startIndex != -1) {
return fileName
.substring(startIndex + 1, fileName.length)
.toLowerCase();
} else {
return "";
}
},
beforeUpload(file) {
const filtType = this.getFileType(file.name);
if (filtType === "rar" || filtType === "zip") {
this.preUrl = this.url;
return true;
} else {
this.$message.error("仅支持rar和zip格式!");
return false;
}
},
uploadSuccess({ data }) {
this.$emit("change", data);
// 替换文件后要把旧文件删除掉
if (this.preUrl) {
this.$http
.delete("/apaas/static/file/delete", {
params: {
url: this.preUrl,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.preUrl = "";
}
});
}
},
},
};
</script>
<style scoped>
.upload_tip {
font-size: 12px;
line-height: 20px;
color: #a9aec0;
}
</style>
<template>
<div class="doc_width_nav">
<div class="part doc_part">
<h3 class="part_title">
<span>{{ title || "-" }}</span>
<span>更新时间:{{ time || "-" }}</span>
</h3>
<div
class="part_content doc_content apaas_scroll"
v-html="content"
ref="docContent"
></div>
</div>
<div class="part nav_part">
<h3 class="part_title">
<span>导航</span>
</h3>
<ul class="part_content nav_content apaas_scroll">
<li
v-for="(item, index) in navTree"
:class="[
'text_clip',
'level_' + item.level,
item.id === curNav ? ' current' : '',
]"
:key="index"
>
<a v-text="item.title" @click="clickNav(item)"></a>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
props: {
richText: {
type: String,
defalut: "",
},
title: {
type: String,
defalut: "",
},
time: {
type: String,
defalut: "",
},
},
data() {
return {
content: "",
navTree: [],
curNav: "",
};
},
watch: {
richText() {
this.translate();
},
},
mounted() {
this.translate();
},
methods: {
translate() {
let content = this.richText || "";
if (content) {
let titles =
content.match(
/<h1(([\s\S])*?)<\/h1>|<h2(([\s\S])*?)<\/h2>|<h3(([\s\S])*?)<\/h3>/g
) || [];
let time = new Date().getTime();
let pre_h1_index = 0;
let pre_h2_index = 0;
let pre_h3_index = 0;
let newTitles = titles
.map((title, index) => {
let newTitle = title;
let level = 0;
let id = "";
if (title.match(/<h1(([\s\S])*?)<\/h1>/g)) {
pre_h1_index++;
pre_h2_index = 0;
pre_h3_index = 0;
level = 1;
id = `nav_${pre_h1_index}` + "_" + time;
newTitle = title.replace(/<h1/g, `<h1 id="${id}"`);
} else if (title.match(/<h2(([\s\S])*?)<\/h2>/g)) {
pre_h2_index++;
pre_h3_index = 0;
level = 2;
id = `nav_${pre_h1_index}_${pre_h2_index}` + "_" + time;
newTitle = title.replace(/<h2/g, `<h2 id="${id}"`);
} else if (title.match(/<h3(([\s\S])*?)<\/h3>/g)) {
pre_h3_index++;
level = 3;
id = `nav_${pre_h1_index}_${pre_h2_index}_${pre_h3_index}`;
newTitle = title.replace(/<h3/g, `<h3 id="${id}"`) + "_" + time;
}
content = content.replace(new RegExp(title), newTitle);
return {
level,
id,
title: title.replace(/<\/?.+?>/g, ""),
};
})
.filter((item) => item.title);
this.content = content;
this.navTree = newTitles;
this.curNav = (newTitles[0] && newTitles[0].id) || "";
}
},
clickNav(item) {
let target = document.querySelector(`#${item.id}`);
this.setScroll(target, this.$refs.docContent);
this.curNav = item.id;
},
setScroll(el, parentEl) {
let actualTop = el.offsetTop;
let current = el.offsetParent;
while (current !== null) {
actualTop += current.offsetTop;
current = current.offsetParent;
}
parentEl.scrollTop = actualTop - parentEl.offsetTop;
},
},
};
</script>
<style scoped>
.doc_width_nav {
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.doc_width_nav > .part {
background-color: #fff;
border-radius: 10px;
padding-bottom: 20px;
box-sizing: border-box;
box-sizing: 0;
}
.doc_width_nav > .part + .part {
margin-left: 20px;
}
.doc_part {
flex-grow: 1;
}
.nav_part {
width: 270px;
flex-shrink: 0;
}
.part_title {
padding: 10px 20px;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
}
.part_title::after {
content: "";
position: absolute;
right: 0;
left: 0;
bottom: 0;
border-bottom: 1px solid #e3e5ef;
}
.part_title > span:nth-child(1) {
font-size: 18px;
font-weight: bold;
line-height: 36px;
color: #58617a;
position: relative;
padding-left: 15px;
}
.part_title > span:nth-child(1)::before {
content: "";
width: 4px;
height: 18px;
background-color: #515fe7;
border-radius: 2px;
position: absolute;
top: 10px;
left: 0;
}
.part_title > span:nth-child(2) {
font-size: 14px;
line-height: 24px;
color: #8890a7;
padding-left: 20px;
background-image: url("/../assets/imgs/shop_ic_updatetime.png");
background-repeat: no-repeat;
background-position: left center;
}
.part_content {
height: calc(100% - 76px);
margin-top: 20px;
box-sizing: border-box;
overflow: auto;
}
.doc_content {
padding: 0 20px;
}
.nav_content {
padding-left: 20px;
}
.nav_content > li > a {
display: block;
height: 30px;
padding: 0 20px;
font-size: 14px;
line-height: 30px;
color: #58617a;
text-decoration: none;
cursor: pointer;
}
.nav_content > li.level_1 > a {
color: #242c43;
}
.nav_content > li.level_2 > a {
text-indent: 2em;
}
.nav_content > li.level_3 > a {
text-indent: 4em;
}
.nav_content > li.current > a {
background-color: #e6ebfe;
color: #515fe7;
}
</style>
...@@ -14,28 +14,34 @@ ...@@ -14,28 +14,34 @@
class="eeupload" class="eeupload"
action="/apaas/static/image/upload" action="/apaas/static/image/upload"
:file-list="fileArray" :file-list="fileArray"
:list-type="type=='picture'?'picture-card':''" :list-type="type == 'picture' ? 'picture-card' : ''"
:limit="max" :limit="max"
:multiple="multiple" :multiple="multiple"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
:class="{hide:hideUpload || readOnly}" :class="{ hide: hideUpload || readOnly }"
:readOnly="readOnly" :readOnly="readOnly"
:data="anotherData" :data="anotherData"
:drag="drag" :drag="drag"
:disabled="disabled" :disabled="disabled"
:accept="accepts"
> >
<div v-if="drag"> <div v-if="drag">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text"> <div class="el-upload__text">
将文件拖到此处,或 <span class="up_fz">将文件拖到此处,或</span>
<em>点击上传</em> <em>点击上传</em><br />
<span class="up_fz">{{ up_fz }}</span>
</div> </div>
</div> </div>
<el-button size="small" type="primary" v-if="!drag && type=='default'">上传文件</el-button> <el-button size="small" type="primary" v-if="!drag && type == 'default'"
<div slot="tip" class="el-upload__tip" v-if="!drag && type=='mp3'">支持文件格式:.mp3,单个文件不能超过20M。</div> >上传文件</el-button
<i class="el-icon-plus" v-if="!drag && type=='picture'"></i> >
<div slot="tip" class="el-upload__tip" v-if="!drag && type == 'mp3'">
支持文件格式:.mp3,单个文件不能超过20M。
</div>
<i class="el-icon-plus" v-if="!drag && type == 'picture'"></i>
</el-upload> </el-upload>
</div> </div>
</div> </div>
...@@ -97,9 +103,30 @@ export default { ...@@ -97,9 +103,30 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
up_fz: {
type: String,
default: "",
},
accepts: {
type: String,
default: "",
},
}, },
watch: { watch: {
list(value) { list(value) {
this.getFileArray(value);
},
},
created() {
if (!this.unique) {
this.anotherData.uniqueCode = this.unique;
}
},
mounted() {
this.getFileArray(this.list);
},
methods: {
getFileArray(value) {
var getListImg = []; var getListImg = [];
if (value && value.length != 0) { if (value && value.length != 0) {
for (var i = 0; i < value.length; i++) { for (var i = 0; i < value.length; i++) {
...@@ -112,13 +139,6 @@ export default { ...@@ -112,13 +139,6 @@ export default {
this.fileArray = [...getListImg]; this.fileArray = [...getListImg];
this.hideUpload = this.fileArray.length >= this.max; this.hideUpload = this.fileArray.length >= this.max;
}, },
},
created() {
if (!this.unique) {
this.anotherData.uniqueCode = this.unique;
}
},
methods: {
beforeAvatarUpload(file) { beforeAvatarUpload(file) {
if (this.type == "mp3") { if (this.type == "mp3") {
const isMP3 = file.type === "audio/mp3"; const isMP3 = file.type === "audio/mp3";
...@@ -217,4 +237,7 @@ export default { ...@@ -217,4 +237,7 @@ export default {
.hide .el-upload--picture-card { .hide .el-upload--picture-card {
display: none; display: none;
} }
.up_fz {
color: #a9aec0;
}
</style> </style>
\ No newline at end of file
...@@ -254,7 +254,7 @@ export default { ...@@ -254,7 +254,7 @@ export default {
if (v.visit_url) { if (v.visit_url) {
if (v.visit_url == "/fwgl/" || v.visit_url == "/yygl/") { if (v.visit_url == "/fwgl/" || v.visit_url == "/yygl/") {
this.$router.push(v.visit_url + this.$store.getters.level); this.$router.push(v.visit_url + this.$store.getters.level);
} else if (parent == "/shop") { } else if (parent == "/services_shop") {
this.$store.commit("serviceShopMenuAct", v.visit_url); this.$store.commit("serviceShopMenuAct", v.visit_url);
this.$router.push(v.visit_url); this.$router.push(v.visit_url);
} else { } else {
...@@ -400,6 +400,7 @@ export default { ...@@ -400,6 +400,7 @@ export default {
font-size: 14px; font-size: 14px;
display: none; display: none;
z-index: 1; z-index: 1;
text-align: center;
} }
.shop_menu { .shop_menu {
width: 280px; width: 280px;
...@@ -435,7 +436,7 @@ export default { ...@@ -435,7 +436,7 @@ export default {
height: 44px; height: 44px;
line-height: 44px; line-height: 44px;
padding: 0 30px; padding: 0 30px;
text-align: left; text-align: center;
color: #0d1847; color: #0d1847;
} }
.user_menu div:hover { .user_menu div:hover {
......
This diff is collapsed.
<template>
<el-form :inline="true" ref="formInline" :model="formInline" class="demo-form-inline formsearch d_ui_form">
<el-form-item
:label="item.label"
v-for="(item,index) in data"
:key="index+500"
:prop="item.key"
>
<el-input
v-if="item.type == 'input'"
class="d_search_input"
v-model="formInline[item.key]"
:placeholder="item.placeholder"
></el-input>
<el-date-picker
v-if="item.type == 'daterange'"
v-model="formInline[item.key]"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:clearable="false"
></el-date-picker>
<el-select
v-if="item.type == 'select'"
v-model="formInline[item.key]"
:placeholder="item.placeholder"
>
<el-option v-for="(it,idx) in item.arr" :key="idx+600" :label="it.label" :value="it.value"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button class="primary_btn" type="primary" @click="onSubmit">查询</el-button>
<el-button class="defaule_btn" @click="remove_data">重置</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
props: ["data"],
components: {},
data() {
return {
formInline: {},
};
},
watch: {},
computed: {},
created() {
var temp = {};
this.data.forEach((e) => {
temp[e.key] = "";
});
this.formInline = temp;
},
mounted() {},
methods: {
onSubmit() {
this.$emit("serach", this.formInline);
},
remove_data() {
this.$refs["formInline"].resetFields();
this.$emit("serach", "");
},
},
};
</script>
<style scoped>
.primary_btn {
width: 100px;
background-color: #515fe7;
color: #e6ebfe;
}
.defaule_btn {
width: 100px;
background-color: #c3caf8;
color: #0f2683;
}
</style>
<style>
.formsearch .el-form-item {
/* margin-left: 50px; */
margin-left: 30px;
}
.formsearch .el-form-item:nth-last-of-type(1) {
position: absolute;
right: -210px;
}
.formsearch .el-form-item .el-form-item__label {
color: #242c43;
font-weight: 600;
}
.d_search_input.el-input {
width: 200px;
}
</style>
<style scoped>
.formsearch {
position: relative;
width: calc(100% - 220px);
}
</style>
<style>
.from_content1 .el-input__inner {
background-color: #f7f8f9;
}
.from_content1 .el-date-editor.el-range-editor .el-range-input {
background-color: #f7f8f9;
width: 80px;
}
.from_content1 .el-date-editor.el-range-editor .el-range-separator {
width: 40px;
position: relative;
top: 2px;
}
.from_content1 .el-date-editor.el-range-editor {
width: 260px;
padding: 3px 10px 3px 15px;
}
.from_content1 .el-date-editor .el-range__icon {
margin-right: 8px;
}
</style>
\ No newline at end of file
<template>
<div class="tab_btns">
<div
class="btn"
v-for="(item, index) in data"
:key="index + 100"
@click="clickFunc(item.func)"
:style="{
float: item.position,
backgroundColor: item.type == 'warn' ? '#ad3a4a' : '',
}"
:class="item.position == 'right' ? 'left_marg' : ''"
>
{{ item.label }}
</div>
<span class="selectnum"
>已选择
<span style="color: #242c43; font-weight: 600">{{ num }}</span></span
>
<span class="clean" @click="clean">清空</span>
</div>
</template>
<script>
export default {
props: ["data", "num"],
components: {},
data() {
return {};
},
watch: {},
computed: {},
created() {},
mounted() {},
methods: {
clickFunc(type) {
this.$emit(type);
},
clean() {
this.$emit("clean");
},
},
};
</script>
<style scoped>
.btn {
height: 40px;
line-height: 40px;
background-color: #2b4695;
border-radius: 8px;
padding: 0 30px;
float: left;
color: #fefefe;
cursor: pointer;
}
.selectnum {
/* float: right; */
line-height: 40px;
margin: 0 30px;
color: #8890a7;
}
.clean {
/* float: right; */
text-decoration: underline;
color: #2b4695;
line-height: 40px;
margin-right: 20px;
cursor: pointer;
}
.left_marg {
margin-left: 10px;
}
.tab_btns {
position: relative;
margin-bottom: 25px;
}
.tab_btns::after {
content: "";
position: absolute;
width: calc(100% + 40px);
height: 1px;
background-color: #e3e5ef;
left: -20px;
bottom: -20px;
}
</style>
...@@ -13,9 +13,10 @@ ...@@ -13,9 +13,10 @@
<span <span
v-for="(item, index) in buttonList" v-for="(item, index) in buttonList"
:key="'btn' + index" :key="'btn' + index"
:class="item.state ? 'btn_default btn_actice':'btn_default'" :class="item.state ? 'btn_default btn_actice' : 'btn_default'"
@click="btnClick(index)" @click="btnClick(index)"
>{{ item.name }}</span> >{{ item.name }}</span
>
</div> </div>
<div class="input_right"> <div class="input_right">
<el-input <el-input
...@@ -58,7 +59,10 @@ ...@@ -58,7 +59,10 @@
:disabled="pagination.page == 1" :disabled="pagination.page == 1"
></el-button> ></el-button>
&nbsp;&nbsp;{{ pagination.page }}页 / 共{{ &nbsp;&nbsp;{{ pagination.page }}页 / 共{{
Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage) Math.ceil(
(pagination.total == 0 ? 1 : pagination.total) /
pagination.rowsPerPage
)
}} }}
<el-button <el-button
icon="el-icon-arrow-right" icon="el-icon-arrow-right"
...@@ -66,9 +70,12 @@ ...@@ -66,9 +70,12 @@
size="mini" size="mini"
@click="handleCurrentChange(1)" @click="handleCurrentChange(1)"
:disabled=" :disabled="
pagination.page >= pagination.page >=
Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage) Math.ceil(
" (pagination.total == 0 ? 1 : pagination.total) /
pagination.rowsPerPage
)
"
></el-button> ></el-button>
</div> </div>
</div> </div>
...@@ -304,11 +311,12 @@ export default { ...@@ -304,11 +311,12 @@ export default {
border-right-color: #dcdfe6; border-right-color: #dcdfe6;
border-left-color: #dcdfe6; border-left-color: #dcdfe6;
border-top: 4px solid #e56600; border-top: 4px solid #e56600;
height: 48px; height: 50px !important;
} }
.order_block .el-tabs--border-card > .el-tabs__header .el-tabs__item { .order_block .el-tabs--border-card > .el-tabs__header .el-tabs__item {
border-top: 4px solid transparent; border-top: 4px solid transparent;
height: 48px; height: 50px !important;
line-height: 46px !important;
} }
.order_block .el-tabs--border-card > .el-tabs__header .el-tabs__item:hover { .order_block .el-tabs--border-card > .el-tabs__header .el-tabs__item:hover {
color: #e56600; color: #e56600;
......
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
<div class="order_list"> <div class="order_list">
<div class="order_th_pad"> <div class="order_th_pad">
<el-row class="order_th"> <el-row class="order_th">
<el-col :span="10">服务信息</el-col> <el-col :span="7">服务信息</el-col>
<el-col :span="6">规格</el-col> <el-col :span="5">规格</el-col>
<el-col :span="4">申请状态</el-col> <el-col :span="3">购买时长</el-col>
<el-col :span="4">操作</el-col> <el-col :span="3">总价</el-col>
<el-col :span="3">申请状态</el-col>
<el-col :span="3">操作</el-col>
</el-row> </el-row>
</div> </div>
<order-cell v-for="item in datas" :key="item.id" :cellItem="item" @updateList="updateList"></order-cell> <order-cell v-for="item in datas" :key="item.id" :cellItem="item" @updateList="updateList"></order-cell>
......
<template> <template>
<div class="info_logo"> <div class="info_logo">
<div class="logo"> <div class="logo">
<img :src="data.url" alt="" style="width:100%;" /> <img :src="data.url" alt="" style="width:100%;" v-if="!data.isProcess" />
<workflows-view :zoom="0.4" :id="data.workflows_id" :hideDetail="true" v-if="data.isProcess"></workflows-view>
<map-view v-if="data.isMap" :id="data.portal_id"></map-view> <map-view v-if="data.isMap" :id="data.portal_id"></map-view>
<process-view v-if="data.isProcess" :id="data.workflows_id"></process-view>
</div> </div>
<div class="info"> <div class="info">
<p class="info_title"> <p class="info_title">
...@@ -122,10 +124,12 @@ ...@@ -122,10 +124,12 @@
<script> <script>
import MapView from "./service-info/map-view"; import MapView from "./service-info/map-view";
import processView from '@/components/service-info/process-view'
import workflowsView from '@/components/work-flow/workflows-view'
export default { export default {
props: ["data"], props: ["data"],
components: { MapView }, components: { MapView,processView,workflowsView },
data() { data() {
return {}; return {};
}, },
......
...@@ -34,17 +34,33 @@ ...@@ -34,17 +34,33 @@
<span v-text="data.create_date"></span> <span v-text="data.create_date"></span>
</li> </li>
</ul> </ul>
<div class="and_wid">
<div class="dbn_wkdn">
&nbsp;&nbsp;格:
<span class="ndwa_indowa"> {{ data.price * duration }} </span>
<span class="kfdf_jffa">金币</span>
</div>
<div class="nmd_kwd">
月售:
<span class="ndwa_dn"> {{ data.sale }}</span>
<img src="@/assets/imgs/shop_ic_star.png" class="dwin_diwa" />
<span class="dn_wjd"> {{ data.star }} </span>
</div>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>&emsp;&emsp;格:</span> <span>&emsp;&emsp;格:</span>
<div class="btn_container_ddaw">
{{ data.price }} 金币/月
</div>
</div>
<div class="commodity_information">
<span>购买时长:</span>
<div class="btn_container"> <div class="btn_container">
<el-button <el-input-number
v-for="(item, index) in specifications" v-model="duration"
:key="'specifications_' + index" :min="1"
:type="item.value === specificationID ? 'primary' : 'default'" :disabled="actionDisabled"
@click="changeSpecification(item)" ></el-input-number>
>
{{ item.name }}
</el-button>
</div> </div>
</div> </div>
<div class="commodity_action"> <div class="commodity_action">
...@@ -80,7 +96,13 @@ export default { ...@@ -80,7 +96,13 @@ export default {
}, },
], ],
specificationID: 1, specificationID: 1,
duration: 1,
}), }),
computed: {
actionDisabled() {
return this.specifications.length == 0;
},
},
methods: { methods: {
changeSpecification({ value }) { changeSpecification({ value }) {
this.specificationID = value; this.specificationID = value;
...@@ -244,6 +266,10 @@ export default { ...@@ -244,6 +266,10 @@ export default {
.commodity_information > .btn_container > .el-input-number { .commodity_information > .btn_container > .el-input-number {
margin: 0 20px 15px 0; margin: 0 20px 15px 0;
} }
.btn_container_ddaw {
line-height: 40px;
margin-left: 5px;
}
.commodity_action { .commodity_action {
margin-top: 60px; margin-top: 60px;
text-align: right; text-align: right;
...@@ -253,6 +279,55 @@ export default { ...@@ -253,6 +279,55 @@ export default {
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
} }
.and_wid {
background-color: #f9fafc;
border-radius: 8px;
padding: 20px;
display: flex;
justify-content: space-between;
margin-top: 20px;
align-items: center;
}
.dbn_wkdn {
color: #8890a7;
font-size: 14px;
}
.ndwa_indowa {
color: #e56600;
font-size: 26px;
font-weight: bold;
}
.kfdf_jffa {
color: #e56600;
font-size: 14px;
}
.nmd_kwd {
color: #8890a7;
}
.ndwa_dn {
color: #242c43;
}
.dn_wjd {
color: #ea7d19;
font-size: 18px;
position: relative;
}
.dwin_diwa {
width: 14px;
height: 14px;
margin-left: 20px;
margin-right: 4px;
position: relative;
}
.dn_wjd::after {
content: "";
position: absolute;
width: 2px;
height: 16px;
background-color: #e3e5ef;
top: 5px;
left: -35px;
}
</style> </style>
<style> <style>
......
<template>
<div class="map_view">
<a class="map_view_action" href="#" @click.prevent.stop="viewAction">
<img :src="require('../../assets/imgs/ic_yulan.png')" />
</a>
<transition name="mask-bg-fade">
<el-dialog
class="map_view_dialog"
title="预览"
width="1200px"
:visible.sync="showDialog"
:before-close="beforeClose"
>
<div class="map_view_container">
<workflows-view :zoom="0.8" :id="id" :hideDetail="true"></workflows-view>
</div>
</el-dialog>
</transition>
</div>
</template>
<script>
import workflowsView from '@/components/work-flow/workflows-view'
export default {
name: "map-view",
components:{
workflowsView
},
data: () => ({
showDialog: false,
}),
props: {
id: {
type: Number,
required: true,
}
},
methods: {
viewAction() {
this.showDialog = true;
},
beforeClose(done) {
done();
},
},
};
</script>
<style scoped>
.map_view_action {
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
padding: 10px 0 0 10px;
box-sizing: border-box;
border-top-left-radius: 40px;
background-color: #8f93a1;
}
.map_view_container {
height: 666px;
}
.map_view_container > iframe {
display: block;
width: 100%;
height: 100%;
}
</style>
<style>
.map_view_dialog .el-dialog {
overflow: hidden;
}
.map_view_dialog .el-dialog__header {
padding: 18px 20px 17px;
border-bottom: 1px solid #edf0ff;
text-align: left;
}
.map_view_dialog .el-dialog__body {
padding: 0;
}
</style>
...@@ -18,11 +18,21 @@ ...@@ -18,11 +18,21 @@
</div> </div>
<div class="main_container"> <div class="main_container">
<div class="main_container-left" v-if="data.cover"> <div class="main_container-left" v-if="data.cover">
<img :src="data.cover" width="100%" /> <img :src="data.cover" width="100%" v-if="data.type !== 'workflow'" />
<workflows-view
:zoom="0.6"
:id="parseInt(data.workflows_id)"
:hideDetail="true"
v-if="data.type == 'workflow'"
></workflows-view>
<map-view <map-view
v-if="data.type === 'Map Service'" v-if="data.type === 'Map Service'"
:id="data.portal_id" :id="data.portal_id"
></map-view> ></map-view>
<process-view
:id="parseInt(data.workflows_id)"
v-if="data.type == 'workflow'"
></process-view>
</div> </div>
<div class="main_container-right"> <div class="main_container-right">
<ul class="service_base_info"> <ul class="service_base_info">
...@@ -51,54 +61,91 @@ ...@@ -51,54 +61,91 @@
<span v-text="data.descript"></span> <span v-text="data.descript"></span>
</li> </li>
</ul> </ul>
<div class="and_wid">
<div class="dbn_wkdn">
&nbsp;&nbsp;格:<span class="ndwa_indowa">
{{
specification && specification.money
? specification.money * (showTime ? duration : 1)
: 0
}}
</span>
<span class="kfdf_jffa">金币</span>
</div>
<div class="nmd_kwd">
月售:<span class="ndwa_dn">{{ data.month_sale }}</span
><img src="@/assets/imgs/shop_ic_star.png" class="dwin_diwa" />
<span class="dn_wjd">{{ data.scoreDetail.avgScore }}</span>
</div>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>&emsp;&emsp;格:</span> <span>计次收费规格:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span> <span
v-if="
(data.serviceRequestSpcs.spcs_type_1 &&
data.serviceRequestSpcs.spcs_type_1.length == 0) ||
!data.serviceRequestSpcs.spcs_type_1
"
class="commodity_text"
>暂无</span
>
<div v-else class="btn_container"> <div v-else class="btn_container">
<el-button <el-button
v-for="(item, index) in specifications" v-for="(item, index) in data.serviceRequestSpcs.spcs_type_1"
:key="'spcs_' + index" :key="'spcs_' + index"
:type="item.id === specification.id ? 'primary' : 'default'" :type="item.id === specification.id ? 'primary' : 'default'"
@click="changeSpecification(item)" @click="changeSpecification(item, 0)"
> >
{{ item.name }} {{ item.money }}金币/{{ item.spcs_count }}
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="commodity_information"> <div class="commodity_information">
<span>规格说明:</span> <span>时长收费规格:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<span <span
v-else v-if="
(data.serviceRequestSpcs.spcs_type_2 &&
data.serviceRequestSpcs.spcs_type_2.length == 0) ||
!data.serviceRequestSpcs.spcs_type_2
"
class="commodity_text" class="commodity_text"
v-text="(specification && specification.descript) || '-'" >暂无</span
></span> >
</div>
<div class="commodity_information">
<span>购买方式:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<div v-else class="btn_container"> <div v-else class="btn_container">
<el-button <el-button
v-for="(item, index) in types" v-for="(item, index) in data.serviceRequestSpcs.spcs_type_2"
v-text="item.name" :key="'spcs_' + index"
:key="'type_' + index" :type="item.id === specification.id ? 'primary' : 'default'"
:type="item.value === type ? 'primary' : 'default'" @click="changeSpecification(item, 1)"
@click="changeType(item)"
> >
{{ item.money }}金币/月
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="commodity_information">
<span>规格说明:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<span
v-else
class="commodity_text"
v-text="(specification && specification.descript) || '-'"
></span>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>购买时长:</span> <span>购买时长:</span>
<div class="btn_container"> <div v-if="showTime" class="btn_container">
<el-input-number <el-input-number
v-model="duration" v-model="duration"
:min="1" :min="1"
:disabled="actionDisabled" :disabled="actionDisabled"
></el-input-number> ></el-input-number>
</div>
<div v-else class="btn_container">
<el-button type="primary"> 不限时长 </el-button>
</div> </div>
</div> </div>
<div class=" commodity_action"> <div class="commodity_action">
<el-button <el-button
type="warning" type="warning"
plain plain
...@@ -123,10 +170,14 @@ ...@@ -123,10 +170,14 @@
<script> <script>
import helper from "@/services/helper.js"; import helper from "@/services/helper.js";
import MapView from "./map-view"; import MapView from "./map-view";
import workflowsView from "@/components/work-flow/workflows-view";
import processView from "@/components/service-info/process-view";
export default { export default {
components: { components: {
MapView, MapView,
workflowsView,
processView,
}, },
props: { props: {
data: { data: {
...@@ -136,42 +187,38 @@ export default { ...@@ -136,42 +187,38 @@ export default {
}, },
data: () => ({ data: () => ({
types: [], types: [],
type: 0, // 购买方式 1:按月,2:按年 type: 1, // 购买方式 1:按月,2:按年
specification: {}, // 规格 specification: {}, // 规格
duration: 1, // 时长 duration: 1, // 时长
showTime: false,
}), }),
computed: { computed: {
specifications() {
let specifications = (this.data.serviceRequestSpcs || []).filter(
(item) => item.type == this.type || item.type == 3
);
return specifications;
},
actionDisabled() { actionDisabled() {
return this.specifications.length == 0; let a = this.data.serviceRequestSpcs;
}, return (
}, a &&
watch: { a.spcs_type_1 &&
specifications: { a.spcs_type_1.length == 0 &&
handler() { a.spcs_type_2 &&
this.specification = this.specifications[0]; a.spcs_type_2.length == 0
}, );
deep: true,
}, },
}, },
watch: {},
methods: { methods: {
dateTransform(datestr = "") { dateTransform(datestr = "") {
return helper.dateStringTransform(datestr); return helper.dateStringTransform(datestr);
}, },
changeSpecification(specification) { changeSpecification(specification, type) {
this.specification = specification; this.specification = specification;
if (type == 0) {
this.showTime = false;
} else if (type == 1) {
this.showTime = true;
}
}, },
changeType({ value }) { changeType({ value }) {
this.type = value; this.type = value;
if (this.specifications.length > 0) {
this.specification = this.specifications[0];
}
}, },
addToCart() { addToCart() {
// console.log("addToCart"); // console.log("addToCart");
...@@ -211,6 +258,7 @@ export default { ...@@ -211,6 +258,7 @@ export default {
query: { query: {
service_id: parseFloat(this.data.service_id), service_id: parseFloat(this.data.service_id),
spec_id: this.specification.id, spec_id: this.specification.id,
spcs_type: this.specification.spcs_type,
duration: this.duration, duration: this.duration,
duration_unit: this.type, duration_unit: this.type,
}, },
...@@ -255,8 +303,18 @@ export default { ...@@ -255,8 +303,18 @@ export default {
} }
// 初始化规格 // 初始化规格
if (this.specifications.length > 0) { if (
this.specification = this.specifications[0]; this.data.serviceRequestSpcs &&
this.data.serviceRequestSpcs.spcs_type_1 &&
this.data.serviceRequestSpcs.spcs_type_1.length > 0
) {
this.specification = this.data.serviceRequestSpcs.spcs_type_1[0];
} else if (
this.data.serviceRequestSpcs &&
this.data.serviceRequestSpcs.spcs_type_2 &&
this.data.serviceRequestSpcs.spcs_type_2.length > 0
) {
this.specification = this.data.serviceRequestSpcs.spcs_type_2[0];
} }
}, },
}; };
...@@ -402,6 +460,55 @@ export default { ...@@ -402,6 +460,55 @@ export default {
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
} }
.and_wid {
background-color: #f9fafc;
border-radius: 8px;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
}
.dbn_wkdn {
color: #8890a7;
font-size: 14px;
}
.ndwa_indowa {
color: #e56600;
font-size: 26px;
font-weight: bold;
}
.kfdf_jffa {
color: #e56600;
font-size: 14px;
}
.nmd_kwd {
color: #8890a7;
}
.ndwa_dn {
color: #242c43;
}
.dn_wjd {
color: #ea7d19;
font-size: 18px;
position: relative;
}
.dwin_diwa {
width: 14px;
height: 14px;
margin-left: 20px;
margin-right: 4px;
position: relative;
}
.dn_wjd::after {
content: "";
position: absolute;
width: 2px;
height: 16px;
background-color: #e3e5ef;
top: 5px;
left: -35px;
}
</style> </style>
<style> <style>
......
...@@ -53,12 +53,12 @@ export default { ...@@ -53,12 +53,12 @@ export default {
if (response.data.success == 1) { if (response.data.success == 1) {
let arr = response.data.data[0].Child; let arr = response.data.data[0].Child;
let shopArr = []; let shopArr = [];
arr.forEach((item) => { let asd = arr.find(item => {
if (item.visit_url == "/services_shop") { return item.visit_url == "/services_shop"
shopArr = item.Child; })
} shopArr = asd.Child;
}); if (shopArr && shopArr.length != 0) {
shopArr.forEach((item) => { Array.from(shopArr).forEach((item) => {
let uri = item.visit_url.substring(6); let uri = item.visit_url.substring(6);
if (uri.indexOf("/") != -1) { if (uri.indexOf("/") != -1) {
uri = uri.substring(0, uri.indexOf("/")); uri = uri.substring(0, uri.indexOf("/"));
...@@ -98,6 +98,7 @@ export default { ...@@ -98,6 +98,7 @@ export default {
break; break;
} }
}); });
}
this.menuList = shopArr; this.menuList = shopArr;
} }
}); });
......
...@@ -64,7 +64,7 @@ export default { ...@@ -64,7 +64,7 @@ export default {
computed: {}, computed: {},
created() {}, created() {},
mounted() { mounted() {
this.formInline.depart = this.$store.state.userInfo.department_name; this.formInline.depart = this.$store.state.userInfo&&this.$store.state.userInfo.department_name || "";
}, },
methods: { methods: {
submitForm() { submitForm() {
......
...@@ -37,10 +37,10 @@ ...@@ -37,10 +37,10 @@
</div> </div>
</div> </div>
<div class="size"> <div class="size">
<p>{{ data.size }}</p> <p>{{data.size}}</p>
<P>{{ data.applytype }}</P>
</div> </div>
<div class="num">{{ data.num }}</div> <div class="num">{{ data.num }}</div>
<div class="count">{{ data.count }}</div>
<div class="oprate"> <div class="oprate">
<upload-file <upload-file
v-if="data.isMg" v-if="data.isMg"
...@@ -156,18 +156,18 @@ export default { ...@@ -156,18 +156,18 @@ export default {
} }
.serviceinfo { .serviceinfo {
width: 415px; width: 415px;
margin-right: 90px; margin-right: 66px;
} }
.pic { .pic {
width: 116px; width: 116px;
height: 116px; height: 116px;
float: left; float: left;
background-size: contain; background-size: contain;
margin-right: 20px; margin-right: 15px;
} }
.info { .info {
float: left; float: left;
width: 270px; width: 230px;
} }
.info p { .info p {
color: rgba(136, 144, 167, 1); color: rgba(136, 144, 167, 1);
...@@ -193,27 +193,29 @@ export default { ...@@ -193,27 +193,29 @@ export default {
.size { .size {
width: 240px; width: 240px;
height: 107px; height: 107px;
background-color: rgba(249, 250, 252, 1); line-height: 107px;
border-radius: 8px; border-radius: 8px;
margin-right: 70px; color: #242c43;
padding: 20px;
color: rgba(136, 144, 167, 1);
}
.size p:nth-of-type(1) {
line-height: 22px;
margin-bottom: 10px;
} }
.num { .num {
width: 138px; width: 138px;
height: 107px; height: 107px;
line-height: 107px; line-height: 107px;
font-size: 16px; font-size: 14px;
color: rgba(88, 97, 122, 1); color: #242c43;
margin-right: 55px; margin-right: 20px;
text-align: center;
}
.count{
width: 108px;
height: 107px;
line-height: 107px;
font-size: 14px;
color: #242c43;
text-align: center; text-align: center;
} }
.oprate { .oprate {
width: 130px; width: 150px;
height: 107px; height: 107px;
padding-top: 34px; padding-top: 34px;
padding-left: 30px; padding-left: 30px;
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
<p class="list_title"> <p class="list_title">
<span>服务信息</span> <span>服务信息</span>
<span>规格</span> <span>规格</span>
<span>数量</span> <span>购买时长</span>
<span>小计</span>
<span>操作</span> <span>操作</span>
</p> </p>
<apply-service-state ref="apply_service_state" v-for="(item,index) in service_arr" :idx="index" :key="index+5000" :data="item"></apply-service-state> <apply-service-state ref="apply_service_state" v-for="(item,index) in service_arr" :idx="index" :key="index+5000" :data="item"></apply-service-state>
...@@ -67,13 +68,15 @@ export default { ...@@ -67,13 +68,15 @@ export default {
font-weight: bold; font-weight: bold;
} }
.list_title span:nth-of-type(1){ .list_title span:nth-of-type(1){
margin-right: 460px; margin-right: 414px;
} }
.list_title span:nth-of-type(2){ .list_title span:nth-of-type(2){
margin-right: 315px; margin-right: 246px;
} }
.list_title span:nth-of-type(3){ .list_title span:nth-of-type(3){
margin-right: 155px; margin-right: 96px;
}
.list_title span:nth-of-type(4){
margin-right: 124px;
} }
</style> </style>
This diff is collapsed.
This diff is collapsed.
...@@ -5,7 +5,17 @@ ...@@ -5,7 +5,17 @@
ref="inpNum" ref="inpNum"
v-model="inputText" v-model="inputText"
oninput="value=value.replace(/[^\d]/g, '')" oninput="value=value.replace(/[^\d]/g, '')"
:disabled="couldNotEdit || name == ''" :disabled="couldNotEdit || name == ''||itemEdit"
size="small"
@input="changeValue"
class="table_in_input"
></el-input>
</div>
<div v-else-if="typeHead == 'inputMoney'" class="text-xs-center">
<el-input
ref="inpNum"
v-model="inputText"
:disabled="couldNotEdit || name == ''||itemEdit"
size="small" size="small"
@input="changeValue" @input="changeValue"
class="table_in_input" class="table_in_input"
...@@ -18,7 +28,7 @@ ...@@ -18,7 +28,7 @@
<el-input <el-input
ref="inp" ref="inp"
v-model="inputText" v-model="inputText"
:disabled="couldNotEdit || name == ''" :disabled="couldNotEdit || name == ''||itemEdit"
size="small" size="small"
@input="changeValue" @input="changeValue"
class="table_in_input" class="table_in_input"
...@@ -80,6 +90,10 @@ export default { ...@@ -80,6 +90,10 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
itemEdit:{
type: Boolean,
default: false
},
type: { type: {
type: String, type: String,
default: "" default: ""
...@@ -98,6 +112,11 @@ export default { ...@@ -98,6 +112,11 @@ export default {
inputTextUp: "", inputTextUp: "",
helper: helper helper: helper
}), }),
watch:{
item(n,o){
this.inputText = n
}
},
mounted() { mounted() {
this.inputText = this.item; this.inputText = this.item;
}, },
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -8,6 +8,11 @@ import mavonEditor from 'mavon-editor' ...@@ -8,6 +8,11 @@ import mavonEditor from 'mavon-editor'
import 'mavon-editor/dist/css/index.css' import 'mavon-editor/dist/css/index.css'
Vue.use(mavonEditor) Vue.use(mavonEditor)
import { codemirror } from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
Vue.use(codemirror)
import VueResource from "vue-resource"; import VueResource from "vue-resource";
Vue.use(VueResource); Vue.use(VueResource);
......
This diff is collapsed.
This diff is collapsed.
...@@ -17,8 +17,7 @@ export default { ...@@ -17,8 +17,7 @@ export default {
'/intelligent_details', '/intelligent_details',
'/intelligent_appbuilder', '/intelligent_appbuilder',
'/intelligent_fwzc', '/intelligent_fwzc',
'/search_engine', '/search_engine'
'/technical_support'
] ]
}), }),
created(){ created(){
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment