Commit 3b6abece authored by 张俊's avatar 张俊

Merge branch 'dev' of https://cloud.wodcloud.com/git/apaas/apaas-v3-ui into dev

parents 49b2f150 5e701a5b
......@@ -661,8 +661,8 @@ border-radius:8px;
.apaas_button .el-button--danger {
color: #fff;
background-color: #e15260;
border-color: #e15260;
background-color: #ad3a4a;
border-color: #ad3a4a;
}
.apaas_button .el-button.is-disabled,
......@@ -1194,4 +1194,7 @@ border-radius:8px;
}
.el-checkbox__input:hover .el-checkbox__inner {
border-color: #515fe7;
}
.el-date-editor .el-range-input {
width: 36%;
}
\ No newline at end of file
......@@ -80,9 +80,12 @@
</div>
<div class="list-container" v-else>
<list-table
ref="listTable"
:header="listHeader"
:data="listData"
:padding-left="listPaddingLeft"
:select="listSelect"
@select="selectAction"
></list-table>
</div>
......@@ -146,6 +149,10 @@ export default {
type: String,
default: () => "请输入关键字",
},
listSelect: {
type: Boolean,
default: false,
},
},
data: () => ({
showListFilter: false,
......@@ -223,6 +230,15 @@ export default {
});
}, 200);
},
selectAction(selectedItems) {
this.$emit("list-select", selectedItems);
},
clearSelection() {
this.$refs.listTable.clearSelection();
},
setSelectedRow(row, flag) {
this.$refs.listTable.setSelectedRow(row, flag);
},
},
mounted() {
this.initOtherFilter();
......
<template>
<div class="apass_table">
<el-table
ref="apassTable"
:data="data"
@sort-change="sortChange"
@row-click="rowClick"
@selection-change="selectAction"
:row-class-name="rowClassName"
>
<el-table-column
v-if="paddingLeft > 10"
:width="paddingLeft - 10"
></el-table-column>
<el-table-column type="selection" width="80" align="center" v-if="select">
<!-- checkbox -->
</el-table-column>
<el-table-column
v-for="(item, index) in header"
:label="item.label"
......@@ -303,6 +308,10 @@ export default {
type: Function,
default: null,
},
select: {
type: Boolean,
default: false,
},
},
data() {
return {
......@@ -395,6 +404,15 @@ export default {
leaveMoreActionList() {
this.showMoreActionList = false;
},
selectAction(selectedItems) {
this.$emit("select", selectedItems);
},
clearSelection() {
this.$refs.apassTable.clearSelection();
},
setSelectedRow(row, flag) {
this.$refs.apassTable.toggleRowSelection(row, flag);
},
},
};
</script>
......
<template>
<el-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: "",
},
},
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") {
return true;
} else {
this.$message.error("仅支持rar和zip格式!");
return false;
}
},
uploadSuccess({ data }) {
this.$emit("change", data);
},
},
};
</script>
<style scoped>
.upload_tip {
font-size: 12px;
line-height: 20px;
color: #a9aec0;
}
</style>
<template>
<div class="order_cell">
<div class="order_cell_head">
<div class="application_time">申请时间:{{ helper.dateStringTransform(cellItem.add_time) }}</div>
<div class="application_time">
申请时间:{{ helper.dateStringTransform(cellItem.add_time) }}
</div>
<div class="order_number">订单编号:{{ cellItem.order_id }}</div>
<div
v-if="cellItem.approval_first_level == -1 || cellItem.approval_second_level != 0 || cellItem.pay_status == -1"
class="cell_del_btn"
v-if="
cellItem.approval_first_level == -1 ||
cellItem.approval_second_level != 0 ||
cellItem.pay_status == -1
"
class="cell_del_btn"
@click="delOrder(cellItem.order_id)"
>删除</div>
>
删除
</div>
</div>
<el-row class="cell_row">
<el-col :span="8" class="cell_msg">
<img v-if="cellItem.order_type != 3" :src="cellItem.cover" class="cell_msg_img" />
<img v-else :src="require('@/assets/imgs/img_yunziyuan.png')" class="cell_msg_img" />
<el-col :span="7" class="cell_msg">
<img
v-if="cellItem.order_type != 3"
:src="cellItem.cover"
class="cell_msg_img"
/>
<img
v-else
:src="require('@/assets/imgs/img_yunziyuan.png')"
class="cell_msg_img"
/>
<div class="cell_msg_right">
<div v-if="cellItem.order_type != 3" class="cell_name">
<span>{{ cellItem.name }}</span>
<span v-if="cellItem.mapService" class="tags map_service">mapService</span>
<span v-if="cellItem.mapService" class="tags map_service"
>mapService</span
>
<span v-if="cellItem.openness == 1" class="tags shared">共享</span>
<span v-else-if="cellItem.openness == 2" class="tags restricted">受限</span>
<span v-else-if="cellItem.openness == 3" class="tags sensitive">敏感</span>
<span v-else-if="cellItem.openness == 2" class="tags restricted"
>受限</span
>
<span v-else-if="cellItem.openness == 3" class="tags sensitive"
>敏感</span
>
</div>
<div v-else class="cell_name">
<span>云资源申请</span>
</div>
<div class="cell_msg_other">
<div
class="cell_type"
>{{ cellItem.order_type == 1 ? cellItem.sector : cellItem.order_type == 2 ? cellItem.app_type : cellItem.namespace }}</div>
<div
v-if="cellItem.order_type != 3"
class="cell_creator"
>{{ cellItem.src_organization }}</div>
<div
v-else
class="cell_creator"
>{{ cellItem.apply_type == 0 ? "申请新的工作区域" : "升级现有工作区域" }}</div>
<div class="cell_type">
{{
cellItem.order_type == 1
? cellItem.sector
: cellItem.order_type == 2
? cellItem.app_type
: cellItem.namespace
}}
</div>
<div v-if="cellItem.order_type != 3" class="cell_creator">
{{ cellItem.src_organization }}
</div>
<div v-else class="cell_creator">
{{
cellItem.apply_type == 0
? "申请新的工作区域"
: "升级现有工作区域"
}}
</div>
</div>
</div>
</el-col>
<el-col :span="5" class="cell_specification">
<div v-if="cellItem.order_type == 1">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
日访问次数:{{cellItem.spec_svc_count}}次,日访问量:{{cellItem.spec_svc_pv }}
</div>
<div>规格:日访问次数:{{ cellItem.spec_svc_count }}次,日访问量:{{ cellItem.spec_svc_pv }}</div>
</el-tooltip>
<div
class="cell_specification_type"
>申请方式:{{ cellItem.duration_unit == 1 ? $t('lang.by_month') : $t('lang.by_year') }}</div>
<div>计次收费:200金币/1000次.时长收费:2000金币/月</div>
</div>
<div v-else-if="cellItem.order_type == 2">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
{{ cellItem.spec_app == 0 ? '申请获取应用镜像部署权限' : '申请获取应用镜像开发权限' }}
<div>
{{
cellItem.spec_app == 0
? "申请获取应用镜像部署权限:2000金币/月"
: "申请获取应用镜像开发权限:2000金币/月"
}}
</div>
<div>规格:{{ cellItem.spec_app == 0 ? "申请获取应用镜像部署权限" : "申请获取应用镜像开发权限" }}</div>
</el-tooltip>
</div>
<div v-else-if="cellItem.order_type == 3">
<el-tooltip v-if="cellItem.apply_type == 0" class="item" effect="dark" placement="right">
<el-tooltip
v-if="cellItem.apply_type == 0"
class="item"
effect="dark"
placement="right"
>
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组
{{ cellItem.containers }}个;
<br />
数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;
数据盘 {{ cellItem.disk_num }}块,每块数据盘容量
{{ cellItem.disk_cap }}GB;
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span
v-if="cellItem.disk_num != 0"
>数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;</span>
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组
{{ cellItem.containers }}个;
<span v-if="cellItem.disk_num != 0"
>数据盘 {{ cellItem.disk_num }}块,每块数据盘容量
{{ cellItem.disk_cap }}GB;</span
>
</div>
</el-tooltip>
<el-tooltip v-else class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组
{{ cellItem.containers }}个;
<span
class="gg_span"
v-for="(item, index) in cellItem.adjust_disk"
:key="'sjj' + index"
>数据盘 {{item.disk_num}}块,每块数据盘容量 {{item.disk_cap}}GB;</span>
>数据盘 {{ item.disk_num }}块,每块数据盘容量
{{ item.disk_cap }}GB;</span
>
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组
{{ cellItem.containers }}个;
<span>{{ thisDisks }}</span>
</div>
</el-tooltip>
<div
class="cell_specification_type"
>单个容器组:CPU最高 {{ cellItem.one_cpu_max }}核,默认 {{ cellItem.one_cpu_min }}核;内存最高 {{ cellItem.one_memory_max }}GB,默认 {{ cellItem.one_memory_min }}GB;</div>
<div class="cell_specification_type">
单个容器组:CPU最高 {{ cellItem.one_cpu_max }}核,默认
{{ cellItem.one_cpu_min }}核;内存最高
{{ cellItem.one_memory_max }}GB,默认
{{ cellItem.one_memory_min }}GB;
</div>
</div>
</el-col>
<el-col :span="3" class="cell_specification">
<div v-if="cellItem.order_type == 1">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
日访问次数:{{cellItem.spec_svc_count}}次,日访问量:{{cellItem.spec_svc_pv }}
</div>
<div>规格:日访问次数:{{ cellItem.spec_svc_count }}次,日访问量:{{ cellItem.spec_svc_pv }}</div>
</el-tooltip>
<div
class="cell_specification_type"
>申请方式:{{ cellItem.duration_unit == 1 ? $t('lang.by_month') : $t('lang.by_year') }}</div>
</div>
<div v-else-if="cellItem.order_type == 2">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
{{ cellItem.spec_app == 0 ? '申请获取应用镜像部署权限' : '申请获取应用镜像开发权限' }}
</div>
<div>规格:{{ cellItem.spec_app == 0 ? "申请获取应用镜像部署权限" : "申请获取应用镜像开发权限" }}</div>
</el-tooltip>
</div>
<div v-else-if="cellItem.order_type == 3">
<el-tooltip v-if="cellItem.apply_type == 0" class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<br />
数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span
v-if="cellItem.disk_num != 0"
>数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;</span>
</div>
</el-tooltip>
<el-tooltip v-else class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span
class="gg_span"
v-for="(item, index) in cellItem.adjust_disk"
:key="'sjj' + index"
>数据盘 {{item.disk_num}}块,每块数据盘容量 {{item.disk_cap}}GB;</span>
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span>{{ thisDisks }}</span>
</div>
</el-tooltip>
<div
class="cell_specification_type"
>单个容器组:CPU最高 {{ cellItem.one_cpu_max }}核,默认 {{ cellItem.one_cpu_min }}核;内存最高 {{ cellItem.one_memory_max }}GB,默认 {{ cellItem.one_memory_min }}GB;</div>
<div>
不限时长
</div>
</el-col>
<el-col :span="3" class="cell_specification">
<div v-if="cellItem.order_type == 1">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
日访问次数:{{cellItem.spec_svc_count}}次,日访问量:{{cellItem.spec_svc_pv }}
</div>
<div>规格:日访问次数:{{ cellItem.spec_svc_count }}次,日访问量:{{ cellItem.spec_svc_pv }}</div>
</el-tooltip>
<div
class="cell_specification_type"
>申请方式:{{ cellItem.duration_unit == 1 ? $t('lang.by_month') : $t('lang.by_year') }}</div>
</div>
<div v-else-if="cellItem.order_type == 2">
<el-tooltip class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
{{ cellItem.spec_app == 0 ? '申请获取应用镜像部署权限' : '申请获取应用镜像开发权限' }}
</div>
<div>规格:{{ cellItem.spec_app == 0 ? "申请获取应用镜像部署权限" : "申请获取应用镜像开发权限" }}</div>
</el-tooltip>
</div>
<div v-else-if="cellItem.order_type == 3">
<el-tooltip v-if="cellItem.apply_type == 0" class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<br />
数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span
v-if="cellItem.disk_num != 0"
>数据盘 {{ cellItem.disk_num }}块,每块数据盘容量 {{ cellItem.disk_cap }}GB;</span>
</div>
</el-tooltip>
<el-tooltip v-else class="item" effect="dark" placement="right">
<div slot="content" class="gg">
规格:
<br />
CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span
class="gg_span"
v-for="(item, index) in cellItem.adjust_disk"
:key="'sjj' + index"
>数据盘 {{item.disk_num}}块,每块数据盘容量 {{item.disk_cap}}GB;</span>
</div>
<div class="specification_item">
规格:CPU {{ cellItem.cpu }}核,内存 {{ cellItem.memory }}GB,容器组 {{ cellItem.containers }}个;
<span>{{ thisDisks }}</span>
</div>
</el-tooltip>
<div
class="cell_specification_type"
>单个容器组:CPU最高 {{ cellItem.one_cpu_max }}核,默认 {{ cellItem.one_cpu_min }}核;内存最高 {{ cellItem.one_memory_max }}GB,默认 {{ cellItem.one_memory_min }}GB;</div>
<div>
200金币
</div>
</el-col>
<el-col :span="2" class="approval_status">
<el-col :span="3" class="approval_status">
<div>
<div v-if="cellItem.approval_first_level == 0 && cellItem.pay_status != -1">待审核</div>
<div
v-else-if="cellItem.approval_first_level == 1 && cellItem.approval_second_level == 0 && cellItem.pay_status != -1"
>审核中</div>
v-if="
cellItem.approval_first_level == 0 && cellItem.pay_status != -1
"
>
待审核
</div>
<div
v-else-if="
cellItem.approval_first_level == 1 &&
cellItem.approval_second_level == 0 &&
cellItem.pay_status != -1
"
>
审核中
</div>
<div
v-else-if="cellItem.approval_first_level == 1 && cellItem.approval_second_level == 1 && cellItem.pay_status != -1"
>审核通过</div>
v-else-if="
cellItem.approval_first_level == 1 &&
cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1
"
>
审核通过
</div>
<div
v-else-if="(cellItem.approval_first_level == -1 || cellItem.approval_second_level == -1) && cellItem.pay_status != -1"
>审核未通过</div>
v-else-if="
(cellItem.approval_first_level == -1 ||
cellItem.approval_second_level == -1) &&
cellItem.pay_status != -1
"
>
审核未通过
</div>
<div v-else-if="cellItem.pay_status == -1">订单已取消</div>
<el-popover
v-if="cellItem.approval_second_level == 1 && cellItem.pay_status != -1 && cellItem.is_estimated == 0"
placement="right-start"
v-if="
cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1 &&
cellItem.is_estimated == 0
"
placement="left-start"
width="300"
v-model="visible"
trigger="click"
>
<p>服务评价:</p>
<div class="pop_rate">
<el-rate v-model="serviceRate" :colors="colors" show-score score-template="{value}"></el-rate>
<el-rate
v-model="serviceRate"
:colors="colors"
show-score
score-template="{value}"
></el-rate>
</div>
<p>填写评价:</p>
<div class="evaluation_text">
......@@ -258,21 +210,49 @@
></el-input>
</div>
<div class="pop_btn_group">
<el-button size="small" class="pop_cancel" type="text" @click="visible = false">取消</el-button>
<el-button type="primary" class="pop_submit" size="small" @click="addEvaluation">确定提交</el-button>
<el-button
size="small"
class="pop_cancel"
type="text"
@click="visible = false"
>取消</el-button
>
<el-button
type="primary"
class="pop_submit"
size="small"
@click="addEvaluation"
>确定提交</el-button
>
</div>
<div class="approval_status_btn" slot="reference">服务评价</div>
</el-popover>
<div
v-else-if="cellItem.order_type != 3 && cellItem.approval_second_level == 1 && cellItem.pay_status != -1 && cellItem.is_estimated == 1 && !showMsgBox"
v-else-if="
cellItem.order_type != 3 &&
cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1 &&
cellItem.is_estimated == 1 &&
!showMsgBox
"
class="approval_status_btn"
@click="getMessage"
>查看评价</div>
>
查看评价
</div>
<div
v-else-if="cellItem.order_type != 3 && cellItem.approval_second_level == 1 && cellItem.pay_status != -1 && cellItem.is_estimated == 1 && showMsgBox"
v-else-if="
cellItem.order_type != 3 &&
cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1 &&
cellItem.is_estimated == 1 &&
showMsgBox
"
class="approval_status_btn"
@click="showMsgBox = false"
>收起评价</div>
>
收起评价
</div>
</div>
</el-col>
<el-col :span="3" class="cell_option">
......@@ -281,24 +261,43 @@
size="madium"
class="cell_option_btn"
@click="viewDetail(cellItem.order_id)"
>查看详情</el-button>
>查看详情</el-button
>
<div
v-if="cellItem.approval_second_level == 1 && cellItem.pay_status != -1 || cellItem.pay_status == -1"
v-if="
(cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1) ||
cellItem.pay_status == -1
"
class="cell_option_spec"
@click="nextApply"
>再次申请</div>
>
再次申请
</div>
<div
v-if="(cellItem.approval_first_level == 0 && cellItem.pay_status != -1) || (cellItem.approval_first_level == 1 && cellItem.approval_second_level == 0 && cellItem.pay_status != -1)"
v-if="
(cellItem.approval_first_level == 0 &&
cellItem.pay_status != -1) ||
(cellItem.approval_first_level == 1 &&
cellItem.approval_second_level == 0 &&
cellItem.pay_status != -1)
"
class="cell_option_spec"
@click="cancelDetail"
>取消申请</div>
>
取消申请
</div>
</div>
</el-col>
<el-collapse-transition>
<el-col v-if="showMsgBox" :span="24" class="evaluation_msg">
<div class="msg_title">服务评分:</div>
<div class="msg_rate">
<el-rate v-model="message.score" disabled :colors="colors"></el-rate>
<el-rate
v-model="message.score"
disabled
:colors="colors"
></el-rate>
</div>
<div class="msg_title">评价详情:</div>
<div class="msg_text">{{ message.content }}</div>
......
......@@ -2,11 +2,11 @@
<div class="order_list">
<div class="order_th_pad">
<el-row class="order_th">
<el-col :span="8">服务信息</el-col>
<el-col :span="7">服务信息</el-col>
<el-col :span="5">规格</el-col>
<el-col :span="3">购买时长</el-col>
<el-col :span="3">总价</el-col>
<el-col :span="2">申请状态</el-col>
<el-col :span="3">申请状态</el-col>
<el-col :span="3">操作</el-col>
</el-row>
</div>
......
......@@ -66,7 +66,7 @@
<el-col :span="6">
<el-form-item prop="cpu" class="form_item input_has_right">
<div class="form_item_title">CPU:</div>
<el-select v-model="formNew.cpu" placeholder="请选择CPU使用量">
<el-select v-model="formNew.cpu" @change="changeCPU" placeholder="请选择CPU使用量">
<el-option
v-for="item in optionsCPU"
:key="item.value"
......@@ -1101,7 +1101,6 @@ export default {
},
tabClick() {},
getNewList(val) {
console.log(val);
this.formNew.apply_file_name = val[0].name;
this.formNew.apply_file = val[0].url;
},
......@@ -1111,7 +1110,6 @@ export default {
},
handleChange() {},
getForm(val) {
console.log(val);
if (val !== "") {
let paramsOld = this.workSpaceOptions[val];
this.workSpaceId = paramsOld.Id;
......@@ -1328,6 +1326,22 @@ export default {
}
}
},
changeCPU(val) {
console.log(val);
this.formOld.memory = "";
this.formNew.memory = "";
if (val == "8") {
this.optionsRAM = [
{ value: "16", label: "16" },
{ value: "32", label: "32" },
]
} else if (val == "16") {
this.optionsRAM = [
{ value: "32", label: "32" },
{ value: "64", label: "64" },
]
}
}
},
};
</script>
......
<template>
<div class="doc_manage_container">
<div class="list_container">
<apass-list
ref="list"
search-placeholder="请输入关键字"
......@@ -8,7 +8,9 @@
:list-total="listTotal"
:list-header="listHeader"
:list-data="listData"
:list-select="true"
@list-action="init"
@list-select="selectAction"
>
<el-breadcrumb separator="/" slot="breadcrumb">
<el-breadcrumb-item to="/technical_support">
......@@ -32,8 +34,8 @@
<el-option
v-for="(item, index) in types"
:key="'top_type_' + index"
:label="item.label"
:value="item.value"
:label="item.style_name"
:value="item.id"
>
</el-option>
</el-select>
......@@ -63,20 +65,71 @@
</template>
<div class="main_top_action apaas_button" slot="main-top">
<el-button class="delete_btn" type="danger" @click="deleteSlectedItem">
<el-button class="delete_btn" type="danger" @click="deleteSlection">
批量删除
</el-button>
<span class="selected_text">
已选择
<span>3</span>
<span>{{ selection.length }}</span>
</span>
<a class="clean_btn" @click.prevent="cleanSlectedItem">清空</a>
<a class="clean_btn" @click.prevent="clearSelection">清空</a>
<el-button class="add_btn" type="primary" @click="addNewSdk">
新增SDK类型
</el-button>
</div>
</apass-list>
<apass-dialog
ref="detailDialog"
:title="detailForm.type === 0 ? '新增' : '修改'"
>
<div class="add_content" slot="content">
<el-form ref="addForm" :model="detailForm" :rules="detailFormRules">
<el-form-item
label="SDK类型"
prop="style_name"
class="inline_form_item"
>
<el-input
v-model="detailForm.style_name"
placeholder="请填写SDK类型名称,如Java SDK"
></el-input>
</el-form-item>
<el-form-item label="版本号" prop="version" class="inline_form_item">
<el-input
v-model="detailForm.version"
placeholder="版本号"
></el-input>
</el-form-item>
<el-form-item label="SDK包上传" prop="file_url">
<!-- <el-input
v-model="detailForm.file_url"
placeholder="支持扩展名:.rar .zip"
></el-input> -->
<apass-upload
v-model="detailForm.file_url"
tip="支持扩展名:.rar .zip"
></apass-upload>
</el-form-item>
</el-form>
</div>
<template slot="action">
<el-button type="defalut" size="mini" @click="detailCancelAction">
取消
</el-button>
<el-button type="primary" size="mini" @click="detailSubmitAction">
确定
</el-button>
</template>
</apass-dialog>
<apass-dialog
ref="deleteDialog"
:msg="deleteDialogInfo.msg"
:submit="deleteDialogInfo.submit"
></apass-dialog>
</div>
</template>
......@@ -84,19 +137,66 @@
import helper from "@/services/helper.js";
import apassList from "@/components/apass-list";
import apassDialog from "@/components/apass-dialog";
import apassUpload from "@/components/apass-upload";
import showMoreFilter from "@/components/show-more-filter";
export default {
components: {
apassList,
apassDialog,
apassUpload,
showMoreFilter,
},
data() {
return {
paddingLeft: 25,
paddingLeft: 0,
listTotal: 0,
listHeader: [{}],
listHeader: [
{
label: "SDK类型",
prop: "style_name",
type: "button",
width: 240,
},
{
label: "版本号",
prop: "version",
align: "center",
},
{
label: "是否提供SDK包下载",
prop: "is_sdk",
align: "center",
},
{
label: "操作人",
prop: "user_name",
align: "center",
},
{
label: "最后更新时间",
prop: "updated",
getText: ({ updated }) => this.getTimeText(updated || ""),
align: "center",
},
{
label: "操作",
type: "buttons",
align: "center",
width: 240,
actionList: [
{
label: "修改",
callback: this.editItem,
},
{
label: "删除",
callback: this.deleteItem,
class: "warn",
},
],
},
],
listData: [],
topFilter: {
type: "",
......@@ -104,6 +204,24 @@ export default {
},
types: [],
tempFilter: {},
detailForm: {
type: 0, // 0:新增 1:修改
style_name: "",
version: "",
file_url: "",
},
detailFormRules: {
style_name: [
{ required: true, message: "请填写SDK类型名称", trigger: "blur" },
{ max: 20, message: "长度应小于20个字符", trigger: "change" },
],
},
deleteDialogInfo: {
msg: "",
submit: null,
},
saveSection: false,
selection: [],
};
},
methods: {
......@@ -114,12 +232,44 @@ export default {
};
this.tempFilter = filter;
this.saveSection = true;
this.$http
.get("/apaas/support/sdk/styles/list", {
params: {
style: fullFilter.type,
start: fullFilter.time && fullFilter.time[0],
end: fullFilter.time && fullFilter.time[1],
limit: fullFilter.size,
page: fullFilter.page,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.listTotal = data.total;
this.listData = data.data || [];
this.$nextTick(() => {
this.selection.forEach((item) => {
let target = this.listData.find((v) => v.id === item.id);
if (target) {
this.setCurrentRow(target, true);
}
});
this.saveSection = false;
});
}
});
console.log(fullFilter);
this.$http.get("/apaas/support/sdk/styleNames/list").then(({ data }) => {
if (data.success === 1) {
this.types = data.data || [];
}
});
},
topFilterClear() {
this.topFilter = {
name: "",
type: "",
time: "",
};
......@@ -131,38 +281,191 @@ export default {
refreshPage() {
this.$refs.list.resetCurrentPage();
},
deleteSlectedItem() {
console.log("deleteSlectedItem");
deleteSlection() {
this.deleteDialogInfo.msg = `确认删除要删除所选项吗?`;
this.deleteDialogInfo.submit = () => {
this.deleteRequest(this.selection.map((row) => row.id));
};
this.$refs.deleteDialog.show();
},
clearSelection() {
this.$refs.list.clearSelection();
},
cleanSlectedItem() {
console.log("cleanSlectedItem");
setCurrentRow(row, flag) {
this.$refs.list.setSelectedRow(row, flag);
},
addNewSdk() {
console.log("addNewSdk");
this.detailForm = {
type: 0,
style_name: "",
version: "",
file_url: "",
};
this.$refs.detailDialog.show();
},
detailCancelAction() {
this.$refs.detailDialog.hide();
},
detailSubmitAction() {
if (this.detailForm.type === 0) {
this.$http
.post("/apaas/support/sdk/styles/create", {
style_name: this.detailForm.style_name,
version: this.detailForm.version,
file_url: this.detailForm.file_url,
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("新增成功");
this.refreshPage();
this.$refs.detailDialog.hide();
} else {
this.$message.error("新增失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("新增失败");
});
} else {
this.$http
.put("/apaas/support/sdk/styles/put", {
id: this.detailForm.id,
style_name: this.detailForm.style_name,
version: this.detailForm.version,
file_url: this.detailForm.file_url,
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("修改成功");
this.refreshPage();
this.$refs.detailDialog.hide();
} else {
this.$message.error("修改失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("修改失败");
});
}
},
editItem(item) {
this.detailForm = {
type: 1,
id: item.id,
style_name: item.style_name,
version: item.version,
file_url: item.file_url,
};
/* this.$http
.get("/apaas/support/sdk/styles/detail", {
params: {
id: item.id,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.detailForm = data.data;
}
}); */
this.$refs.detailDialog.show();
},
deleteItem(item) {
this.deleteDialogInfo.msg = `确认删除${item.style_name}吗?`;
this.deleteDialogInfo.submit = () => {
this.deleteRequest([item.id]);
};
this.$refs.deleteDialog.show();
},
deleteRequest(ids) {
this.$http
.delete("/apaas/support/sdk/styles/delete", {
body: {
ids: ids,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("删除成功");
this.selection = [];
this.refreshPage();
} else {
this.$message.error("删除失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("删除失败");
});
},
getTimeText(time) {
return helper.dateStringTransform(time);
},
selectAction(values) {
if (this.saveSection) {
return;
}
let cleanPage = values.length === 0; // 是否清空当前页所有选中
let selection = [...this.selection];
if (cleanPage) {
selection = selection.filter((item) => {
return !this.listData.find((v) => {
return v.id === item.id;
});
});
} else {
selection.push(...values);
}
this.selection = selection;
},
},
};
</script>
<style>
.list_container {
height: 100%;
}
.main_top_action {
display: flex;
justify-content: flex-start;
align-items: center;
}
.main_top_action .delete_btn {
}
.main_top_action .selected_text {
font-size: 14px;
color: #8890a7;
margin-left: 30px;
}
.main_top_action .selected_text > span {
font-weight: bold;
color: #242c43;
margin: 0 3px;
}
.main_top_action .clean_btn {
font-size: 14px;
line-height: 24px;
color: #2b4695;
text-decoration: underline;
cursor: pointer;
user-select: none;
margin-left: 30px;
}
.main_top_action .add_btn {
margin-left: auto;
}
.el-form {
font-size: 0;
}
.inline_form_item {
display: inline-block;
vertical-align: middle;
width: calc(50% - 10px);
}
.inline_form_item + .inline_form_item {
margin-left: 20px;
}
</style>
......@@ -24,8 +24,8 @@
<div class="card_word">
<p class="card_name">账户余额</p>
<p>
{{ helper.numberFormat(user_info.answer_num)
}}<span v-if="user_info.answer_num > 10000" class="card_wan">
{{ helper.numberFormat(user_info.account_balance)
}}<span v-if="user_info.account_balance > 10000" class="card_wan">
</span>
</p>
......@@ -36,8 +36,8 @@
<div class="card_word">
<p class="card_name">充值笔数</p>
<p>
{{ helper.numberFormat(user_info.view_num)
}}<span v-if="user_info.view_num > 10000" class="card_wan">
{{ helper.numberFormat(user_info.recharge_count)
}}<span v-if="user_info.recharge_count > 10000" class="card_wan">
</span>
</p>
......@@ -67,6 +67,7 @@
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:clearable="false"
@change="getCoinList"
></el-date-picker>
</div>
<apass-table
......@@ -103,12 +104,11 @@ export default {
user_info: {
user_name: "",
role: "",
question_num: 0,
answer_num: 0,
view_num: 0,
account_balance: 0,
recharge_count: 0,
picture_path: "",
},
tableData: [{}, {}],
tableData: [],
table_header: [],
total_list: 0,
currentPage: 1,
......@@ -125,8 +125,8 @@ export default {
this.pagination.page += val;
this.refreshData();
},
getUserCoin() {
this.$api.user.getUserQA().then((response) => {
getUserCoins() {
this.$api.user.getUserCoins().then((response) => {
if (response.data.success == 1) {
this.user_info = response.data.data;
}
......@@ -140,39 +140,47 @@ export default {
let query = {
start: this.date.length != 0 ? this.date[0] : "",
end: this.date.length != 0 ? this.date[1] : "",
limit: this.currentlimit,
page: this.currentPage,
};
console.log(query)
this.$api.user.getUserQA().then((response) => {
this.$api.user.getCoinList(query).then((response) => {
if (response.data.success == 1) {
this.user_info = response.data.data;
if (response.data.data && response.data.data.length != 0) {
this.tableData = response.data.data
} else {
this.tableData = [];
this.currentPage = 1;
}
this.total_list = response.data.total;
}
});
},
},
mounted() {
this.getUserCoin();
this.getUserCoins();
this.getCoinList();
this.table_header = [
{
prop: "title",
prop: "serial_number",
label: "充值流水ID",
align: "center",
type: "html",
getHtml: (str) => {
return `<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="${str.title}">123123</span>`;
return `<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="${str.serial_number}">${str.serial_number}</span>`;
},
},
{
prop: "content",
prop: "amount",
label: "充值金额(金币/个)",
align: "center",
type: "html",
getHtml: (str) => {
return `<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">123123123</span>`;
return `<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">${str.amount}</span>`;
},
},
{
prop: "answer_num",
prop: "balance",
label: "账户余额(金币/个)",
align: "center",
},
......
......@@ -2,7 +2,9 @@
<div>
<el-breadcrumb separator="/" class="bread_crumb1">
<el-breadcrumb-item :to="{ path: '/user' }">个人中心</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/user/order_list' }">订单管理</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/user/order_list' }">
订单管理
</el-breadcrumb-item>
<el-breadcrumb-item>订单详情</el-breadcrumb-item>
</el-breadcrumb>
<block-radius class="detail">
......@@ -12,24 +14,49 @@
<p class="detail_head_cell_title">申请状态</p>
<p
class="detail_head_cell_val text_yellow"
v-if="orderDetail.approval_first_level == 0 && orderDetail.pay_status != -1"
>待审核</p>
v-if="
orderDetail.approval_first_level == 0 &&
orderDetail.pay_status != -1
"
>
待审核
</p>
<p
class="detail_head_cell_val text_yellow"
v-else-if="orderDetail.approval_first_level == 1&& orderDetail.approval_second_level == 0 && orderDetail.pay_status != -1"
>审核中</p>
v-else-if="
orderDetail.approval_first_level == 1 &&
orderDetail.approval_second_level == 0 &&
orderDetail.pay_status != -1
"
>
审核中
</p>
<p
class="detail_head_cell_val text_blue"
v-else-if="orderDetail.approval_first_level == 1 && orderDetail.approval_second_level == 1 && orderDetail.pay_status != -1"
>审核通过</p>
v-else-if="
orderDetail.approval_first_level == 1 &&
orderDetail.approval_second_level == 1 &&
orderDetail.pay_status != -1
"
>
审核通过
</p>
<p
class="detail_head_cell_val text_red"
v-else-if="(orderDetail.approval_first_level == -1 || orderDetail.approval_second_level == -1) && orderDetail.pay_status != -1"
>审核未通过</p>
v-else-if="
(orderDetail.approval_first_level == -1 ||
orderDetail.approval_second_level == -1) &&
orderDetail.pay_status != -1
"
>
审核未通过
</p>
<p
class="detail_head_cell_val text_blackblue"
v-else-if="orderDetail.pay_status == -1"
>已取消</p>
>
已取消
</p>
</div>
<div class="detail_head_cell detail_head_no border_right">
<p class="detail_head_cell_title">订单编号</p>
......@@ -37,20 +64,26 @@
</div>
<div class="detail_head_cell detail_head_time">
<p class="detail_head_cell_title">申请时间</p>
<p class="detail_head_cell_val">{{ helper.dateStringTransform(orderDetail.add_time) }}</p>
<p class="detail_head_cell_val">
{{ helper.dateStringTransform(orderDetail.add_time) }}
</p>
</div>
<div
v-if="orderDetail.pay_status == -1"
class="detail_head_cell detail_head_time border_left"
>
<p class="detail_head_cell_title">取消时间</p>
<p
class="detail_head_cell_val"
>{{ helper.dateStringTransform(orderDetail.cancel_time) }}</p>
<p class="detail_head_cell_val">
{{ helper.dateStringTransform(orderDetail.cancel_time) }}
</p>
</div>
<div class="btn_group">
<el-popover
v-if="orderDetail.is_estimated == 0 && orderDetail.approval_second_level == 1 && orderDetail.pay_status != -1"
v-if="
orderDetail.is_estimated == 0 &&
orderDetail.approval_second_level == 1 &&
orderDetail.pay_status != -1
"
placement="right-start"
width="300"
v-model="visible"
......@@ -58,7 +91,12 @@
>
<p>服务评价:</p>
<div class="pop_rate">
<el-rate v-model="serviceRate" :colors="colors" show-score score-template="{value}"></el-rate>
<el-rate
v-model="serviceRate"
:colors="colors"
show-score
score-template="{value}"
></el-rate>
</div>
<p>填写评价:</p>
<div class="evaluation_text">
......@@ -72,69 +110,131 @@
></el-input>
</div>
<div class="pop_btn_group">
<el-button size="small" class="pop_cancel" type="text" @click="visible = false">取消</el-button>
<el-button
size="small"
class="pop_cancel"
type="text"
@click="visible = false"
>
取消
</el-button>
<el-button
type="primary"
class="pop_submit"
size="small"
@click="addEvaluation"
>确定提交</el-button>
>
确定提交
</el-button>
</div>
<el-button class="evaluation" slot="reference">服务评价</el-button>
<el-button class="evaluation" slot="reference">
服务评价
</el-button>
</el-popover>
<el-button
v-else-if="orderDetail.order_type != 3 && orderDetail.approval_second_level == 1 && orderDetail.pay_status != -1 && orderDetail.is_estimated == 1 && !showMsgBox"
v-else-if="
orderDetail.order_type != 3 &&
orderDetail.approval_second_level == 1 &&
orderDetail.pay_status != -1 &&
orderDetail.is_estimated == 1 &&
!showMsgBox
"
class="approval_status_btn"
@click="getMessage"
>查看评价</el-button>
>查看评价</el-button
>
<el-button
v-else-if="orderDetail.order_type != 3 && orderDetail.approval_second_level == 1 && orderDetail.pay_status != -1 && orderDetail.is_estimated == 1 && showMsgBox"
v-else-if="
orderDetail.order_type != 3 &&
orderDetail.approval_second_level == 1 &&
orderDetail.pay_status != -1 &&
orderDetail.is_estimated == 1 &&
showMsgBox
"
class="approval_status_btn"
@click="showMsgBox = false"
>收起评价</el-button>
>收起评价</el-button
>
<el-button
v-if="orderDetail.approval_second_level == 1 && orderDetail.pay_status != -1 || orderDetail.pay_status == -1"
v-if="
(orderDetail.approval_second_level == 1 &&
orderDetail.pay_status != -1) ||
orderDetail.pay_status == -1
"
class="again"
@click="nextApply"
>再次申请</el-button>
>再次申请</el-button
>
<el-button
v-if="(orderDetail.approval_first_level == 0 && orderDetail.pay_status != -1) || (orderDetail.approval_first_level == 1 && orderDetail.approval_second_level == 0 && orderDetail.pay_status != -1)"
v-if="
(orderDetail.approval_first_level == 0 &&
orderDetail.pay_status != -1) ||
(orderDetail.approval_first_level == 1 &&
orderDetail.approval_second_level == 0 &&
orderDetail.pay_status != -1)
"
class="again"
@click="cancelDetail"
>取消申请</el-button>
>取消申请</el-button
>
</div>
</div>
<el-collapse-transition>
<div v-if="showMsgBox" class="evaluation_msg">
<div class="msg_title">服务评分:</div>
<div class="msg_rate">
<el-rate v-model="message.score" disabled :colors="colors"></el-rate>
<el-rate
v-model="message.score"
disabled
:colors="colors"
></el-rate>
</div>
<div class="msg_title">评价详情:</div>
<div class="msg_text">{{ message.content }}</div>
</div>
</el-collapse-transition>
</div>
<div class="detail_title">{{ orderDetail.order_type == 1 ? "服务" : "应用"}}信息</div>
<div class="detail_title">
{{ orderDetail.order_type == 1 ? "服务" : "应用" }}信息
</div>
<div class="detail_service">
<el-row class="detail_service_row">
<el-col :span="10" v-if="orderDetail.order_type == 1" class="detail_service_msg">
<el-col
:span="8"
v-if="orderDetail.order_type == 1"
class="detail_service_msg"
>
<img :src="orderDetail.cover" class="detail_service_msg_img" />
<div class="detail_service_msg_right">
<div class="detail_service_name">
<span>{{ orderDetail.name }}</span>
<span v-if="orderDetail.mapService" class="tags map_service">mapService</span>
<span v-if="orderDetail.openness == 1" class="tags shared">共享</span>
<span v-else-if="orderDetail.openness == 2" class="tags restricted">受限</span>
<span v-if="orderDetail.mapService" class="tags map_service">
mapService
</span>
<span v-if="orderDetail.openness == 1" class="tags shared">
共享
</span>
<span
v-else-if="orderDetail.openness == 2"
class="tags restricted"
>
受限
</span>
<span v-else class="tags sensitive">敏感</span>
</div>
<div class="detail_service_msg_other">
<div class="detail_service_type">{{ orderDetail.sector }}</div>
<div class="detail_service_creator">{{ orderDetail.src_organization }}</div>
<div class="detail_service_creator">
{{ orderDetail.src_organization }}
</div>
</div>
</div>
</el-col>
<el-col :span="10" v-else-if="orderDetail.order_type == 2" class="detail_service_msg">
<el-col
:span="8"
v-else-if="orderDetail.order_type == 2"
class="detail_service_msg"
>
<img :src="orderDetail.cover" class="detail_service_msg_img" />
<div class="detail_service_msg_right">
<div class="detail_service_name">
......@@ -142,60 +242,93 @@
</div>
<div class="detail_service_msg_other">
<div class="detail_service_type">{{ orderDetail.sector }}</div>
<div class="detail_service_creator">{{ orderDetail.src_organization }}</div>
<div class="detail_service_creator">
{{ orderDetail.src_organization }}
</div>
</div>
</div>
</el-col>
<el-col :span="10" v-else-if="orderDetail.order_type == 3" class="detail_service_msg">
<img :src="require('@/assets/imgs/img_yunziyuan.png')" class="detail_service_msg_img" />
<el-col
:span="8"
v-else-if="orderDetail.order_type == 3"
class="detail_service_msg"
>
<img
:src="require('@/assets/imgs/img_yunziyuan.png')"
class="detail_service_msg_img"
/>
<div class="detail_service_msg_right">
<div class="detail_service_name_cloud">
<span>{{ orderDetail.namespace }}{{ orderDetail.workplace }}</span>
<span>
{{ orderDetail.namespace }}{{ orderDetail.workplace }}
</span>
</div>
</div>
</el-col>
<el-col :span="8" class="detail_service_specification">
<el-col :span="6" class="detail_service_specification">
<div v-if="orderDetail.order_type == 1">
<div>
<span class="detail_service_specification_gg">规格:</span>
<span
class="detail_service_specification_val"
>访问次数:{{ orderDetail.spec_svc_count }}/日,访问量:{{ orderDetail.spec_svc_pv }}/日</span>
</div>
<div>
<span class="detail_service_specification_type">申请方式:</span>
<span
class="detail_service_specification_val"
>{{orderDetail.duration_unit == 1 ? "按月" : "按年"}}</span>
<span class="detail_service_specification_gg">
{{ orderDetail.spec_app == 0 ? "计次收费:" : "时长收费:" }}
</span>
<span class="detail_service_specification_val"
>2000金币/月</span
>
</div>
</div>
<div v-else-if="orderDetail.order_type == 2">
<div>
<span class="detail_service_specification_gg">规格:</span>
<span
class="detail_service_specification_val"
>{{ orderDetail.spec_app == 0 ? "申请获取应用镜像部署权限" : "申请获取应用镜像开发权限" }}</span>
<span class="detail_service_specification_gg">{{
orderDetail.spec_app == 0
? "申请获取应用镜像部署权限:"
: "申请获取应用镜像开发权限:"
}}</span>
<span class="detail_service_specification_val"
>2000金币/月</span
>
</div>
</div>
<div v-else-if="orderDetail.order_type == 3">
<div>
<span class="detail_service_specification_gg">类型:</span>
<span
class="detail_service_specification_val"
>{{ orderDetail.apply_type == 0 ? "申请新的工作区域" : "升级现有工作区域" }}</span>
<span class="detail_service_specification_val">{{
orderDetail.apply_type == 0
? "申请新的工作区域"
: "升级现有工作区域"
}}</span>
</div>
</div>
</el-col>
<el-col :span="6" class="detail_service_time">
<el-col :span="5" class="detail_service_time">
<div>
<span class="detail_service_time_title">申请时长:</span>
<span
class="detail_service_specification_val"
>{{ orderDetail.duration + (orderDetail.duration_unit == 1 ? "个月" : "") }}</span>
<span class="detail_service_specification_val">{{
orderDetail.duration == 0
? "不限"
: orderDetail.duration +
(orderDetail.duration_unit == 1 ? "个月" : "")
}}</span>
</div>
</el-col>
<el-col :span="5" class="detail_service_money">
<div>
<span class="detail_service_money_title">总价:</span>
<span class="detail_service_specification_val"
>12793017230金币</span
>
<span v-if="1" class="adhekadwn">(升级费用:3000金币,原规格抵扣:1000金币)</span>
</div>
</el-col>
</el-row>
</div>
<div v-if="orderDetail.order_type == 2">
<div class="detail_s_title">业务领域:</div>
<div class="detail_app_scence">{{ orderDetail.app_desc }}</div>
</div>
<div v-if="orderDetail.order_type == 2">
<div class="detail_s_title">上线时间:</div>
<div class="detail_app_scence">{{ orderDetail.app_func }}</div>
</div>
<div v-if="orderDetail.order_type == 2">
<div class="detail_s_title">应用简介:</div>
<div class="detail_app_scence">{{ orderDetail.app_desc }}</div>
......@@ -220,23 +353,33 @@
</div>
<div class="params_block_item_in">
<span class="params_block_item_title">内存:</span>
<span class="params_block_item_val">{{ orderDetail.memory }}GB</span>
<span class="params_block_item_val"
>{{ orderDetail.memory }}GB</span
>
</div>
<div class="params_block_item_in">
<span class="params_block_item_title">容器组:</span>
<span class="params_block_item_val">{{ orderDetail.memory }}</span>
<span class="params_block_item_val"
>{{ orderDetail.memory }}</span
>
</div>
<div
v-if="orderDetail.apply_type == 0 && orderDetail.disk_num != 0"
class="params_block_item_in"
>
<span class="params_block_item_title">数据盘:</span>
<span
class="params_block_item_val"
>{{ orderDetail.disk_num }}块,每块{{orderDetail.disk_cap }}GB</span>
<span class="params_block_item_val"
>{{ orderDetail.disk_num }}块,每块{{
orderDetail.disk_cap
}}GB</span
>
</div>
<div
v-else-if="orderDetail.apply_type != 0 && orderDetail.adjust_disk && orderDetail.adjust_disk.length != 0"
v-else-if="
orderDetail.apply_type != 0 &&
orderDetail.adjust_disk &&
orderDetail.adjust_disk.length != 0
"
class="params_block_item_in"
>
<span class="params_block_item_title">数据盘:</span>
......@@ -245,7 +388,14 @@
v-for="(item, index) in orderDetail.adjust_disk"
:key="'sjp' + index"
class="val_has_2"
>{{ "数据盘" + item.disk_num + "块,每块数据盘容量" + item.disk_cap + "GB;" }}</span>
>{{
"数据盘" +
item.disk_num +
"块,每块数据盘容量" +
item.disk_cap +
"GB;"
}}</span
>
</p>
</div>
</div>
......@@ -254,15 +404,23 @@
<div class="params_block_item_in">
<span class="params_block_item_title">CPU:</span>
<p class="params_block_item_val">
<span class="val_has_2">最高&nbsp;{{ orderDetail.one_cpu_max }}</span>
<span class="val_has_2">默认&nbsp;{{ orderDetail.one_cpu_min }}</span>
<span class="val_has_2"
>最高&nbsp;{{ orderDetail.one_cpu_max }}</span
>
<span class="val_has_2"
>默认&nbsp;{{ orderDetail.one_cpu_min }}</span
>
</p>
</div>
<div class="params_block_item_in">
<span class="params_block_item_title">内存:</span>
<p class="params_block_item_val">
<span class="val_has_2">最高&nbsp;{{ orderDetail.one_memory_max }}GB</span>
<span class="val_has_2">默认&nbsp;{{ orderDetail.one_memory_min }}GB</span>
<span class="val_has_2"
>最高&nbsp;{{ orderDetail.one_memory_max }}GB</span
>
<span class="val_has_2"
>默认&nbsp;{{ orderDetail.one_memory_min }}GB</span
>
</p>
</div>
</div>
......@@ -272,8 +430,23 @@
<table-um :headers="header_arr" :datas="data"></table-um>
</div>
<div class="detail_title">申请人信息</div>
<info-list @download="download" :list_arr="list_arr" class="detail_s_val"></info-list>
<process-card v-if="orderDetail.order_type != 3" :data="approval_arr1" class="detail_s_val"></process-card>
<info-list
@download="download"
:list_arr="list_arr"
class="detail_s_val"
></info-list>
<div
v-if="orderDetail.order_type != 3 && showApproval"
class="detail_title"
>
审批信息
</div>
<process-card
v-if="orderDetail.order_type != 3 && showApproval"
:data="approval_arr1"
class="detail_s_val"
>
</process-card>
</block-radius>
</div>
</template>
......@@ -371,6 +544,7 @@ export default {
],
},
],
showApproval: false,
header_arr: [
{
prop: "name",
......@@ -477,15 +651,24 @@ export default {
.then((response) => {
if (response.data.success == 1) {
let data = response.data.data || [];
for (let i = 0; i < data.length; i++) {
this.approval_arr1[i].result = data[i].apply_type_name;
this.approval_arr1[i].arr[0].info = data[i].created;
this.approval_arr1[i].arr[1].info = data[i].department_name;
this.approval_arr1[i].arr[2].info = data[i].user_name;
this.approval_arr1[i].arr[3].info = data[i].comments;
if (data.length != 0) {
for (let i = 0; i < data.length; i++) {
this.approval_arr1[i].result = data[i].apply_type_name;
this.approval_arr1[i].arr[0].info = data[i].created;
this.approval_arr1[i].arr[1].info = data[i].department_name;
this.approval_arr1[i].arr[2].info = data[i].user_name;
this.approval_arr1[i].arr[3].info = data[i].comments;
}
this.approval_arr1.splice(data.length);
} else {
this.approval_arr1[0].result = "待审批";
this.approval_arr1[0].arr = [];
this.approval_arr1.splice(1);
}
this.approval_arr1.splice(data.length);
this.showApproval = true;
console.log(this.approval_arr1);
} else {
this.showApproval = false;
console.log(response.data.errMsg);
}
});
......@@ -578,6 +761,7 @@ export default {
.detail {
margin: 0 20px;
}
.detail_head {
width: 100%;
background-color: #f6f7fb;
......@@ -586,87 +770,109 @@ export default {
position: relative;
margin-bottom: 20px;
}
.detail_head_msg {
padding: 20px;
}
.detail_head_cell {
display: inline-block;
height: 50px;
text-align: center;
}
.detail_head_status {
width: 160px;
}
.detail_head_no {
width: 360px;
}
.detail_head_time {
width: 240px;
}
.border_right {
border-right: 1px #e3e5ef solid;
}
.border_left {
border-left: 1px #e3e5ef solid;
}
.detail_head_cell_title {
font-size: 14px;
color: #8890a7;
line-height: 22px;
}
.detail_head_cell_val {
font-size: 16px;
font-weight: 700;
line-height: 28px;
color: #242c43;
}
.text_blue {
color: #515fe7;
}
.text_yellow {
color: #ef9433;
}
.text_blackblue {
color: #242c43;
}
.text_red {
color: #e15260;
}
.btn_group {
position: absolute;
right: 20px;
top: 26px;
}
.evaluation {
width: 100px;
background-color: #c3caf8;
color: #0f2683;
margin-right: 20px;
}
.again {
width: 100px;
background-color: #0f2683;
color: #f8f9fd;
}
.pop_rate {
padding: 0 0 0 50px;
margin: 15px 0;
}
.evaluation_text {
padding: 15px 4px;
}
.pop_cancel {
color: #58617a;
margin-right: 20px;
}
.pop_submit {
background-color: #e56600;
border: 0;
}
.pop_btn_group {
margin-top: 10px;
text-align: center;
}
.detail_title {
font-size: 18px;
margin: 10px 0 20px;
......@@ -674,6 +880,7 @@ export default {
position: relative;
color: #58617a;
}
.detail_title::before {
position: absolute;
content: "";
......@@ -684,6 +891,7 @@ export default {
left: 0;
top: 4px;
}
.detail_service {
width: 100%;
height: 100%;
......@@ -691,6 +899,7 @@ export default {
border-radius: 8px;
border: solid 1px #ededed;
}
.detail_service_msg {
height: 162px;
padding: 20px 10px 20px 20px;
......@@ -698,17 +907,20 @@ export default {
justify-content: space-between;
border-right: 1px #ededed solid;
}
.detail_service_msg_img {
width: 118px;
height: 118px;
border-radius: 8px;
border: 3px #f4f7fc solid;
}
.detail_service_msg_right {
width: calc(100% - 140px);
margin: 0 0 0 10px;
position: relative;
}
.detail_service_name {
width: 100%;
line-height: 24px;
......@@ -721,6 +933,7 @@ export default {
-webkit-box-orient: vertical;
font-size: 16px;
}
.detail_service_name_cloud {
width: 100%;
line-height: 24px;
......@@ -734,20 +947,24 @@ export default {
-webkit-box-orient: vertical;
font-size: 16px;
}
.detail_service_msg_other {
position: absolute;
bottom: 2px;
}
.detail_service_type {
color: #8890a7;
font-size: 14px;
line-height: 22px;
}
.detail_service_creator {
color: #8890a7;
font-size: 14px;
line-height: 22px;
}
.tags {
display: inline-block;
margin-left: 10px;
......@@ -759,26 +976,31 @@ export default {
position: relative;
top: -2px;
}
.map_service {
background-color: #626de9;
border: solid 1px #626de9;
color: #fff;
}
.shared {
background-color: #e7fdfc;
border: solid 1px #8bd6d0;
color: #25bdb1;
}
.restricted {
background-color: #fffee8;
border: solid 1px #e4c884;
color: #ef9433;
}
.sensitive {
background-color: #ffefef;
border: solid 1px #d7a4a9;
color: #e15260;
}
.detail_service_specification {
height: 162px;
color: #8890a7;
......@@ -789,37 +1011,63 @@ export default {
padding: 22px 20px;
border-right: 1px #ededed solid;
}
.detail_service_specification_val {
color: #242c43;
}
.detail_service_time {
text-align: center;
height: 162px;
display: flex;
justify-content: center;
align-items: center;
border-right: 1px #ededed solid;
}
.detail_service_time_title {
color: #8890a7;
}
.detail_service_money {
text-align: center;
height: 162px;
display: flex;
justify-content: center;
align-items: center;
}
.detail_service_money_title {
color: #8890a7;
}
.adhekadwn {
color: #8890a7;
display: block;
margin-top: 20px;
}
.detail_s_title {
color: #8890a7;
margin: 20px 0 10px;
padding: 0 0 0 20px;
}
.detail_app_scence {
padding: 0 0 0 20px;
color: #242c43;
font-size: 14px;
line-height: 22px;
}
.detail_s_val {
padding: 0 0 0 20px;
}
.approval_status_btn {
background-color: #e1e4fb;
color: #626de9;
}
.params_block {
background-color: #f8f9fd;
border-radius: 8px;
......@@ -828,47 +1076,58 @@ export default {
font-size: 14px;
line-height: 22px;
}
.params_block_title {
padding-left: 5px;
color: #242c43;
}
.params_block_item {
padding: 10px 0 0 0;
}
.params_block_item_in {
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.params_block_item_title {
color: #8890a7;
width: 80px;
text-align: right;
}
.params_block_item_val {
color: #242c43;
width: calc(100% - 82px);
}
.val_has_2 {
margin-right: 20px;
}
.margin_top_20 {
display: block;
margin-top: 20px;
}
.evaluation_msg {
height: 100%;
border-top: solid 2px #e3e5ef;
padding: 20px;
background-color: #fff;
}
.msg_title {
color: #8890a7;
margin: 0 0 10px;
}
.msg_rate {
margin: 0 0 20px 0;
}
.msg_text {
/* margin-left: 20px; */
color: #242c43;
......@@ -878,6 +1137,7 @@ export default {
.pop_rate .el-rate__icon {
font-size: 24px;
}
.pop_rate .el-rate__text {
font-size: 20px;
margin-left: 20px;
......@@ -885,7 +1145,8 @@ export default {
top: 1px;
color: #58617a !important;
}
.evaluation_text .el-textarea__inner {
border-radius: 8px;
}
</style>
\ No newline at end of file
</style>
......@@ -1144,8 +1144,12 @@ export default {
bodys = JSON.stringify(request);
} else if (this.zhfwQqt == "x-www-form-urlencoded") {
let request = this.$refs.fwcs_zhfw_www.getTableData().concat();
let arr = [];
request.pop();
bodys = JSON.stringify(request);
request.forEach(item => {
arr.push({key: item.requestEncoding, val: item.requestValue, field_type: "text"})
});
bodys = JSON.stringify(arr);
}
}
}
......
......@@ -71,10 +71,10 @@ const user = {
// my coins
getUserCoins() {
return axios.get(``)
return axios.get(`/apaas/backmgt/user/myAccount`)
},
getCoinList() {
return axios.get(``)
getCoinList(params) {
return axios.get(`/apaas/backmgt/user/rechargeRecords?start=${params.start}&end=${params.end}&limit=${params.limit}&page=${params.page}`)
}
}
......
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