Compare commits
92 Commits
4401628195
...
e2f31544e1
Author | SHA1 | Date |
---|---|---|
|
e2f31544e1 | |
|
5f117474af | |
|
1c3790a689 | |
|
b2cb339a78 | |
|
709ffee6cf | |
|
d7f4bfcf99 | |
|
a884b72720 | |
|
2e83199138 | |
|
7ad5bac015 | |
|
f69dc7f21b | |
|
00e02111a7 | |
|
037ea8c661 | |
|
4fc5ba412c | |
|
e20c0db450 | |
|
1413264068 | |
|
1009cd7583 | |
|
48d5b57397 | |
|
3189457a62 | |
|
7d8e8e6eec | |
|
fdc771ab6d | |
|
29fcb4346e | |
|
1a78d90997 | |
|
0235151eee | |
|
105ef2f6ae | |
|
4d5c34e8fa | |
|
cb4439e48a | |
|
b2ebdf1c46 | |
|
8686aadd8d | |
|
f4443a7b7e | |
|
ea1c143e80 | |
|
67d4b34f21 | |
|
6c66bd1374 | |
|
5f182ea1fc | |
|
53ea1aa2e0 | |
|
5540e3e214 | |
|
b1788762a7 | |
|
5d30b3b22e | |
|
9729d67fda | |
|
91cfb0171a | |
|
1656f3b71d | |
|
99f54f306a | |
|
2cbfcd45f2 | |
|
143527169a | |
|
0ba53a33eb | |
|
f1fb67cf1f | |
|
d0a13cc604 | |
|
b5b9ce86bc | |
|
e01ab412bc | |
|
7c8e69e1f6 | |
|
c20e4d1667 | |
|
fd40a1edf7 | |
|
8ae1b76ddc | |
|
f427e262ce | |
|
9a87b64c6b | |
|
90fd958bbe | |
|
3023ef2b5e | |
|
dbafb70daf | |
|
0329f43d43 | |
|
ecead0f5bf | |
|
0df439daaa | |
|
b3922ab76c | |
|
fc02d33044 | |
|
beb15b8118 | |
|
246505dc5e | |
|
0dbf8c50cb | |
|
4e739d6dab | |
|
2a12a535e8 | |
|
261aa615f3 | |
|
753bc4163b | |
|
ff9d5d6779 | |
|
0d078797e5 | |
|
09e8776b5c | |
|
d54e9908b9 | |
|
a5180d05f3 | |
|
b2322d82c4 | |
|
b059c1a1ba | |
|
07790e5924 | |
|
00576f6cff | |
|
42c2bad152 | |
|
bf16d4b3bd | |
|
fc430b37a9 | |
|
cf1669ce85 | |
|
072a31abf7 | |
|
2587a2cad9 | |
|
a62d49e078 | |
|
0907d1c436 | |
|
1f5f9a9a49 | |
|
226cd9eef1 | |
|
4d46564065 | |
|
6144a9390a | |
|
bbe6e492f3 | |
|
fca3f025ad |
|
@ -37,6 +37,7 @@
|
|||
"url": "https://gitee.com/y_project/MuYu-Cloud.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@antv/x6": "^2.18.1",
|
||||
"@riophae/vue-treeselect": "0.4.0",
|
||||
"axios": "0.24.0",
|
||||
"clipboard": "2.0.8",
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
|
||||
//发送邮箱验证码
|
||||
export function apitest(email){
|
||||
return request({
|
||||
url:"/market/company/sendcode/"+email,
|
||||
method: "POST",
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function reducetestcount(data){
|
||||
return request({
|
||||
url:"/market/producttest/reducetestcount",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function iftest(data){
|
||||
return request({
|
||||
url:"/market/product/iftest",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function findcount(data){
|
||||
return request({
|
||||
url:"/market/producttest/findcount",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function getHeader(data){
|
||||
return request({
|
||||
url:"/market/producttest/productheader",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export function getRequest(data){
|
||||
return request({
|
||||
url:"/market/producttest/productrequest",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function sendrequest(options){
|
||||
// 确保options是一个对象,并且包含必要的属性
|
||||
if (!options || typeof options !== 'object' || !options.apiRouter || typeof options.parameter === 'undefined') {
|
||||
throw new Error('Invalid options: must be an object with apiRouter and optional parameter properties');
|
||||
}
|
||||
// 构建完整的URL
|
||||
const fullUrl = `/background/api/${options.apiRouter}/${options.parameter || ''}`;
|
||||
return request({
|
||||
url:fullUrl,
|
||||
method: "get",
|
||||
data: options.parameter,
|
||||
})
|
||||
}
|
||||
|
||||
export function sendrequest1(options){
|
||||
// 确保options是一个对象,并且包含必要的属性
|
||||
if (!options || typeof options !== 'object' || !options.apiRouter ) {
|
||||
throw new Error('Invalid options: must be an object with apiRouter ');
|
||||
}
|
||||
// 构建完整的URL
|
||||
const fullUrl = `/background/api/${options.apiRouter}`;
|
||||
return request({
|
||||
url:fullUrl,
|
||||
method: "post",
|
||||
data: options
|
||||
})
|
||||
}
|
||||
|
||||
export function sendrequest2(options){
|
||||
// 确保options是一个对象,并且包含必要的属性
|
||||
if (!options || typeof options !== 'object' || !options.apiRouter ) {
|
||||
throw new Error('Invalid options: must be an object with apiRouter ');
|
||||
}
|
||||
// 构建完整的URL
|
||||
const fullUrl = `/background/api/${options.apiRouter}`;
|
||||
return request({
|
||||
url:fullUrl,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import request from "@/utils/request";
|
||||
export function companyauthentication(data){
|
||||
return request({
|
||||
url:"/market/company/companyauthentication",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function ifcompanyauthentication(data){
|
||||
return request({
|
||||
url:"/market/company/ifcompanyauthentication",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
|
||||
//发送邮箱验证码
|
||||
export function sendcode1(email){
|
||||
return request({
|
||||
url:"/market/company/sendcode/"+email,
|
||||
method: "POST",
|
||||
})
|
||||
}
|
||||
|
||||
//绑定邮箱
|
||||
export function linkemail(data){
|
||||
return request({
|
||||
url:"/market/company/list",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
export function selectapiList(data){
|
||||
return request({
|
||||
url:"/background/apimanage/list",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function apiupdmessage(data){
|
||||
return request({
|
||||
url:"/background/apimanage/upd",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function productStateList(data){
|
||||
return request({
|
||||
url:"/background/apimanage/productState",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function UpdproductState(data){
|
||||
return request({
|
||||
url:"/background/apimanage/updproductState",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function addproduct(data){
|
||||
return request({
|
||||
url:"/background/apimanage/add",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function delapi(productId){
|
||||
return request({
|
||||
url:"/background/apimanage/del/"+productId,
|
||||
method: "POST",
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
export function selectcompanyList(data){
|
||||
return request({
|
||||
url:"/background/company/list",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function reviewStatus(data){
|
||||
return request({
|
||||
url:"/background/company/reviewStatus",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function selectcompanystatus(data){
|
||||
return request({
|
||||
url:"/background/company/companystatus",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
|
@ -1,17 +1,18 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
export function showTask() {
|
||||
export function showTask(params) {
|
||||
return request({
|
||||
url: '/integration/task/selectAll',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function addTask(params) {
|
||||
export function addTask(data) {
|
||||
return request({
|
||||
url: '/integration/task/addTask',
|
||||
method: 'post',
|
||||
params
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -30,4 +31,95 @@ export function updTask(params) {
|
|||
})
|
||||
}
|
||||
|
||||
export function extractDataName() {
|
||||
return request({
|
||||
url: '/integration/task/extractDataName',
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function selectByTableName(tableName) {
|
||||
return request({
|
||||
url: `/integration/task/selectByTableName?tableName=`+tableName,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function addTaskInfo(data) {
|
||||
return request({
|
||||
url: `/integration/taskInfo/addTaskInfo`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function selectByNodeId(data) {
|
||||
return request({
|
||||
url: `/integration/taskInfo/selectByNodeId`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function selectByOne(nodeId) {
|
||||
return request({
|
||||
url: `/integration/taskInfo/selectByOne?nodeId=`+nodeId,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function addSelect(data) {
|
||||
return request({
|
||||
url: `/integration/sqlSelect/addSelectNode`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function addTableField(data) {
|
||||
return request({
|
||||
url: `/integration/taskFields/addField`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function seeTableField(data) {
|
||||
return request({
|
||||
url: `/integration/taskFields/showFieldList`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function selectByAsField(data) {
|
||||
return request({
|
||||
url: `/integration/taskFields/selectByAsField`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function addOutPut(data) {
|
||||
return request({
|
||||
url: `/integration/output/addOutput`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function findBySelectId(nodeId) {
|
||||
return request({
|
||||
url: `/integration/sqlSelect/findBySelectId?nodeId=`+nodeId,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function todoTask(id) {
|
||||
return request({
|
||||
url: `/integration/task/todoTask?id=`+id,
|
||||
method: 'GET',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
|
||||
export function selectList(data){
|
||||
return request({
|
||||
url:"/market/orders/list",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function addordersup(data){
|
||||
return request({
|
||||
url:"/market/orders/addOrdeds",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function ordersDelete(ordersId) {
|
||||
return request({
|
||||
url: "/market/orders/delByOrderId/" + ordersId ,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
|
||||
export function updateOrders(data) {
|
||||
return request({
|
||||
url: "/market/orders/updateOrders",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateByeExist(ordersId) {
|
||||
return request({
|
||||
url: "/market/orders/updateByeExist/" + ordersId ,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function updateByExist(ordersId) {
|
||||
return request({
|
||||
url: "/market/orders/updateByExist/" + ordersId ,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function orderssd(ordersId) {
|
||||
return request({
|
||||
url: "/market/orders/delByOrderId/" + ordersId ,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function pay(data){
|
||||
return request({
|
||||
url:"/market/alipay/pay",
|
||||
method: "get",
|
||||
data: data
|
||||
})}
|
||||
|
||||
export function getOut(){
|
||||
return request({
|
||||
url:"/market/orders/getOutAll",
|
||||
method: "GET"
|
||||
})}
|
||||
|
||||
export function updateByordersState1(data){
|
||||
return request({
|
||||
url:"/market/orders/updateByordersState1",
|
||||
method: "POST",
|
||||
data: data
|
||||
})}
|
||||
|
||||
export function listreclaim(data){
|
||||
return request({
|
||||
url:"/market/orders/listreclaim",
|
||||
method: "POST",
|
||||
data: data
|
||||
})}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -9,11 +9,34 @@ export function selectList(data){
|
|||
}
|
||||
|
||||
|
||||
export function selectTypeList(data){
|
||||
export function selectTypeList(data) {
|
||||
return request({
|
||||
url:"/market/product/typeList",
|
||||
url: "/market/product/typeList",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export function selectproductspecification(data){
|
||||
return request({
|
||||
url:"/market/product/specification",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function ifbuy(data){
|
||||
return request({
|
||||
url:"/market/product/ifbuy",
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function showByproductId(productId){
|
||||
return request({
|
||||
url:"/market/product/showByproductId="+productId,
|
||||
method: "GET"
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import request from "@/utils/request";
|
||||
import { handleDelete } from '@/api/market/product'
|
||||
|
||||
export function gethostportList(){
|
||||
return request({
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getExtractDataTableNameList() {
|
||||
return request({
|
||||
url: '/property/dataRunName/extractDataTableNameShow',
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function tableStructureShow(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/tableStructureShow',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
|
||||
export function getExtractDataTableNameList() {
|
||||
return request({
|
||||
url: '/property/dataRunName/extractDataTableName',
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function addDeptAssetAuthorization(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/addDeptAssetAuthorization',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
export function delDeptAssetAuthorization(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/delDeptAssetAuthorization',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
export function addUserAssetAuthorization(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/addUserAssetAuthorization',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function delUserAssetAuthorization(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/delUserAssetAuthorization',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
// --------------------------------------------------------
|
||||
|
||||
/**
|
||||
* 查询资产赋权用户信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
export function findUserIdList(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/findUserIdList',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询资产赋权部门信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
export function findDeptIdList(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/findDeptIdList',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getExtractDataTableNameList() {
|
||||
return request({
|
||||
url: '/property/dataRunName/extractDataTableName',
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
export function tableStructureShow(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/tableStructureShow',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getConnectList(data) {
|
||||
return request({
|
||||
url: '/property/connect/selectConnect',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function insertConnectList(data) {
|
||||
return request({
|
||||
url: '/property/connect/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function updConnectList(data) {
|
||||
return request({
|
||||
url: '/property/connect/upd',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function textHandleClick(data) {
|
||||
return request({
|
||||
url: '/property/connect/text',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function delHandleClick(data) {
|
||||
return request({
|
||||
url: '/property/connect/del/'+data,
|
||||
method: 'Delete',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function selectHandleClick(data) {
|
||||
return request({
|
||||
url: '/property/dataRunName/addDataTableName',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
Before Width: | Height: | Size: 509 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 789 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 72 KiB |
|
@ -25,10 +25,6 @@ export default {
|
|||
required: true,
|
||||
type: Number
|
||||
},
|
||||
page: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 20
|
||||
|
|
|
@ -104,6 +104,78 @@ export const constantRoutes = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/authentication',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'authentication',
|
||||
component: () => import('@/views/market/authentication/index.vue'),
|
||||
meta: { title: '实名认证', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/apidetailmessage',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'apidetailmessage',
|
||||
component: () => import('@/views/background/apidetailmessage/index.vue'),
|
||||
meta: { title: '接口详情', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/apimanage',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'apimanage',
|
||||
component: () => import('@/views/background/apimanage/index.vue'),
|
||||
meta: { title: '接口列表', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/apiupdmessage',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'apiupdmessage',
|
||||
component: () => import('@/views/background/apiupdmessage/index.vue'),
|
||||
meta: { title: '接口列表', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/updorders',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'updorders',
|
||||
component: () => import('@/views/market/updorders/index.vue'),
|
||||
meta: { title: '修改订单详情', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/reclaim',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'reclaim',
|
||||
component: () => import('@/views/market/reclaim/index.vue'),
|
||||
meta: { title: '订单回收站', icon: 'form' }
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
// 动态路由,基于用户权限动态去加载
|
||||
|
|
|
@ -17,7 +17,7 @@ const service = axios.create({
|
|||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: process.env.VUE_APP_BASE_API,
|
||||
// 超时
|
||||
timeout: 10000
|
||||
timeout: 20000
|
||||
})
|
||||
|
||||
// request拦截器
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
<template>
|
||||
<div>
|
||||
<h3 style="color: #1482f0">接口详情:{{api.productName}}</h3>
|
||||
<el-divider></el-divider>
|
||||
{{api}}
|
||||
<center>
|
||||
<el-form :model="api" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="序号" prop="productId" style="width: 70%">
|
||||
{{api.productId}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口名称" prop="productName" style="width: 70%">
|
||||
{{api.productName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口类型" prop="productType" style="width: 70%">
|
||||
{{api.productType}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口描述" prop="productContent" style="width: 70%">
|
||||
{{api.productContent}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口销量" prop="productSales" style="width: 70%">
|
||||
{{api.productSales}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口价格" prop="productPrice" style="width: 70%">
|
||||
{{api.productPrice}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口来源" prop="productFrom" style="width: 70%">
|
||||
{{api.productFrom}}
|
||||
</el-form-item>
|
||||
<el-form-item label="重要路由" prop="apiRouter" style="width: 70%">
|
||||
{{api.apiRouter}}
|
||||
</el-form-item>
|
||||
<el-form-item label="接口地址" prop="apiAddress" style="width: 70%">
|
||||
{{api.apiAddress}}
|
||||
</el-form-item>
|
||||
<el-form-item label="返回格式" prop="returnFormat" style="width: 70%">
|
||||
{{api.returnFormat}}
|
||||
</el-form-item>
|
||||
<el-form-item label="请求方式" prop="requestMethod" style="width: 70%">
|
||||
{{api.requestMethod}}
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</center>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
export default {
|
||||
name: "Apidetailmessage",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
api:{}
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
submitForm(){
|
||||
this.$router.push("/apimanage/index")
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
this.api = this.$route.query.api
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,335 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="接口名称" prop="productName" style="width: 30%">
|
||||
<el-input type="text" v-model="ruleForm.productName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">查询</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select v-model="ruleForm.productState" placeholder="请选择状态" @change="changestate(ruleForm.productState)">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="未上线" value="0"></el-option>
|
||||
<el-option label="已上线" value="1"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button type="danger" @click="add()">新增+</el-button>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<i class="el-icon-time"></i>
|
||||
<span style="margin-left: 10px">{{ scope.row.productId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="接口名称"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.productName }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="接口描述"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{ scope.row.productContent }}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="接口来源"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.productFrom }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="接口销量"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.productSales }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handlelook(scope.row)">详情</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handleEdit(scope.row)">修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handleDelete(scope.row)">删除</el-button>
|
||||
</div>
|
||||
<br>
|
||||
<div v-if="scope.row.productState===0">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="success"
|
||||
@click="handleUpdState(scope.row)">上线</el-button>
|
||||
</div>
|
||||
<div v-if="scope.row.productState===1">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="success"
|
||||
@click="handleUpdState(scope.row)">下架</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--分页-->
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="ruleForm.pageNum"
|
||||
:page-sizes="[5, 7, 9, 11]"
|
||||
:page-size="ruleForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total">
|
||||
</el-pagination>
|
||||
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose">
|
||||
<center>
|
||||
<el-form :model="api" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="接口名称" prop="productName" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口类型" prop="productType" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productType" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口描述" prop="productContent" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productContent" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口价格" prop="productPrice" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productPrice" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口来源" prop="productFrom" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productFrom" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="重要路由" prop="apiRouter" style="width: 70%">
|
||||
<el-input type="text" v-model="api.apiRouter" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口地址" prop="apiAddress" style="width: 70%">
|
||||
<el-input type="text" v-model="api.apiAddress" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="返回格式" prop="returnFormat" style="width: 70%">
|
||||
<el-input type="text" v-model="api.returnFormat" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求方式" prop="requestMethod" style="width: 70%">
|
||||
<el-input type="text" v-model="api.requestMethod" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</center>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button @click="resetForm('ruleForm')">重置</el-button>
|
||||
<el-button type="primary" @click="addForm(api)">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {
|
||||
addproduct,
|
||||
delapi,
|
||||
productStateLis,
|
||||
productStateList,
|
||||
selectapiList,
|
||||
UpdproductState
|
||||
} from "@/api/background/apimanage";
|
||||
import {resetForm} from "@/utils/muyu";
|
||||
import {add} from "lodash/math";
|
||||
|
||||
export default {
|
||||
name: "Apimanage",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
tableData:[],
|
||||
ruleForm:{
|
||||
pageNum:1,
|
||||
pageSize:9,
|
||||
productType:'' ,
|
||||
productState:''
|
||||
},
|
||||
total:0,
|
||||
dialogVisible: false,
|
||||
api:{},
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
resetForm,
|
||||
//新增对话框关闭
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
getapiList(){
|
||||
selectapiList(this.ruleForm).then(response=>{
|
||||
console.log(response)
|
||||
this.tableData=response.data.productListResps
|
||||
this.total=response.data.total
|
||||
})
|
||||
},
|
||||
// //状态查询
|
||||
// productStateLis(){
|
||||
// productStateLis().then(response=>{
|
||||
// this.productStateList=response.data
|
||||
// })
|
||||
// },
|
||||
changestate(value){
|
||||
this.ruleForm.productState=value
|
||||
this.getapiList()
|
||||
},
|
||||
//查询
|
||||
submitForm(){
|
||||
this.getapiList()
|
||||
},
|
||||
//分页
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`);
|
||||
this.ruleForm.pageSize=val
|
||||
this.getapiList()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
console.log(`当前页: ${val}`);
|
||||
this.ruleForm.pageNum=val
|
||||
this.getapiList()
|
||||
},
|
||||
//接口详情
|
||||
handlelook(row){
|
||||
this.$router.push({path:"/apidetailmessage/index",query:{api:row}})
|
||||
},
|
||||
//修改
|
||||
handleEdit(row){
|
||||
this.$router.push({path:"/apiupdmessage/index",query:{api:row}})
|
||||
},
|
||||
//删除
|
||||
handleDelete(row){
|
||||
if (confirm("确定删除么")){
|
||||
delapi(row.productId).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.getapiList()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
//新增
|
||||
add(){
|
||||
this.dialogVisible=true
|
||||
},
|
||||
addForm(){
|
||||
addproduct(this.api).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.dialogVisible=false
|
||||
this.getapiList()
|
||||
}
|
||||
})
|
||||
},
|
||||
//产品上/下线
|
||||
handleUpdState(row){
|
||||
if (row.productState==0){
|
||||
if (confirm("确定上线么")){
|
||||
row.productState=1
|
||||
alert(JSON.stringify(row))
|
||||
UpdproductState(row).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.getapiList()
|
||||
}
|
||||
})
|
||||
}
|
||||
}else {
|
||||
if (confirm("确定下架么")){
|
||||
row.productState=0
|
||||
UpdproductState(row).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.getapiList()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getapiList()
|
||||
// this.productStateList()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,108 @@
|
|||
<template>
|
||||
<div>
|
||||
<h3 style="color: #1482f0">接口详情:{{api.productName}}</h3>
|
||||
<el-divider></el-divider>
|
||||
{{api}}
|
||||
<center>
|
||||
<el-form :model="api" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="序号" prop="productId" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productId" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口名称" prop="productName" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口类型" prop="productType" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productType" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口描述" prop="productContent" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productContent" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口销量" prop="productSales" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productSales" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口价格" prop="productPrice" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productPrice" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口来源" prop="productFrom" style="width: 70%">
|
||||
<el-input type="text" v-model="api.productFrom" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="重要路由" prop="apiRouter" style="width: 70%">
|
||||
<el-input type="text" v-model="api.apiRouter" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口地址" prop="apiAddress" style="width: 70%">
|
||||
<el-input type="text" v-model="api.apiAddress" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="返回格式" prop="returnFormat" style="width: 70%">
|
||||
<el-input type="text" v-model="api.returnFormat" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求方式" prop="requestMethod" style="width: 70%">
|
||||
<el-input type="text" v-model="api.requestMethod" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm(api)">修改</el-button>
|
||||
<el-button @click="resetForm('ruleForm')">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</center>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {resetForm} from "@/utils/muyu";
|
||||
import {apiupdmessage} from "@/api/background/apimanage";
|
||||
|
||||
export default {
|
||||
name: "Apiupdmessage",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
api:{}
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
resetForm,
|
||||
submitForm(api){
|
||||
apiupdmessage(api).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.$router.push("/apimanage/index")
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
this.api = this.$route.query.api
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,280 @@
|
|||
<template>
|
||||
<div>
|
||||
<span>企业管理/待审核企业</span>
|
||||
<el-container style="height: 500px; border: 1px solid #eee">
|
||||
<el-aside width="150px" style="background-color: rgb(238, 241, 246)">
|
||||
<span @click="choseall()">全部</span>
|
||||
<div v-for="(companyStatus,index1) in companystatusList" :key="index1">
|
||||
<span @click="chosetype(index1)" v-if="companyStatus==0">待审核企业</span>
|
||||
<span @click="chosetype(index1)" v-if="companyStatus==1">审核通过企业</span>
|
||||
<span @click="chosetype(index1)" v-if="companyStatus==2">审核未通过企业</span>
|
||||
</div>
|
||||
</el-aside>
|
||||
|
||||
<el-container>
|
||||
<el-main>
|
||||
<!--企业审核列表-->
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.companyId }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="注册人姓名"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.registrantName }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="注册人手机号码"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.registrantPhone }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="职位"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.registrantPosition }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="公司名称"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.companyName }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="地址"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.companyAddress }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="注册日期"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.registrantDate }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="社会统一信用代码"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.name }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="公司营业执照"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.businessLicense }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="审核状态"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<span v-if="scope.row.reviewStatus==0">待审核</span>
|
||||
<span v-if="scope.row.reviewStatus==1">审核通过</span>
|
||||
<span v-if="scope.row.reviewStatus==2">审核未通过</span>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.reviewStatus==0 || scope.row.reviewStatus==1">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handleNotEdit(scope.row)">审核不通过</el-button>
|
||||
</span>
|
||||
<span v-if="scope.row.reviewStatus==0 || scope.row.reviewStatus==2">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.row)">审核通过</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页-->
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="ruleForm.pageNum"
|
||||
:page-sizes="[5, 7, 9, 11]"
|
||||
:page-size="ruleForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total">
|
||||
</el-pagination>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {reviewStatus, selectcompanyList, selectcompanystatus} from "@/api/background/company";
|
||||
|
||||
export default {
|
||||
name: "Company",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
tableData:[],
|
||||
ruleForm:{
|
||||
pageNum:1,
|
||||
pageSize:5,
|
||||
reviewStatus:''
|
||||
},
|
||||
total:0,
|
||||
companyStatus:{},
|
||||
companystatusList:[]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//查询企业列表
|
||||
getList(){
|
||||
selectcompanyList(this.ruleForm).then(response=>{
|
||||
console.log(response)
|
||||
this.tableData=response.data.companytotalList
|
||||
this.total=response.data.total
|
||||
})
|
||||
},
|
||||
//分页
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`);
|
||||
this.ruleForm.pageSize=val
|
||||
this.getList()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
console.log(`当前页: ${val}`);
|
||||
this.ruleForm.pageNum=val
|
||||
this.getList()
|
||||
},
|
||||
//产品类型
|
||||
getcompanystatusList(){
|
||||
selectcompanystatus().then(response=>{
|
||||
this.companystatusList=response.data
|
||||
})
|
||||
},
|
||||
//选择类型
|
||||
chosetype(index){
|
||||
this.ruleForm.reviewStatus=this.companystatusList[index]
|
||||
this.getList()
|
||||
},
|
||||
//选择全部
|
||||
choseall(){
|
||||
this.ruleForm.reviewStatus=''
|
||||
this.getList()
|
||||
},
|
||||
//审核不通过
|
||||
handleNotEdit(row){
|
||||
row.reviewStatus=2
|
||||
reviewStatus(row).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.getList()
|
||||
this.getcompanystatusList()
|
||||
}
|
||||
})
|
||||
},
|
||||
//审核通过
|
||||
handleEdit(row){
|
||||
row.reviewStatus=1
|
||||
reviewStatus(row).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){
|
||||
this.getList()
|
||||
this.getcompanystatusList()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getList()
|
||||
this.getcompanystatusList()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,210 @@
|
|||
<template>
|
||||
<div>
|
||||
<span>
|
||||
<el-radio-group v-model="labelPosition" size="small">
|
||||
<el-radio-button label="left">左对齐</el-radio-button>
|
||||
<el-radio-button label="right">右对齐</el-radio-button>
|
||||
<el-radio-button label="top">顶部对齐</el-radio-button>
|
||||
</el-radio-group>
|
||||
<div style="margin: 20px;"></div>
|
||||
<el-form :label-position="labelPosition" label-width="80px" :model="tableMsg">
|
||||
<el-form-item label="任务id">
|
||||
<el-input v-model="tableMsg.taskId" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据库id">
|
||||
<el-input v-model="tableMsg.databaseId" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据表">
|
||||
<el-cascader
|
||||
v-model="tableMsg.tableName"
|
||||
:options="tables"
|
||||
:props="{ expandTrigger: 'hover',value:'name',label:'name',children:'tableNames' }"
|
||||
@change="handleChange"></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="表别名">
|
||||
<el-input v-model="tableMsg.tableAsName"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</span>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="nextOne()">下一步</el-button>
|
||||
</span>
|
||||
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible1"
|
||||
width="65%"
|
||||
>
|
||||
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="ID" width="120">
|
||||
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="field" label="字段名称" width="120"/>
|
||||
<el-table-column prop="type" label="字段类型" width="120"/>
|
||||
<el-table-column prop="collation" label="编码格式" width="120"/>
|
||||
<el-table-column prop="nullable" label="是否为空" width="120"/>
|
||||
<el-table-column prop="primarys" label="主键" width="120"/>
|
||||
<el-table-column prop="annotation" label="注释" width="120"/>
|
||||
<el-table-column label="表别名" width="120">
|
||||
<template slot-scope="scope">{{ scope.row.dataField }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规则" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.fieldEngineId" placeholder="无规则">
|
||||
<el-option label="无规则" value="1"></el-option>
|
||||
<el-option label="区域二" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doSure()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {addTableField, addTaskInfo, extractDataName, selectByTableName} from "../../../api/etl/etl";
|
||||
import node from "../../../components/ef/node.vue";
|
||||
|
||||
export default {
|
||||
name: "task",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: ['nodesIds'],
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
allFields:{
|
||||
taskId: this.$route.query.id,
|
||||
nodeId: this.nodesIds,
|
||||
field:"",
|
||||
asField:"",
|
||||
isNull:"",
|
||||
comment:""
|
||||
},
|
||||
tableData:[],
|
||||
dataForm:true,
|
||||
dialogVisible1: false,
|
||||
tables:{},
|
||||
tableMsg:{
|
||||
//nodeId
|
||||
nodeId: this.nodesIds,
|
||||
//任务ID
|
||||
taskId: this.$route.query.id,
|
||||
//数据库ID
|
||||
databaseId:"",
|
||||
//表名
|
||||
tableName:"",
|
||||
//字段名
|
||||
tableField:"",
|
||||
//表别名
|
||||
tableAsName:"",
|
||||
//表别名字段
|
||||
tableAsField:"",
|
||||
//规则
|
||||
fieldEngineId:""
|
||||
},
|
||||
labelPosition: 'right',
|
||||
dialogVisible:false,
|
||||
multipleSelection: [],
|
||||
fields:[]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
doSure(){
|
||||
this.dialogVisible1 = false
|
||||
this.$emit('taskInputForm', false);
|
||||
this.tableMsg.taskId = this.$route.query.id
|
||||
let detailData = [...new Set(this.multipleSelection)]
|
||||
this.tableMsg.tableAsField = detailData.join(',');
|
||||
|
||||
this.fields.forEach(item => {
|
||||
this.allFields.asField = item.dataField
|
||||
this.allFields.field = item.field
|
||||
this.allFields.isNull = item.nullable
|
||||
this.allFields.comment = item.annotation
|
||||
addTableField(this.allFields).then(res => {
|
||||
console.log(res);
|
||||
})
|
||||
})
|
||||
addTaskInfo(this.tableMsg).then(res =>{
|
||||
if (res.code == 200){
|
||||
this.$message.success("节点安置成功")
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.fields = val
|
||||
val.forEach(res =>{
|
||||
this.multipleSelection.push(res.dataField);
|
||||
})
|
||||
console.log(this.fields);
|
||||
},
|
||||
|
||||
nextOne(){
|
||||
let tableName = this.tableMsg.tableName.toString();
|
||||
selectByTableName(tableName).then(res => {
|
||||
this.dialogVisible1 = true
|
||||
this.tableData = res.data
|
||||
this.tableData.forEach(item => {
|
||||
this.tableMsg.tableField += ","+item.field
|
||||
})
|
||||
this.tableMsg.tableField = this.tableMsg.tableField.substring(1)
|
||||
res.data.forEach(response => {
|
||||
response.dataField = this.tableMsg.tableAsName+"_"+response.field
|
||||
})
|
||||
|
||||
})
|
||||
},
|
||||
handleChange(value) {
|
||||
this.tableMsg.databaseId = value[0]
|
||||
this.tableMsg.tableName = value[1]
|
||||
},
|
||||
getDatabaseMessage(){
|
||||
this.dialogVisible = true
|
||||
extractDataName().then(res => {
|
||||
this.tables = res.data
|
||||
})
|
||||
},
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getDatabaseMessage()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -1,68 +1,88 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1 style="color: #00afff" align="center">发布任务</h1>
|
||||
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
||||
<el-form-item label="任务名称">
|
||||
<el-input v-model="formInline.name" placeholder="请输入任务名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务权重">
|
||||
<el-select v-model="formInline.weight" placeholder="任务权重">
|
||||
<el-option label="紧急" value="1"></el-option>
|
||||
<el-option label="正常" value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="任务执行状态">
|
||||
<el-select v-model="formInline.processStatus" placeholder="任务执行状态">
|
||||
<el-option label="待执行" value="1"></el-option>
|
||||
<el-option label="已就绪" value="2"></el-option>
|
||||
<el-option label="执行中" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="tableData" style="width: 100%">
|
||||
<el-table-column label="编号" width="180">
|
||||
<el-table-column label="编号" width="50">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.id }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务名称" width="180">
|
||||
<el-table-column label="任务名称" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务权重级别" width="180">
|
||||
<el-table-column label="任务权重级别" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.weight }}</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.weight == 1">紧急</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.weight == 2">正常</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务执行状态" width="180">
|
||||
<el-table-column label="任务执行状态" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.processTotal }}</span>
|
||||
<span style="margin-left: 10px">{{ scope.row.processStatus }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="最终执行结果" width="180">
|
||||
<el-table-column label="最终执行结果" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.status }}</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.status == 1">有错误</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.status == 0">无错误</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总处理条数" width="180">
|
||||
<el-table-column label="总处理条数" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.total }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建人" width="180">
|
||||
<el-table-column label="创建人" width="60">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.createBy }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" width="180">
|
||||
<el-table-column label="创建时间" width="150">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.createTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="修改人" width="180">
|
||||
<el-table-column label="修改人" width="60">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.updateBy }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="修改时间" width="180">
|
||||
<el-table-column label="修改时间" width="150">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.updateTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column label="操作">
|
||||
<el-table-column label="操作" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.$index, scope.row)">编辑</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handleDelete(scope.$index, scope.row)">删除</el-button>
|
||||
<el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑节点</el-button>
|
||||
<el-button size="mini" @click="todoTask(scope.$index, scope.row)">执行任务</el-button>
|
||||
<el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -78,12 +98,12 @@
|
|||
<el-radio-button label="top">顶部对齐</el-radio-button>
|
||||
</el-radio-group>
|
||||
<div style="margin: 20px;"></div>
|
||||
<el-form :label-position="labelPosition" label-width="80px" :model="formLabelAlign">
|
||||
<el-form :label-position="labelPosition" label-width="80px" :model="task">
|
||||
<el-form-item label="任务名称">
|
||||
<el-input v-model="formLabelAlign.name"></el-input>
|
||||
<el-input v-model="task.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务权重">
|
||||
<el-input v-model="formLabelAlign.weight"></el-input>
|
||||
<el-input v-model="task.weight"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
|
@ -97,7 +117,7 @@
|
|||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {addTask, delTask, showTask} from "../../../api/etl/etl";
|
||||
import {addTask, delTask, showTask, todoTask} from "../../../api/etl/etl";
|
||||
|
||||
export default {
|
||||
name: "Task",
|
||||
|
@ -108,10 +128,14 @@ export default {
|
|||
//这里存放数据"
|
||||
|
||||
return {
|
||||
formLabelAlign:{},
|
||||
formInline:{
|
||||
name : "",
|
||||
weight : "",
|
||||
processStatus : ""
|
||||
},
|
||||
task:{},
|
||||
labelPosition: 'right',
|
||||
tableData:[],
|
||||
task:{},
|
||||
dialogVisible: false
|
||||
};
|
||||
},
|
||||
|
@ -121,6 +145,18 @@ export default {
|
|||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
todoTask(index,row){
|
||||
todoTask(row.id).then(res => {
|
||||
if (res.code == 200){
|
||||
this.$message.success("操作成功")
|
||||
}else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
onSubmit(){
|
||||
this.getData()
|
||||
},
|
||||
toAdd(){
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
@ -136,12 +172,12 @@ export default {
|
|||
})
|
||||
},
|
||||
getData(){
|
||||
showTask().then(res => {
|
||||
showTask(this.formInline).then(res => {
|
||||
this.tableData = res.data
|
||||
})
|
||||
},
|
||||
handleEdit(index, row) {
|
||||
console.log(index, row);
|
||||
this.$router.push({path:"/etl/active",query:{"id":row.id}})
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
console.log(index, row);
|
||||
|
|
|
@ -0,0 +1,632 @@
|
|||
<template>
|
||||
<div class="dashboard-container">
|
||||
<el-button @click="saveActive" icon="el-icon-position" style="margin-right: 20px;float :right">保存</el-button>
|
||||
<p>选择节点</p>
|
||||
<div class="antvBox">
|
||||
<div class="menu-list">
|
||||
<div v-for="item in moduleList" :key="item.id"
|
||||
draggable="true"
|
||||
@dragend="handleDragEnd($event, item)">
|
||||
<img :src="item.image" alt="" />
|
||||
<p>{{ item.name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="canvas-card">
|
||||
<div id="container" />
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
|
||||
<task v-if="taskOpen" @taskInputForm="findFormValue" :nodes-ids="nodesIds"/>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="提示" :visible.sync="dialogVisible1" width="30%">
|
||||
<el-table :data="nodeList" style="width: 100%">
|
||||
<el-table-column prop="databaseId" label="数据库" width="180"></el-table-column>
|
||||
<el-table-column prop="tableAsName" label="表别名" width="180"></el-table-column>
|
||||
</el-table>
|
||||
<div style="margin: 20px;"></div>
|
||||
<el-form label-width="80px" :model="joinCheck">
|
||||
<el-form-item label="联查方式">
|
||||
<el-select v-model="joinCheck.joinId" placeholder="联查方式">
|
||||
<el-option label="左联查" value="1"></el-option>
|
||||
<el-option label="右联查" value="2"></el-option>
|
||||
<el-option label="内联查" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select v-model="joinCheck.firstCloumn" placeholder="请选择关联字段">
|
||||
<el-option
|
||||
v-for="item in options1"
|
||||
:key="item.nodeMsg"
|
||||
:label="item.nodeMsg"
|
||||
:value="item.nodeMsg">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select v-model="joinCheck.secondCloumn" placeholder="请选择关联字段">
|
||||
<el-option
|
||||
v-for="item in options2"
|
||||
:key="item.nodeMsg"
|
||||
:label="item.nodeMsg"
|
||||
:value="item.nodeMsg">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="todoSelect">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible2"
|
||||
width="40%"
|
||||
>
|
||||
<el-table ref="multipleTable" :data="fields" tooltip-effect="dark" style="width: 100%"
|
||||
@selection-change="SelectionChange">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column label="字段" width="120"><template slot-scope="scope">{{ scope.row.field }}</template></el-table-column>
|
||||
<el-table-column label="别名" width="120"><template slot-scope="scope">{{ scope.row.asField }}</template></el-table-column>
|
||||
<el-table-column label="非空" width="120"><template slot-scope="scope">{{ scope.row.isNull }}</template></el-table-column>
|
||||
<el-table-column label="注释" width="120"><template slot-scope="scope">{{ scope.row.comment }}</template></el-table-column>
|
||||
</el-table>
|
||||
<br>
|
||||
<el-cascader
|
||||
v-model="toTable"
|
||||
:options="tt"
|
||||
:props="{ expandTrigger: 'hover',value:'name',label:'name',children:'tableNames' }"
|
||||
@change="handleChange"></el-cascader>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible2 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="showTableFields">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="提示" :visible.sync="finalVisible" width="30%">
|
||||
<el-table ref="multipleTable" :data="sqlList" tooltip-effect="dark" style="width: 100%"
|
||||
@selection-change="SelectionChange">
|
||||
<el-table-column label="输入字段" width="120">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.asField }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="输出字段" width="120">
|
||||
<el-select v-model="cloumns" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.id"
|
||||
:label="item.field"
|
||||
:value="item.field">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="finalVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="addSql">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Graph } from "@antv/x6";
|
||||
import {
|
||||
addOutPut,
|
||||
addSelect,
|
||||
extractDataName, findBySelectId,
|
||||
seeTableField, selectByAsField,
|
||||
selectByNodeId,
|
||||
selectByOne, selectByTableName,
|
||||
} from "../../../api/etl/etl";
|
||||
import task from "/src/views/components/task/index.vue"
|
||||
export default {
|
||||
name: "antvX6",
|
||||
components:{
|
||||
task
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
sourceField:[],
|
||||
outPuter:{
|
||||
nodeId:"",
|
||||
taskId:"",
|
||||
tableFields:"",
|
||||
tableAsFields:"",
|
||||
targetDatabase:"",
|
||||
targetTableName:""
|
||||
},
|
||||
options:{},
|
||||
sqlList:[],
|
||||
toTable:"",
|
||||
tt:{},
|
||||
fields:[],
|
||||
finalVisible:false,
|
||||
dialogVisible2:false,
|
||||
options1:{},
|
||||
options2:{},
|
||||
nodeList:[],
|
||||
neighbors:[],
|
||||
nodesIds:"",
|
||||
taskOpen:false,
|
||||
joinCheck:{
|
||||
nodeId:"",
|
||||
joinId:"",
|
||||
leftNodeId:"",
|
||||
rightNodeId:"",
|
||||
firstCloumn:"",
|
||||
secondCloumn:""
|
||||
},
|
||||
asFields:[],
|
||||
tableData:[],
|
||||
dialogVisible1: false,
|
||||
tables:{},
|
||||
tableMsg:{
|
||||
tableName:"",
|
||||
tableAsField:""
|
||||
},
|
||||
cloumns:'',
|
||||
labelPosition: 'right',
|
||||
dialogVisible:false,
|
||||
curSelectNode: "",
|
||||
tableFields:[],
|
||||
tableDataNodeId:[],
|
||||
moduleList: [
|
||||
{
|
||||
id: 1,
|
||||
name: "开始",
|
||||
image: require("@/assets/img/1.png"),
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
name: "表",
|
||||
image: require("@/assets/img/2.png"),
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "联查",
|
||||
image: require("@/assets/img/3.png"),
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "导出",
|
||||
image: require("@/assets/img/4.png"),
|
||||
},
|
||||
],
|
||||
graph: null
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDatabaseMessage()
|
||||
},
|
||||
methods: {
|
||||
showTableFields(){
|
||||
this.finalVisible = true
|
||||
let fieldsList = [...new Set(this.tableFields)]
|
||||
selectByAsField(fieldsList).then(res => {
|
||||
this.sqlList = res.data
|
||||
})
|
||||
|
||||
selectByTableName(this.toTable).then(res => {
|
||||
this.options = res.data
|
||||
})
|
||||
|
||||
},
|
||||
addSql(){
|
||||
this.outPuter.taskId = this.$route.query.id
|
||||
let fieldsList = [...new Set(this.tableFields)]
|
||||
let tableAsFieldList = [...new Set(this.sourceField)]
|
||||
this.outPuter.tableFields = fieldsList.toString()
|
||||
this.outPuter.tableAsFields = tableAsFieldList.toString()
|
||||
this.outPuter.targetTableName = this.toTable
|
||||
addOutPut(this.outPuter).then(res => {
|
||||
if (res.code == 200){
|
||||
this.$message.success("输出节点放置成功")
|
||||
}else {
|
||||
this.$message.error("发生异常请联系管理员")
|
||||
}
|
||||
})
|
||||
this.dialogVisible2 = false
|
||||
this.finalVisible = false
|
||||
},
|
||||
handleChange(value){
|
||||
this.outPuter.targetDatabase = value[0]
|
||||
this.toTable = value[1]
|
||||
},
|
||||
getDatabaseMessage(){
|
||||
extractDataName().then(res => {
|
||||
this.tt = res.data
|
||||
})
|
||||
},
|
||||
SelectionChange(val){
|
||||
val.forEach(res => {
|
||||
this.tableFields.push(res.asField)
|
||||
this.sourceField.push(res.field)
|
||||
})
|
||||
},
|
||||
todoSelect(){
|
||||
addSelect(this.joinCheck).then(res => {
|
||||
if (res.code == 200){
|
||||
this.$message.success("操作成功")
|
||||
}else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
this.dialogVisible1 = false
|
||||
},
|
||||
findFormValue(){
|
||||
this.dialogVisible = false
|
||||
this.taskOpen = false
|
||||
},
|
||||
openForm(data){
|
||||
let textWrap = data.attrs.label.textWrap;
|
||||
if (textWrap.text == "表"){
|
||||
console.log("表节点ID=>"+data.id);
|
||||
this.tableDataNodeId.push(data.id)
|
||||
this.dialogVisible = true;
|
||||
this.taskOpen=true;
|
||||
}
|
||||
if (textWrap.text == "联查"){
|
||||
this.dialogVisible1 = true;
|
||||
this.joinCheck.nodeId = data.id
|
||||
console.log("联查节点ID=>"+data.id);
|
||||
const edges = this.graph.getEdges().filter(edge => {
|
||||
return edge.getSourceNode().id === data.id || edge.getTargetNode().id === data.id;
|
||||
});
|
||||
|
||||
const neighbors = [];
|
||||
edges.forEach(edge => {
|
||||
const otherNodeId = edge.getSourceNode().id === data.id ? edge.getTargetNode().id : edge.getSourceNode().id;
|
||||
if (!neighbors.includes(otherNodeId)) {
|
||||
neighbors.push(otherNodeId);
|
||||
}
|
||||
});
|
||||
this.neighbors = neighbors;
|
||||
this.joinCheck.leftNodeId = neighbors[0]
|
||||
this.joinCheck.rightNodeId = neighbors[1]
|
||||
selectByOne(neighbors[0]).then(res =>{
|
||||
this.options1 = res.data
|
||||
})
|
||||
selectByOne(neighbors[1]).then(res =>{
|
||||
this.options2 = res.data
|
||||
})
|
||||
selectByNodeId(JSON.stringify(this.neighbors)).then(res => {
|
||||
this.nodeList = res.data
|
||||
})
|
||||
}
|
||||
|
||||
if (textWrap.text == "导出"){
|
||||
this.outPuter.nodeId = data.id
|
||||
console.log("导出节点ID=>"+data.id);
|
||||
this.dialogVisible2 = true
|
||||
findBySelectId(this.neighbors[0]).then(res => {
|
||||
if (res.data == null){
|
||||
seeTableField(this.tableDataNodeId).then(res => {
|
||||
this.fields = res.data
|
||||
})
|
||||
}else{
|
||||
seeTableField(this.neighbors).then(res => {
|
||||
this.fields = res.data
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//todo 鼠标划过节点在显示连接桩
|
||||
nodeAddEvent() {
|
||||
const { graph } = this;
|
||||
const container = document.getElementById("container");
|
||||
const changePortsVisible = (visible) => {
|
||||
const ports = container.querySelectorAll(".x6-port-body");
|
||||
for (let i = 0, len = ports.length; i < len; i = i + 1) {
|
||||
ports[i].style.visibility = visible ? "visible" : "hidden";
|
||||
}
|
||||
};
|
||||
this.graph.on("node:mouseenter", () => {
|
||||
changePortsVisible(true);
|
||||
});
|
||||
this.graph.on("node:mouseleave", () => {
|
||||
changePortsVisible(false);
|
||||
});
|
||||
this.graph.on("node:dblclick",(evt) =>{
|
||||
let data = evt.node.store.data;
|
||||
this.nodesIds = data.id;
|
||||
this.openForm(data)
|
||||
})
|
||||
//todo 节点绑定点击事件
|
||||
this.graph.on("node:click", ({ e, x, y, node, view }) => {
|
||||
|
||||
// 判断是否有选中过节点
|
||||
if (this.curSelectNode) {
|
||||
// 移除选中状态
|
||||
this.curSelectNode.removeTools();
|
||||
// 判断两次选中节点是否相同
|
||||
if (this.curSelectNode !== node) {
|
||||
node.addTools([
|
||||
{
|
||||
name: "boundary",
|
||||
args: {
|
||||
attrs: {
|
||||
fill: "#16B8AA",
|
||||
stroke: "#2F80EB",
|
||||
strokeWidth: 1,
|
||||
fillOpacity: 0.1,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "button-remove",
|
||||
args: {
|
||||
x: "100%",
|
||||
y: 0,
|
||||
offset: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
this.curSelectNode = node;
|
||||
} else {
|
||||
this.curSelectNode = null;
|
||||
}
|
||||
} else {
|
||||
this.curSelectNode = node;
|
||||
node.addTools([
|
||||
{
|
||||
name: "boundary",
|
||||
args: {
|
||||
attrs: {
|
||||
fill: "#16B8AA",
|
||||
stroke: "#2F80EB",
|
||||
strokeWidth: 1,
|
||||
fillOpacity: 0.1,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "button-remove",
|
||||
args: {
|
||||
x: "100%",
|
||||
y: 0,
|
||||
offset: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
//todo 连线绑定悬浮事件
|
||||
this.graph.on("cell:mouseenter", ({ cell }) => {
|
||||
if (cell.shape == "edge") {
|
||||
cell.addTools([
|
||||
{
|
||||
name: "button-remove",
|
||||
args: {
|
||||
x: "100%",
|
||||
y: 0,
|
||||
offset: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
cell.setAttrs({
|
||||
line: {
|
||||
stroke: "#409EFF",
|
||||
},
|
||||
});
|
||||
cell.zIndex = 99; // 保证当前悬停的线在最上层,不会被遮挡
|
||||
}
|
||||
});
|
||||
this.graph.on("cell:mouseleave", ({ cell }) => {
|
||||
if (cell.shape === "edge") {
|
||||
cell.removeTools();
|
||||
cell.setAttrs({
|
||||
line: {
|
||||
stroke: "black",
|
||||
},
|
||||
});
|
||||
cell.zIndex = 1; // 保证未悬停的线在下层,不会遮挡悬停的线
|
||||
}
|
||||
});
|
||||
},
|
||||
// todo 拖动后松开鼠标触发事件
|
||||
handleDragEnd(e, item) {
|
||||
// 可以获取到最后拖动后松开鼠标时的坐标和拖动的节点相关信息
|
||||
this.addHandleNode(
|
||||
e.pageX - 500,
|
||||
e.pageY - 200,
|
||||
new Date().getTime(),
|
||||
item.image,
|
||||
item.name
|
||||
);
|
||||
},
|
||||
initGraph() {
|
||||
const container = document.getElementById("container");
|
||||
this.graph = new Graph({
|
||||
container: container, // 画布容器
|
||||
width: container.offsetWidth, // 画布宽
|
||||
height: container.offsetHeight, // 画布高
|
||||
background: false, // 背景(透明)
|
||||
snapline: true, // 对齐线
|
||||
// 配置连线规则
|
||||
connecting: {
|
||||
snap: true, // 自动吸附
|
||||
allowBlank: false, // 是否允许连接到画布空白位置的点
|
||||
allowMulti: true, // 是否允许在相同的起始节点和终止之间创建多条边
|
||||
allowLoop: true, // 是否允许创建循环连线,即边的起始节点和终止节点为同一节点
|
||||
highlight: true, // 拖动边时,是否高亮显示所有可用的节点
|
||||
highlighting: {
|
||||
magnetAdsorbed: {
|
||||
name: "stroke",
|
||||
args: {
|
||||
attrs: {
|
||||
fill: "#5F95FF",
|
||||
stroke: "#5F95FF",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
router: {
|
||||
// 对路径添加额外的点
|
||||
name: "orth",
|
||||
},
|
||||
connector: {
|
||||
// 边渲染到画布后的样式
|
||||
name: "rounded",
|
||||
args: {
|
||||
radius: 8,
|
||||
},
|
||||
},
|
||||
},
|
||||
panning: {
|
||||
enabled: false,
|
||||
},
|
||||
mousewheel: {
|
||||
enabled: true, // 支持滚动放大缩小
|
||||
zoomAtMousePosition: true,
|
||||
modifiers: "ctrl",
|
||||
minScale: 0.5,
|
||||
maxScale: 3,
|
||||
},
|
||||
grid: {
|
||||
type: "dot",
|
||||
size: 20, // 网格大小 10px
|
||||
visible: true, // 渲染网格背景
|
||||
args: {
|
||||
color: "#a0a0a0", // 网格线/点颜色
|
||||
thickness: 2, // 网格线宽度/网格点大小
|
||||
},
|
||||
},
|
||||
});
|
||||
this.nodeAddEvent()
|
||||
},
|
||||
//添加节点到画布
|
||||
addHandleNode(x, y, id, image, name) {
|
||||
this.graph.addNode({
|
||||
id: id,
|
||||
shape: "image", // 指定使用何种图形,默认值为 'rect'
|
||||
x: x,
|
||||
y: y,
|
||||
width: 60,
|
||||
height: 60,
|
||||
imageUrl: image,
|
||||
attrs: {
|
||||
body: {
|
||||
stroke: "#ffa940",
|
||||
fill: "#ffd591",
|
||||
},
|
||||
label: {
|
||||
textWrap: {
|
||||
width: 90,
|
||||
text: name,
|
||||
},
|
||||
fill: "black",
|
||||
fontSize: 12,
|
||||
refX: 0.5,
|
||||
refY: "100%",
|
||||
refY2: 4,
|
||||
textAnchor: "middle",
|
||||
textVerticalAnchor: "top",
|
||||
},
|
||||
},
|
||||
ports: {
|
||||
groups: {
|
||||
group1: {
|
||||
position: [30, 30],
|
||||
},
|
||||
},
|
||||
items: [
|
||||
{
|
||||
group: "group1",
|
||||
id: "port1",
|
||||
attrs: {
|
||||
circle: {
|
||||
r: 6,
|
||||
magnet: true,
|
||||
stroke: "#ffffff",
|
||||
strokeWidth: 2,
|
||||
fill: "#5F95FF",
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
zIndex: 10,
|
||||
});
|
||||
},
|
||||
//todo 保存画布,并提交
|
||||
saveActive() {
|
||||
console.log(this.graph.toJSON(), "graph");
|
||||
console.log(this.graph.getNodes(), "node");
|
||||
},
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
this.initGraph()
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.dashboard-container {
|
||||
.antvBox {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: black;
|
||||
padding-top: 20px;
|
||||
.menu-list {
|
||||
height: 100%;
|
||||
width: 300px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
> div {
|
||||
margin-bottom: 10px;
|
||||
border-radius: 5px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
color: black;
|
||||
width: 105px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
justify-content: center;
|
||||
img {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
}
|
||||
P {
|
||||
width: 90px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
.canvas-card {
|
||||
width: 1700px;
|
||||
height: 750px;
|
||||
box-sizing: border-box;
|
||||
> div {
|
||||
width: 1400px;
|
||||
height: 750px;
|
||||
border: 2px dashed #2149ce;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
<template>
|
||||
<div class="app-container home">
|
||||
|
||||
<iframe width="680" height="260" frameborder="0" scrolling="no" hspace="0" src="https://i.tianqi.com/?c=code&a=getcode&id=13&icon=1&py=pudong"/>
|
||||
<iframe width="550" height="300" frameborder="0" scrolling="no" hspace="0" src=" https://www.beijing-time.org/"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<template>
|
||||
<div>
|
||||
{{myapi}}
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<el-form ref="form" :model="myapi" label-width="120px" :rules="rules">
|
||||
|
@ -12,44 +13,133 @@
|
|||
<el-form-item label="产品介绍:">
|
||||
{{myapi.productContent}}
|
||||
</el-form-item>
|
||||
<el-form-item label="重要路由:">
|
||||
{{myapi.apiRouter}}
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<el-button type="info" @click="test()">测试</el-button>
|
||||
<el-button type="primary">立即申请</el-button>
|
||||
<span v-if="myapi.remark=='是'">
|
||||
<el-button type="info" @click="test(myapi)">立即使用</el-button>
|
||||
<el-button type="primary" @click="apply(myapi)">续约</el-button>
|
||||
</span>
|
||||
<span v-if="myapi.remark=='否'">
|
||||
<el-button type="info" @click="test(myapi)">测试</el-button>
|
||||
<el-button type="primary" @click="apply(myapi)">立即申请</el-button>
|
||||
</span>
|
||||
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
<el-divider></el-divider>
|
||||
|
||||
|
||||
<el-row class="first-row" >
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark" >
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="API文档" name="first">
|
||||
<el-form ref="form" :model="myapi" label-width="120px" :rules="rules">
|
||||
<el-form-item label="接口地址:" >
|
||||
{{myapi.productName}}
|
||||
{{myapi.apiAddress}}
|
||||
</el-form-item>
|
||||
<el-form-item label="返回格式:">
|
||||
{{myapi.productPrice}}元/次
|
||||
{{myapi.returnFormat}}
|
||||
</el-form-item>
|
||||
<el-form-item label="请求方式:">
|
||||
{{myapi.productContent}}
|
||||
{{myapi.requestMethod}}
|
||||
</el-form-item>
|
||||
<el-form-item label="简介:">
|
||||
{{myapi.productContent}}
|
||||
<el-form-item label="请求Header:">
|
||||
<el-table
|
||||
:data="heanderData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
label="名称"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.headerName}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="值"
|
||||
width="250">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.headerValue}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求参数说明:">
|
||||
{{myapi.productContent}}
|
||||
<el-table
|
||||
:data="requestData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
label="参数名称"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.requestName}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="参数类型"
|
||||
width="250">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.requestType}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="是否必填"
|
||||
width="250">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.requestIfmust}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="说明"
|
||||
width="250">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
{{scope.row.requestContent}}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
<el-form-item label="返回参数说明:">
|
||||
{{myapi.productContent}}
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="JSON返回示例:">
|
||||
{{myapi.productContent}}
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="XML返回示例:">
|
||||
{{myapi.productContent}}
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
@ -58,13 +148,168 @@
|
|||
</el-tabs>
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
|
||||
<!--测试对话框-->
|
||||
<el-dialog
|
||||
title="接口测试"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose">
|
||||
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="接口名称" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.productName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="接口地址" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.apiAddress" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求方式" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.requestMethod" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="请求参数" prop="pass" v-if="ruleForm.productName=='手机号码归属地' && ruleForm.productName=='万年历'" >
|
||||
<el-input type="text" v-model="ruleForm.parameter" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<div v-if="ruleForm.productName=='新闻头条'">
|
||||
<el-form-item label="type" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.type" autocomplete="off"></el-input>
|
||||
<span>说明:支持类型top(推荐,默认)guonei(国内)guoji(国际)yule(娱乐)tiyu(体育)junshi(军事)keji(科技)caijing(财经)youxi(游戏)qiche(汽车)jiankang(健康)</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="page" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.page" autocomplete="off"></el-input>
|
||||
<span>说明:当前页数, 默认1, 最大50</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="page_size" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.pageSize" autocomplete="off"></el-input>
|
||||
<span>说明:每页返回条数, 默认30 , 最大30</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="is_filter" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.isFilter" autocomplete="off"></el-input>
|
||||
<span>说明:是否只返回有内容详情的新闻, 1:是, 默认0</span>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-if="ruleForm.productName=='身份证实名认证'">
|
||||
<el-form-item label="身份证号码" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.idcard" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.realname" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否返回单号" prop="pass" >
|
||||
<el-input type="text" v-model="ruleForm.orderid" autocomplete="off"></el-input>
|
||||
<span>传1时返回单号,默认不返回单号(建议传入)</span>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<!--一个参数-->
|
||||
<el-form-item v-if="ruleForm.productName=='手机号码归属地' && ruleForm.productName=='万年历'">
|
||||
<el-button type="primary" @click="submitForm(ruleForm)">发送请求</el-button>
|
||||
</el-form-item>
|
||||
<!--多个参数-->
|
||||
<el-form-item v-if="ruleForm.productName=='新闻头条' ||ruleForm.productName=='身份证实名认证' " >npm
|
||||
<el-button type="primary" @click="newsForm(ruleForm)">发送请求</el-button>
|
||||
</el-form-item>
|
||||
<!--无参数-->
|
||||
<el-form-item v-if="ruleForm.productName=='朋友圈文案'" >
|
||||
<el-button type="primary" @click="noForm(ruleForm)">发送请求</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<pre id="json-display">
|
||||
|
||||
</pre>
|
||||
<ul id="news-list">
|
||||
<!-- 这里将动态插入新闻项 -->
|
||||
</ul>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">返回</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!--支付规格选择对话框-->
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible1"
|
||||
width="50%"
|
||||
:before-close="handleClose1">
|
||||
|
||||
|
||||
<span style="color: #1ab394">请选择申请规格</span>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
label="支付规格"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.productSpecificationName }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="价格"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-popover trigger="hover" placement="top">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
<el-tag size="medium">{{ scope.row.middlePrice }}</el-tag>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.row)">选择</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-divider></el-divider>
|
||||
<el-form ref="form" :model="newapi" label-width="120px" :rules="rules">
|
||||
<el-form-item label="产品名称:" >
|
||||
{{newapi.productName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="产品规格:" >
|
||||
{{newapi.productSpecification}}
|
||||
</el-form-item>
|
||||
<el-form-item label="产品价格:" v-if="newapi.productSpecification=='按次查询'">
|
||||
{{newapi.productPrice}}元/次
|
||||
</el-form-item>
|
||||
<el-form-item label="支付价格:" v-if="newapi.productSpecification!='按次查询'">
|
||||
{{newapi.productPrice}}元
|
||||
</el-form-item>
|
||||
<el-form-item label="产品介绍:">
|
||||
{{newapi.productContent}}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click=" confirmSelection">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
export default {
|
||||
import {
|
||||
findcount,
|
||||
getHeader, getRequest,
|
||||
iftest,
|
||||
reducetestcount,
|
||||
sendrequest,
|
||||
sendrequest1,
|
||||
sendrequest2
|
||||
} from "@/api/apitest/apitest";
|
||||
import api from "js-cookie";
|
||||
import {companyauthentication, ifcompanyauthentication} from "@/api/authentication/authentication";
|
||||
import {selectproductspecification} from "@/api/market/product";
|
||||
import myapi from "@/views/market/myapi/index.vue";
|
||||
|
||||
export default {
|
||||
name: "Apitest",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
|
@ -78,7 +323,16 @@
|
|||
productPrice: '',
|
||||
productContent: ''
|
||||
},
|
||||
activeName: 'first'
|
||||
activeName: 'first',
|
||||
dialogVisible: false,
|
||||
dialogVisible1: false,
|
||||
ruleForm:{},
|
||||
tableData:[],
|
||||
newapi:{},
|
||||
//请求头部
|
||||
heanderData:[],
|
||||
//请求参数
|
||||
requestData:[]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
|
@ -87,10 +341,256 @@
|
|||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//获取请求头部
|
||||
getHeader(myapi){
|
||||
getHeader(myapi).then(response=>{
|
||||
this.heanderData=response.data
|
||||
})
|
||||
},
|
||||
//获取请求参数
|
||||
|
||||
getRequest(myapi){
|
||||
getRequest(myapi).then(response=>{
|
||||
this.requestData=response.data
|
||||
})
|
||||
},
|
||||
//标签页
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
},
|
||||
//测试
|
||||
test(myapi){
|
||||
//判断测试次数是否<=0
|
||||
findcount(myapi).then(response=>{
|
||||
alert(response.data.testCount)
|
||||
if (response.data.testCount<=0){
|
||||
alert("使用次数已到期,若像继续使用请先充值!")
|
||||
}else{
|
||||
this.dialogVisible=true
|
||||
this.ruleForm={
|
||||
productName: myapi.productName,
|
||||
apiAddress: myapi.apiAddress,
|
||||
requestMethod: myapi.requestMethod,
|
||||
apiRouter: myapi.apiRouter
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
//立即申请
|
||||
apply(myapi){
|
||||
//先判断是否已经进行了认证
|
||||
ifcompanyauthentication().then(response=>{
|
||||
if (response.code!=200){
|
||||
alert(response.msg)
|
||||
}else {
|
||||
this.getproduct(myapi)
|
||||
this.dialogVisible1=true
|
||||
this.newapi={
|
||||
productName: myapi.productName,
|
||||
productPrice: myapi.productPrice,
|
||||
productContent: myapi.productContent,
|
||||
productSpecification: myapi.productSpecification
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//关闭测试对话框
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
//关闭支付规格选择对话框
|
||||
handleClose1(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
//产品规格
|
||||
getproduct(specification){
|
||||
selectproductspecification(specification).then(response=>{
|
||||
this.tableData=response.data
|
||||
})
|
||||
},
|
||||
//选择申请规格
|
||||
handleEdit(row){
|
||||
this.newapi={
|
||||
productName:this.myapi.productName,
|
||||
productSpecification: row.productSpecificationName,
|
||||
productPrice: row.middlePrice,
|
||||
productContent:this.myapi.productContent,
|
||||
}
|
||||
},
|
||||
//测试发送请求 无参数
|
||||
noForm(ruleForm){
|
||||
sendrequest2(ruleForm).then(response=>{
|
||||
console.log(response)
|
||||
const jsonData1 = response.data; // 假设response.data是解析后的JSON对象
|
||||
|
||||
// 解析JSON字符串为JavaScript对象
|
||||
const jsonData = JSON.parse(jsonData1);
|
||||
|
||||
// 创建一个容器来展示数据
|
||||
var container = document.getElementById('news-list');
|
||||
// 清空容器内容
|
||||
container.innerHTML = '';
|
||||
|
||||
// 创建一个div来存放结果
|
||||
var resultDiv = document.createElement('div');
|
||||
|
||||
// 检查jsonData.reason
|
||||
if (jsonData.reason !== undefined) {
|
||||
// 移除reason中的感叹号(如果存在)
|
||||
resultDiv.innerHTML += '<h2>Reason: ' + jsonData.reason.replace(/!/g, '') + '</h2>';
|
||||
} else {
|
||||
resultDiv.innerHTML += '<h2>Reason: Not available</h2>';
|
||||
}
|
||||
// 检查jsonData.result
|
||||
if (jsonData.result !== undefined) {
|
||||
// 添加result中的信息,但使用正确的字段名
|
||||
resultDiv.innerHTML += '<p>Content: ' + jsonData.result.content + '</p>';
|
||||
resultDiv.innerHTML += '<p>Source: ' + jsonData.result.source + '</p>';
|
||||
// 注意:原始JSON中没有realname, idcard, orderid, res这些字段
|
||||
} else {
|
||||
resultDiv.innerHTML += '<p>Result information is not available.</p>';
|
||||
}
|
||||
// 将结果div添加到容器中
|
||||
container.appendChild(resultDiv);
|
||||
})
|
||||
//测试次数-1
|
||||
reducetestcount(this.myapi).then(response=>{})
|
||||
},
|
||||
//测试发送请求 单个参数
|
||||
submitForm(ruleForm){
|
||||
sendrequest(ruleForm).then(response=>{
|
||||
const jsonData = response.data;
|
||||
// 使用JSON.stringify()来格式化JSON数据,并设置缩进为2个空格
|
||||
const formattedJson = JSON.stringify(jsonData, null, 2);
|
||||
// 获取<pre>元素并设置其innerHTML为格式化的JSON字符串
|
||||
document.getElementById('json-display').innerHTML = formattedJson;
|
||||
})
|
||||
|
||||
//测试次数-1
|
||||
reducetestcount(this.myapi).then(response=>{
|
||||
})
|
||||
|
||||
},
|
||||
//测试发送请求 多个参数
|
||||
newsForm(ruleForm) {
|
||||
if (ruleForm.productName=='新闻头条'){
|
||||
sendrequest1(ruleForm).then(response => {
|
||||
console.log(response)
|
||||
const jsonData1 = response.data; // 假设response.data是解析后的JSON对象
|
||||
|
||||
// 解析JSON字符串为JavaScript对象
|
||||
const jsonData = JSON.parse(jsonData1);
|
||||
|
||||
// 创建一个容器来展示数据
|
||||
var container = document.getElementById('news-list');
|
||||
// 清空容器内容
|
||||
container.innerHTML = '';
|
||||
|
||||
// 创建一个div来存放结果
|
||||
var resultDiv = document.createElement('div');
|
||||
|
||||
// 检查jsonData.reason
|
||||
if (jsonData.reason !== undefined) {
|
||||
// 移除reason中的感叹号(如果存在)
|
||||
resultDiv.innerHTML += '<h2>Reason: ' + jsonData.reason.replace(/!/g, '') + '</h2>';
|
||||
} else {
|
||||
resultDiv.innerHTML += '<h2>Reason: Not available</h2>';
|
||||
}
|
||||
// 检查jsonData.result
|
||||
if (jsonData.result !== undefined) {
|
||||
// 添加其他结果信息
|
||||
resultDiv.innerHTML += '<p>Stat: ' + jsonData.result.stat + '</p>';
|
||||
resultDiv.innerHTML += '<p>Page: ' + jsonData.result.page + '</p>';
|
||||
resultDiv.innerHTML += '<p>Page Size: ' + jsonData.result.pageSize + '</p>';
|
||||
|
||||
// 检查jsonData.result.data
|
||||
if (Array.isArray(jsonData.result.data)) {
|
||||
// 遍历数据并生成HTML
|
||||
jsonData.result.data.forEach(item => {
|
||||
resultDiv.innerHTML += `
|
||||
<div>
|
||||
<h3>${item.title}</h3>
|
||||
<p>Unique Key: ${item.uniquekey}</p>
|
||||
<p>Date: ${item.date}</p>
|
||||
<p>Category: ${item.category}</p>
|
||||
<p>Author: ${item.author_name}</p>
|
||||
<p>URL: <a href="${item.url.replace(/\\/g, '')}">${item.url}</a></p>
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
} else {
|
||||
resultDiv.innerHTML += '<p>No data available.</p>';
|
||||
}
|
||||
} else {
|
||||
resultDiv.innerHTML += '<p>Result information is not available.</p>';
|
||||
}
|
||||
|
||||
// 将结果div添加到容器中
|
||||
container.appendChild(resultDiv);
|
||||
|
||||
});
|
||||
}
|
||||
if (ruleForm.productName=='身份证实名认证'){
|
||||
sendrequest1(ruleForm).then(response => {
|
||||
console.log(response)
|
||||
const jsonData1 = response.data; // 假设response.data是解析后的JSON对象
|
||||
|
||||
// 解析JSON字符串为JavaScript对象
|
||||
const jsonData = JSON.parse(jsonData1);
|
||||
});
|
||||
}},
|
||||
confirmSelection(row) {
|
||||
if (this.selectedRow) {
|
||||
|
||||
// 创建一个容器来展示数据
|
||||
var container = document.getElementById('news-list');
|
||||
// 清空容器内容
|
||||
container.innerHTML = '';
|
||||
|
||||
// 创建一个div来存放结果
|
||||
var resultDiv = document.createElement('div');
|
||||
|
||||
// 检查jsonData.reason
|
||||
if (jsonData.reason !== undefined) {
|
||||
// 移除reason中的感叹号(如果存在)
|
||||
resultDiv.innerHTML += '<h2>Reason: ' + jsonData.reason.replace(/!/g, '') + '</h2>';
|
||||
} else {
|
||||
resultDiv.innerHTML += '<h2>Reason: Not available</h2>';
|
||||
}
|
||||
// 检查jsonData.result
|
||||
if (jsonData.result !== undefined) {
|
||||
// 添加result中的信息
|
||||
resultDiv.innerHTML += '<p>Real Name: ' + jsonData.result.realname + '</p>';
|
||||
resultDiv.innerHTML += '<p>ID Card: ' + jsonData.result.idcard + '</p>';
|
||||
resultDiv.innerHTML += '<p>Order ID: ' + jsonData.result.orderid + '</p>';
|
||||
resultDiv.innerHTML += '<p>Result: ' + jsonData.result.res + '</p>';
|
||||
} else {
|
||||
resultDiv.innerHTML += '<p>Result information is not available.</p>';
|
||||
// 这里假设你有一个发起支付的方法,传入所选行的数据
|
||||
// startPayment(this.selectedRow);
|
||||
console.log(row)
|
||||
window.open("http://localhost:9701/alipay/pay?middlePrice="+row.middlePrice)
|
||||
this.$message.success('付款成功')
|
||||
|
||||
}
|
||||
|
||||
// 将结果div添加到容器中
|
||||
container.appendChild(resultDiv);
|
||||
|
||||
}
|
||||
//测试次数-1
|
||||
reducetestcount(this.myapi).then(response=>{})
|
||||
}
|
||||
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
|
@ -98,6 +598,8 @@
|
|||
//生命周期 -` 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
this.myapi = this.$route.query.myapi
|
||||
this.getHeader(this.myapi)
|
||||
this.getRequest((this.myapi))
|
||||
if (typeof this.myapi === 'string' && this.myapi.trim() !== '') {
|
||||
try {
|
||||
this.myapi = JSON.parse(this.myapi);
|
||||
|
@ -128,4 +630,13 @@
|
|||
.first-row {
|
||||
margin-bottom: 20px; /* 创建一个空间,以便可以清晰地看到边框 */
|
||||
}
|
||||
pre {
|
||||
background-color: #f4f4f4; /* 浅灰色背景 */
|
||||
border: 1px solid #ddd; /* 边框 */
|
||||
padding: 10px; /* 内边距 */
|
||||
overflow-x: auto; /* 水平滚动条(如果需要的话) */
|
||||
white-space: pre-wrap; /* 保留空白符序列,但是正常地进行换行 */
|
||||
word-wrap: break-word; /* 防止长单词或URL地址破坏布局 */
|
||||
font-family: monospace, Menlo, Courier, 'Courier New', monospace; /* 使用等宽字体 */
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,262 @@
|
|||
<template>
|
||||
<div>
|
||||
<h2>实名认证</h2>
|
||||
<el-divider></el-divider>
|
||||
<span style="color: #1482f0">!实名认证决定了账号属性。实名认证一经通过,后续付款方的银行开户名必须与聚合实名信息一致,否则不给予入账!且个人和企业认证不能互转。</span><br><br>
|
||||
<h4>选择认证类型:</h4>
|
||||
<center>
|
||||
<!--个人认证-->
|
||||
<div style="width: 70%;">
|
||||
<el-row style="border: 2px solid #e0e0e0;">
|
||||
<el-col :span="4"><div class="grid-content bg-purple"><center><h2>个人认证</h2></center></div></el-col>
|
||||
<el-col :span="12"><div class="grid-content bg-purple-light">
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<span style="color: #1482f0">认证方式</span> 支持个人身份证认证、人脸识别实时认证
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<span style="color: #1482f0">使用限制</span> 个人基础认证不支持部分「企业专用」类接口
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
</div></el-col>
|
||||
<el-col :span="4" style="margin-top: 20px;"><div class="grid-content bg-purple">
|
||||
<center> <el-button type="primary" @click="tocompanyauthentication(1)">立即认证</el-button></center>
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
</div><br><br><br>
|
||||
<!--企业认证-->
|
||||
<div style="width: 70%;">
|
||||
<el-row style="border: 2px solid #e0e0e0;">
|
||||
<el-col :span="4"><div class="grid-content bg-purple"><center><h2>企业认证</h2></center></div></el-col>
|
||||
<el-col :span="12"><div class="grid-content bg-purple-light">
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<span style="color: #1482f0">适用群体</span> 企业、党政及国家机关、事业单位、民办非企业单位、社会团体、个体工商户等
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<span style="color: #1482f0">基础认证</span> 上传企业营业执照快速认证,支持程序代码方式(api)调用接口
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark">
|
||||
<span style="color: #1482f0">高级认证</span> 通过对公打款、法人手机验证等方式进行认证,支持API购买(余额支付、支付宝支付、微信支付)
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
</div></el-col>
|
||||
<el-col :span="4" style="margin-top: 20px;"><div class="grid-content bg-purple">
|
||||
<center> <el-button type="primary" @click="tocompanyauthentication(2)">立即认证</el-button></center>
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</center>
|
||||
|
||||
<!--企业认证页面对话框-->
|
||||
<el-dialog
|
||||
:title="dialogtitle"
|
||||
:visible.sync="dialogVisible"
|
||||
width="50%"
|
||||
:before-close="handleClose">
|
||||
<!--个人认证-->
|
||||
<div v-if="this.index==1">
|
||||
<h2>基本信息填写</h2><br>
|
||||
<el-form :model="personForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="实名认证附件上传:" prop="pass">
|
||||
<el-upload
|
||||
action="/dev-api/market/user/upload"
|
||||
list-type="picture-card"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:on-remove="handleRemove"
|
||||
:on-success="handleSuccess1"
|
||||
:limit="2">
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisiblepicture">
|
||||
<img width="100%" :src="dialogImageUrl" alt="">
|
||||
</el-dialog>
|
||||
<span>请上传清晰完整的营业执照副本照片</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="公司名称:" prop="companyName">
|
||||
<el-input type="text" v-model="personForm.companyName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="真实姓名:" prop="USCI">
|
||||
<el-input type="text" v-model="personForm.USCI" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="证件类型:" prop="companyLeader">
|
||||
<span>居民身份证</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="证件号码:" prop="registrantName">
|
||||
<el-input type="text" v-model="personForm.registrantName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码:" prop="registrantPhone">
|
||||
<el-input type="text" v-model="personForm.registrantPhone" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<center>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="personyes()">提交审核</el-button>
|
||||
</center>
|
||||
|
||||
</div>
|
||||
<!--企业认证-->
|
||||
<div v-if="this.index==2">
|
||||
<h2>基本信息填写</h2><br>
|
||||
<el-form :model="companyForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="企业营业执照副本:" prop="pass">
|
||||
<el-upload
|
||||
action="/dev-api/market/company/upload"
|
||||
list-type="picture-card"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:on-remove="handleRemove"
|
||||
:on-success="handleSuccess"
|
||||
:limit="1">
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
<el-dialog :visible.sync="dialogVisiblepicture">
|
||||
<img width="100%" :src="dialogImageUrl" alt="">
|
||||
</el-dialog>
|
||||
<span>请上传清晰完整的营业执照副本照片</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="公司名称:" prop="companyName">
|
||||
<el-input type="text" v-model="companyForm.companyName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="社会统一编码:" prop="USCI">
|
||||
<el-input type="text" v-model="companyForm.usci" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="企业法人姓名:" prop="companyLeader">
|
||||
<el-input type="text" v-model="companyForm.companyLeader" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人姓名:" prop="registrantName">
|
||||
<el-input type="text" v-model="companyForm.registrantName" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人电话:" prop="registrantPhone">
|
||||
<el-input type="text" v-model="companyForm.registrantPhone" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人职位:" prop="registrantPosition">
|
||||
<el-input type="text" v-model="companyForm.registrantPosition" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="公司地址:" prop="companyAddress">
|
||||
<el-input type="text" v-model="companyForm.companyAddress" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<center>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="companyyes(companyForm)">提交审核</el-button>
|
||||
</center>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {companyauthentication} from "@/api/authentication/authentication";
|
||||
|
||||
export default {
|
||||
name: "Authentication",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
dialogVisible:false,
|
||||
index:'',
|
||||
dialogtitle:'',
|
||||
companyForm:{},
|
||||
personForm:{
|
||||
personCardPicture:[]
|
||||
},
|
||||
dialogImageUrl: '',
|
||||
dialogVisiblepicture: false
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//去企业实名认证页面
|
||||
tocompanyauthentication(index){
|
||||
this.index=index
|
||||
if (this.index === 1) {
|
||||
this.dialogtitle= '个人认证';
|
||||
} else if (this.index === 2) {
|
||||
this.dialogtitle= '企业认证';
|
||||
}
|
||||
this.dialogVisible=true
|
||||
|
||||
},
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
//个人认证上交
|
||||
personyes(){
|
||||
|
||||
this.dialogVisible=false
|
||||
},
|
||||
//企业认证上交
|
||||
companyyes(companyForm){
|
||||
companyauthentication(companyForm).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){}
|
||||
this.dialogVisible=false
|
||||
})
|
||||
},
|
||||
//图片上传
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url;
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
//单图片上传
|
||||
handleSuccess(response,file,fileList){
|
||||
this.companyForm.businessLicense=response.data
|
||||
},
|
||||
//多图片上传
|
||||
handleSuccess1(response,file,fileList){
|
||||
this.personForm.personCardPicture=[]
|
||||
for(const i in fileList){
|
||||
this.personForm.personCardPicture.push(fileList[i]).response.data
|
||||
}
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,133 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8"><div class="grid-content bg-purple">
|
||||
|
||||
</div></el-col>
|
||||
<el-col :span="16"><div class="grid-content bg-purple">
|
||||
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="用户名" prop="userName">
|
||||
{{ruleForm.userName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="用户类型" prop="">
|
||||
<span>个人</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="phonenumber">
|
||||
{{ruleForm.phonenumber}}
|
||||
</el-form-item>
|
||||
<el-form-item label="绑定邮箱" prop="email">
|
||||
{{ruleForm.email}} <span style="color: #1482f0" @click="toemail">去绑定>></span>
|
||||
</el-form-item>
|
||||
<el-form-item label="认证信息" prop="userName">
|
||||
<span style="color: #1482f0" @click="toauthentication">去实名认证>>>></span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div></el-col>
|
||||
</el-row>
|
||||
|
||||
<!--绑定邮箱-->
|
||||
<el-dialog
|
||||
title="邮箱绑定"
|
||||
:visible.sync="dialogVisible"
|
||||
width="50%"
|
||||
:before-close="handleClose">
|
||||
<el-form :model="EmailForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input type="text" v-model="EmailForm.email" autocomplete="off" placeholder="请输入绑定的邮箱"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input type="text" v-model="EmailForm.code" placeholder="请输入验证码"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="docode(EmailForm.email)">发送验证码</el-button>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="yes(EmailForm)">确 定</el-button>
|
||||
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {linkemail,sendcode1} from "@/api/authentication/message";
|
||||
|
||||
export default {
|
||||
name: "Easymessage",
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
ruleForm:{},
|
||||
EmailForm:{},
|
||||
dialogVisible: false
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//绑定邮箱
|
||||
toemail(){
|
||||
this.dialogVisible=true
|
||||
},
|
||||
//关闭绑定邮箱对话框
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
//发送邮箱验证码
|
||||
docode(email){
|
||||
sendcode1(email).then(response=>{
|
||||
alert(response.data)
|
||||
})
|
||||
},
|
||||
//提交邮箱绑定
|
||||
yes(EmailForm){
|
||||
linkemail(EmailForm).then(response=>{
|
||||
if (response.code===200){
|
||||
this.dialogVisible=false
|
||||
}
|
||||
})
|
||||
},
|
||||
//去实名认证
|
||||
toauthentication(){
|
||||
this.$router.push("/authentication/index")
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -73,19 +73,6 @@ export default {
|
|||
myapiList:[],
|
||||
myapi:{},
|
||||
ruleForm:{},
|
||||
options: [{
|
||||
value: '选项1',
|
||||
label: '全部'
|
||||
}, {
|
||||
value: '选项2',
|
||||
label: '申请中'
|
||||
}, {
|
||||
value: '选项3',
|
||||
label: '申请通过'
|
||||
}, {
|
||||
value: '选项4',
|
||||
label: '审核失败'
|
||||
}],
|
||||
value: ''
|
||||
};
|
||||
},
|
||||
|
@ -102,6 +89,7 @@ export default {
|
|||
//我购买的api列表
|
||||
getList(){
|
||||
selectmyapiList(this.ruleForm).then(response=>{
|
||||
console.log(response)
|
||||
this.myapiList=response.data
|
||||
})
|
||||
},
|
||||
|
@ -111,13 +99,14 @@ export default {
|
|||
},
|
||||
//测试
|
||||
test(myapi) {
|
||||
if (myapi && myapi.productAddress) {
|
||||
let url = myapi.productAddress; // 使用 product.address 的值
|
||||
window.open(url, '_blank'); // 在新标签页中打开 URL
|
||||
} else {
|
||||
console.error('无效的 address 或 product 未定义');
|
||||
// 或者您可以根据需要处理错误情况
|
||||
}
|
||||
// if (myapi && myapi.productAddress) {
|
||||
// let url = myapi.productAddress; // 使用 product.address 的值
|
||||
// window.open(url, '_blank'); // 在新标签页中打开 URL
|
||||
// } else {
|
||||
// console.error('无效的 address 或 product 未定义');
|
||||
// // 或者您可以根据需要处理错误情况
|
||||
// }
|
||||
this.$router.push({path:"/apitest/index",query:{myapi:JSON.stringify(myapi)}})
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
|
|
|
@ -0,0 +1,368 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card class="box-card" style="width: 94%;transform: translateX(3%);margin-top: 30px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>筛选搜索</span>
|
||||
<el-button style="float: right; padding: 3px 30px" type="text" @click="findShop">查询结果</el-button>
|
||||
<el-button style="float: right; padding: 3px 10px" type="text" @click="chong">重置</el-button>
|
||||
</div>
|
||||
<div class="text item">
|
||||
<el-form ref="form" :model="orders" label-width="100px">
|
||||
<el-form-item>
|
||||
输入搜索:<el-input v-model="orders.productName" placeholder="商品名称" style="width: 180px;margin-right: 50px"></el-input>
|
||||
订单编号:<el-input v-model="orders.ordersNum" placeholder="编号" style="width: 180px;margin-right: 50px"></el-input>
|
||||
订单款项状态:
|
||||
<el-select v-model="orders.ordersState" placeholder="请选择状态" style="margin-right: 30px" clearable>
|
||||
<el-option v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<br/> <br/>
|
||||
选择时间:
|
||||
<el-date-picker v-model="orders.startDate" type="date" placeholder="开始时间" />
|
||||
-----
|
||||
<el-date-picker v-model="orders.endDate" type="date" placeholder="结束时间"/>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<br>
|
||||
<button style="float: right; padding: 3px 10px" type="text" @click="reclaim">回收站</button>
|
||||
<br>
|
||||
<el-card class="box-card" style="width: 94%;transform: translateX(3%);margin-top: 10px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>数据列表</span>
|
||||
<button @click="add(1)" style="float: right; padding: 3px 10px" type="text">添加</button>
|
||||
<button style="float: right; padding: 3px 10px" type="text" @click="getOut">导出</button>
|
||||
</div>
|
||||
|
||||
<el-table :data="arr" style="width: 100%" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="日期" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersLaunchdate }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="购买信息">
|
||||
<el-table-column label="订单编号" width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px"> {{ scope.row.ordersNum }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单所属人" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.userName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="购买详情">
|
||||
<el-table-column prop="province" label="购买接口" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.productName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="订单金额" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersPrice }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单规格" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersSpecification }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单款项状态" width="110" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==0">待支付</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==1">已付款</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==2">未付款</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==4">售后(申请退款)</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==5">已退款</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="ordersUpdate(scope.row)">编辑</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="updateByeExist(scope.row)">删除</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="pay(scope.row)" >支付</el-button>
|
||||
<!-- v-if="scope.row.status === '待支付'"-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination style="float: right"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="orders.pageNum"
|
||||
:page-sizes="[5, 10, 50, 100]"
|
||||
:page-size="orders.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="orders.total">
|
||||
</el-pagination>
|
||||
</el-card>
|
||||
|
||||
<el-dialog
|
||||
:title="addtitle"
|
||||
:visible.sync="addordersoff"
|
||||
width="50%"
|
||||
:before-close="handleClose">
|
||||
<div v-if="this.index==1">
|
||||
<h2>管理员慎重填写</h2><br>
|
||||
<el-form :model="ordersForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="订单编号:" prop="ordersNum">
|
||||
<el-input type="text" v-model="ordersForm.ordersNum" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单产品:" prop="ordersProduct">
|
||||
<el-input type="text" v-model="ordersForm.ordersProduct" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单所属人:" prop="ordersUser">
|
||||
<el-input type="text" v-model="ordersForm.ordersUser" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单金额:" prop="ordersPrice">
|
||||
<el-input type="text" v-model="ordersForm.ordersPrice" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单规格:" prop="ordersSpecification">
|
||||
<el-input type="text" v-model="ordersForm.ordersSpecification" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<center>
|
||||
<el-button @click="addordersoff = false">取 消</el-button>
|
||||
<el-button type="primary" @click="addorders(ordersForm)">提交</el-button>
|
||||
</center>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import {
|
||||
selectList,
|
||||
updateOrders,
|
||||
addordersup,
|
||||
ordersDelete,
|
||||
pay,
|
||||
getOut,
|
||||
updateByeExist
|
||||
} from '@/api/market/orders'
|
||||
import { diGui } from "@/api/market/orders";
|
||||
import axios from 'axios'
|
||||
|
||||
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
export default {
|
||||
dicts:['product_name','orders_num','orders_state','orders_launchdate'],
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
orders:{
|
||||
pageNum:1,
|
||||
pageSize:10,
|
||||
total:1,
|
||||
typeId:0
|
||||
},
|
||||
arr:[],
|
||||
type:[],
|
||||
|
||||
Cascader:{ expandTrigger:'hover',value:'id',label:'typeName',children:'parentPOS' },
|
||||
typeId:[],
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
|
||||
index:'',
|
||||
addtitle:'',
|
||||
addordersoff:false,
|
||||
ordersForm:{},
|
||||
|
||||
options: [{
|
||||
value: ' ',
|
||||
label: '全选'
|
||||
}, {
|
||||
value: '0',
|
||||
label: '待支付'
|
||||
}, {
|
||||
value: '1',
|
||||
label: '已付款'
|
||||
}, {
|
||||
value: '2',
|
||||
label: '未付款'
|
||||
}, {
|
||||
value: '3',
|
||||
label: '售后中(申请退款) '
|
||||
} ,{
|
||||
value: '4',
|
||||
label: '已退款 '
|
||||
}]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
// 多选框
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
//商品列表
|
||||
selectList() {
|
||||
selectList(this.orders).then(
|
||||
res => {
|
||||
console.log(res)
|
||||
this.arr = res.data.list
|
||||
this.orders.total = res.data.total
|
||||
}
|
||||
)
|
||||
},
|
||||
// 删除
|
||||
|
||||
updateByeExist(row){
|
||||
const result = window.confirm(`你确定要执行此操作吗?`);
|
||||
if (result) {
|
||||
updateByeExist(row.ordersId).then(
|
||||
res => {
|
||||
this.$message.success(res.msg)
|
||||
this.selectList()
|
||||
}
|
||||
)
|
||||
location.reload();
|
||||
// 用户点击确定后的逻辑处理,这里可以使用传入的 id
|
||||
console.log(`用户点击了确定,ID 为 ${row.ordersId}`);
|
||||
} else {
|
||||
// 用户点击取消后的逻辑处理
|
||||
console.log('用户点击了取消');
|
||||
}
|
||||
|
||||
},
|
||||
// 分页
|
||||
handleSizeChange(val) {
|
||||
this.orders.pageSize=val
|
||||
this.selectList()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.orders.pageNum=val
|
||||
this.selectList()
|
||||
},
|
||||
// 重置
|
||||
chong(){
|
||||
this.orders={}
|
||||
this.selectList()
|
||||
},
|
||||
// 查询
|
||||
findShop(){
|
||||
this.selectList()
|
||||
},
|
||||
// 添加跳转路径
|
||||
add(index){
|
||||
this.index=index
|
||||
if (this.index === 1) {
|
||||
this.addtitle= '添加订单';
|
||||
}
|
||||
// else if (this.index === 2) {
|
||||
// this.dialogtitle= '';
|
||||
// }
|
||||
this.addordersoff=true
|
||||
},
|
||||
addorders(ordersForm){
|
||||
addordersup(ordersForm).then(response=>{
|
||||
alert(response.msg)
|
||||
if (response.code==200){}
|
||||
this.addordersoff=false
|
||||
})
|
||||
location.reload();
|
||||
},
|
||||
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
// 修改跳转路径
|
||||
ordersUpdate(row){
|
||||
this.$router.push({path:"/updorders/index",query:{orders:row}})
|
||||
},
|
||||
|
||||
pay(row){
|
||||
console.log(row)
|
||||
window.open("http://localhost:9701/alipay/pay?productName="+row.productName +"&ordersNum="+row.ordersNum+"&ordersPrice="+row.ordersPrice)
|
||||
this.$message.success('付款成功')
|
||||
|
||||
|
||||
|
||||
},
|
||||
|
||||
getOut(){
|
||||
this.download('system/operlog/export', {
|
||||
...this.queryParams
|
||||
}, `operlog_${new Date().getTime()}.xlsx`)
|
||||
|
||||
},
|
||||
|
||||
reclaim(){
|
||||
this.$router.push({path:"/reclaim/index"})
|
||||
}
|
||||
|
||||
// getOut(){
|
||||
// axios.get('/market/orders/getOutAll').
|
||||
// then(response =>{
|
||||
// if(response.data && response.data instanceof ArrayBuffer)
|
||||
// {
|
||||
// const blob = new Blob([response.data],{type:'application/octet-stream'});
|
||||
// saveAs(blob ,'订单信息表');
|
||||
// }else{
|
||||
// console.error("导出失败:" ,error);
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
// this.diGui()
|
||||
this.selectList()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,109 @@
|
|||
<template>
|
||||
<div>
|
||||
<!-- 步骤条 -->
|
||||
<el-steps :space="200" :active="active" finish-status="success" style=" width:80%;transform: translateX(30%);margin-top: 30px">
|
||||
<el-step title="填写商品信息"></el-step>
|
||||
<el-step title="填写商品促销"></el-step>
|
||||
<el-step title="填写商品属性"></el-step>
|
||||
<el-step title="选择商品关联"></el-step>
|
||||
</el-steps>
|
||||
|
||||
|
||||
|
||||
|
||||
<el-card class="box-card" style="width: 94%;transform: translateX(3%);margin-top: 30px">
|
||||
<el-table :data="arr" style="width: 100%" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="编号" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.id }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品图片" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<img :src="scope.row.picImg" alt="图片损坏">
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" width="400" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.shopName }}</span>
|
||||
<br>
|
||||
品牌:<span style="margin-left: 10px">{{ scope.row.brandName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="货号" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">货号:{{ scope.row.shopNum }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="标签" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
上架:
|
||||
<el-switch
|
||||
v-model="scope.row.publishStatus"
|
||||
@change="updateShop(scope.row)"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#C0CCDA"
|
||||
:active-value="1"
|
||||
:inactive-value="0">
|
||||
</el-switch>
|
||||
<br>
|
||||
新品:
|
||||
<el-switch
|
||||
v-model="scope.row.newStatus"
|
||||
@change="updateShop(scope.row)"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#C0CCDA"
|
||||
:active-value="1"
|
||||
:inactive-value="0">
|
||||
</el-switch>
|
||||
<br>
|
||||
推荐:
|
||||
<el-switch
|
||||
v-model="scope.row.recommandStatus"
|
||||
@change="updateShop(scope.row)"
|
||||
active-color="#409EFF"
|
||||
inactive-color="#C0CCDA"
|
||||
:active-value="1"
|
||||
:inactive-value="0">
|
||||
</el-switch>
|
||||
<br>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.sort }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="销量" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.sale }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核状态" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px" v-if="scope.row.verifyStatus==0">未审核</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.verifyStatus==1">审核通知</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.row)">编辑</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
</script>
|
|
@ -34,6 +34,9 @@
|
|||
<el-form-item label="产品介绍:">
|
||||
<el-textarea v-model="product.productContent">{{product.productContent}}</el-textarea>
|
||||
</el-form-item>
|
||||
<el-form-item label="重要路由:">
|
||||
<el-textarea v-model="product.apiRouter">{{product.apiRouter}}</el-textarea>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="9"><div class="grid-content bg-purple">
|
||||
<el-button type="primary" @click="test(product)">立即申请</el-button>
|
||||
|
@ -111,6 +114,12 @@ export default {
|
|||
submitForm(){
|
||||
this.getList()
|
||||
},
|
||||
//产品类型
|
||||
gettypeList(){
|
||||
selectTypeList().then(response=>{
|
||||
this.typeList=response.data
|
||||
})
|
||||
},
|
||||
//选择类型
|
||||
chosetype(index1){
|
||||
this.ruleForm.productType=this.typeList[index1]
|
||||
|
@ -122,22 +131,18 @@ export default {
|
|||
this.getList()
|
||||
},
|
||||
//接口测试页面
|
||||
// test(product){
|
||||
// // let url = `http://21.12.0.10/prod-api/doc.html#/cloud-market/客户控制层/findListByuserPhone?userId=${this.userId}`;
|
||||
// let url = `product`;
|
||||
// window.open(url, '_blank'); // 在新标签页中打开 URL
|
||||
//
|
||||
// // this.$router.push({path:"/apitest/index",query:{myapi:JSON.stringify(product)}})
|
||||
// },
|
||||
test(product) {
|
||||
if (product && product.productAddress) {
|
||||
let url = product.productAddress; // 使用 product.address 的值
|
||||
window.open(url, '_blank'); // 在新标签页中打开 URL
|
||||
} else {
|
||||
console.error('无效的 address 或 product 未定义');
|
||||
// 或者您可以根据需要处理错误情况
|
||||
}
|
||||
test(product){
|
||||
this.$router.push({path:"/apitest/index",query:{myapi:JSON.stringify(product)}})
|
||||
},
|
||||
// test(product) {
|
||||
// if (product && product.productAddress) {
|
||||
// let url = product.productAddress; // 使用 product.address 的值
|
||||
// window.open(url, '_blank'); // 在新标签页中打开 URL
|
||||
// } else {
|
||||
// console.error('无效的 address 或 product 未定义');
|
||||
// // 或者您可以根据需要处理错误情况
|
||||
// }
|
||||
// },
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`);
|
||||
this.ruleForm.pageSize=val
|
||||
|
@ -148,12 +153,7 @@ export default {
|
|||
this.ruleForm.pageNum=val
|
||||
this.getList()
|
||||
},
|
||||
//产品类型
|
||||
gettypeList(){
|
||||
selectTypeList().then(response=>{
|
||||
this.typeList=response.data
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
|
|
|
@ -0,0 +1,263 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card class="box-card" style="width: 94%;transform: translateX(3%);margin-top: 30px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>筛选搜索</span>
|
||||
<el-button style="float: right; padding: 3px 30px" type="text" @click="findShop">查询结果</el-button>
|
||||
<el-button style="float: right; padding: 3px 10px" type="text" @click="chong">重置</el-button>
|
||||
</div>
|
||||
<div class="text item">
|
||||
<el-form ref="form" :model="orders" label-width="100px">
|
||||
<el-form-item>
|
||||
订单编号:<el-input v-model="orders.ordersNum" placeholder="编号" style="width: 130px;margin-right: 50px"></el-input>
|
||||
订单款项状态:
|
||||
<el-select v-model="orders.ordersState" placeholder="请选择状态" style="margin-right: 30px" clearable>
|
||||
<el-option v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
选择时间:
|
||||
<el-date-picker v-model="orders.startDate" type="date" placeholder="开始时间" style="width: 130px;"/>
|
||||
-----
|
||||
<el-date-picker v-model="orders.endDate" type="date" placeholder="结束时间" style="width: 130px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-card>
|
||||
<br>
|
||||
<button style="float: right; padding: 3px 10px" type="text" @click="orderslist">返回订单列表</button>
|
||||
<br>
|
||||
<el-card class="box-card" style="width: 94%;transform: translateX(3%);margin-top: 10px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>回收站列表</span>
|
||||
</div>
|
||||
<el-table :data="arr" style="width: 100%" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="日期" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersLaunchdate }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="购买信息">
|
||||
<el-table-column label="订单编号" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px"> {{ scope.row.ordersNum }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单所属人" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.userName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="购买详情">
|
||||
<el-table-column prop="province" label="购买接口" width="200" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.productName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="订单金额" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersPrice }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单规格" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.ordersSpecification }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单款项状态" width="130" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==0">待支付</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==1">已付款</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==2">未付款</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==4">售后(申请退款)</span>
|
||||
<span style="margin-left: 10px" v-if="scope.row.ordersState==5">已退款</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.row)">恢复</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="ordersDelete(scope.row)">彻底删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination style="float: right"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="orders.pageNum"
|
||||
:page-sizes="[5, 10, 50, 100]"
|
||||
:page-size="orders.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="orders.total">
|
||||
</el-pagination>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import { ordersDelete, listreclaim, updateByExist} from '@/api/market/orders'
|
||||
import { diGui } from "@/api/market/orders";
|
||||
|
||||
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
orders:{
|
||||
pageNum:1,
|
||||
pageSize:10,
|
||||
total:1,
|
||||
typeId:0
|
||||
},
|
||||
arr:[],
|
||||
type:[],
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
index:'',
|
||||
ordersForm:{},
|
||||
|
||||
options: [{
|
||||
value: ' ',
|
||||
label: '全选'
|
||||
}, {
|
||||
value: '0',
|
||||
label: '待支付'
|
||||
}, {
|
||||
value: '1',
|
||||
label: '已付款'
|
||||
}, {
|
||||
value: '2',
|
||||
label: '未付款'
|
||||
}, {
|
||||
value: '3',
|
||||
label: '售后中(申请退款) '
|
||||
} ,{
|
||||
value: '4',
|
||||
label: '已退款 '
|
||||
}]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//商品列表
|
||||
listreclaim() {
|
||||
listreclaim(this.orders).then(
|
||||
res => {
|
||||
console.log(res)
|
||||
this.arr = res.data.list
|
||||
this.orders.total = res.data.total
|
||||
}
|
||||
)
|
||||
},
|
||||
//复原
|
||||
handleEdit(row){
|
||||
const result = window.confirm(`你确定要执行此操作吗?`);
|
||||
if (result) {
|
||||
updateByExist(row.ordersId).then(
|
||||
res =>{
|
||||
this.$message.success(res.msg)
|
||||
this.listreclaim()
|
||||
}
|
||||
)
|
||||
location.reload();
|
||||
// 用户点击确定后的逻辑处理,这里可以使用传入的 id
|
||||
console.log(`用户点击了确定,ID 为 ${id}`);
|
||||
} else {
|
||||
// 用户点击取消后的逻辑处理
|
||||
console.log('用户点击了取消');
|
||||
}
|
||||
|
||||
},
|
||||
// 删除
|
||||
ordersDelete(row){
|
||||
const result = window.confirm(`你确定要执行此操作吗?`);
|
||||
if (result) {
|
||||
ordersDelete(row.ordersId).then(
|
||||
res => {
|
||||
this.$message.success(res.msg)
|
||||
this.listreclaim()
|
||||
}
|
||||
)
|
||||
location.reload();
|
||||
// 用户点击确定后的逻辑处理,这里可以使用传入的 id
|
||||
console.log(`用户点击了确定,ID 为 ${id}`);
|
||||
} else {
|
||||
// 用户点击取消后的逻辑处理
|
||||
console.log('用户点击了取消');
|
||||
}
|
||||
},
|
||||
// 重置
|
||||
chong(){
|
||||
this.orders={}
|
||||
this.listreclaim()
|
||||
},
|
||||
// 多选框
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
// 分页
|
||||
handleSizeChange(val) {
|
||||
this.orders.pageSize=val
|
||||
this.listreclaim()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.orders.pageNum=val
|
||||
this.listreclaim()
|
||||
},
|
||||
orderslist(){
|
||||
this.$router.push({path:"/market/orders"})
|
||||
},
|
||||
// 查询
|
||||
findShop(){
|
||||
this.listreclaim()
|
||||
}
|
||||
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.listreclaim()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,107 @@
|
|||
<template>
|
||||
<div>
|
||||
{{orders}}
|
||||
<br><br><br>
|
||||
<center>
|
||||
<el-form :model="orders" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="订单编号" prop="ordersNum" style="width: 70% " >
|
||||
{{orders.ordersNum}}
|
||||
</el-form-item>
|
||||
<el-form-item label="订单产品" prop="productName" style="width: 70%">
|
||||
<el-select v-model="orders.productName" placeholder="请选择产品">
|
||||
<el-option v-model="orders.productName" :value="orders.productId"></el-option>
|
||||
<el-option v-for="item in product" :label="item.productName" :key="item.productId" :value="item.productId" ></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单所属人" prop="userName" style="width: 70%">
|
||||
{{orders.userName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="订单金额" prop="ordersPrice" style="width: 70%">
|
||||
<el-input type="text" v-model="orders.ordersPrice" autocomplete="off" style="width: 100px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单规格" prop="ordersSpecification" style="width: 70%">
|
||||
<el-input type="text" v-model="orders.ordersSpecification" autocomplete="off" style="width: 250px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单款项状态" prop="ordersState" style="width: 70%">
|
||||
|
||||
<el-select v-model="orders.ordersState" placeholder="订单款项状态" >
|
||||
<el-option label="待支付-0" value="0"></el-option>
|
||||
<el-option label="已支付-1" value="1"></el-option>
|
||||
<el-option label="未支付-2" value="2"></el-option>
|
||||
<el-option label="售后(审核退款)-3" value="3"></el-option>
|
||||
<el-option label="退款成功-4" value="4"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单日期" prop="ordersLaunchdate" style="width: 70%">
|
||||
{{orders.ordersLaunchdate}}
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">返回</el-button>
|
||||
<el-button type="primary" @click="update(row)">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</center>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import { updateOrders } from '@/api/market/orders'
|
||||
|
||||
export default {
|
||||
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
return {
|
||||
orders:{},
|
||||
product:[]
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
submitForm(){
|
||||
this.$router.push("/market/orders")
|
||||
},
|
||||
|
||||
update(row){
|
||||
updateOrders(this.orders).then(
|
||||
res =>{
|
||||
this.$message.success(res.msg)
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
this.orders = this.$route.query.orders
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -3,11 +3,11 @@
|
|||
<el-row :gutter="20">
|
||||
<el-col :span="16">
|
||||
<div class="grid-content bg-purple" style="border: 2px solid #ebeef5;">
|
||||
<span>HI,上海八维宏烨集团<br>
|
||||
<span>HI,{{companymessage.companyName}}<br>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6"><div class="grid-content bg-purple">地区:上海市 上海市</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">IP:114.85.72.211</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">时间:2021年-1月-12日</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">地址:{{companymessage.companyAddress}}</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">企业法人:{{companymessage.companyLeader}}</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">时间:{{companymessage.registrantDate}}</div></el-col>
|
||||
<el-col :span="6"><div class="grid-content bg-purple">
|
||||
<el-row>
|
||||
<el-col :span="12"><div class="grid-content bg-purple"><el-button type="primary">登录日志</el-button></div></el-col>
|
||||
|
@ -21,8 +21,8 @@
|
|||
<div class="grid-content bg-purple" style="border: 1px solid #ebeef5;">
|
||||
<span>账户余额:<br>
|
||||
<el-row>
|
||||
<el-col :span="12"><div class="grid-content bg-purple">¥8544344.00</div></el-col>
|
||||
<el-col :span="12"><div class="grid-content bg-purple-light"><el-button type="primary">充值</el-button></div></el-col>
|
||||
<el-col :span="12"><div class="grid-content bg-purple">¥{{companymessage.companyMoney}}</div></el-col>
|
||||
<el-col :span="12"><div class="grid-content bg-purple-light"><el-button type="primary" @click="addmoney()">充值</el-button></div></el-col>
|
||||
</el-row>
|
||||
</span>
|
||||
</div>
|
||||
|
@ -33,7 +33,7 @@
|
|||
<div class="grid-content bg-purple-dark" style="border: 2px solid #ebeef5;">
|
||||
<el-row>
|
||||
<el-col :span="20"><div class="grid-content bg-purple"><span>热点接口</span></div></el-col>
|
||||
<el-col :span="4"><div class="grid-content bg-purple-light"><el-button type="primary">申请新的接口</el-button></div></el-col>
|
||||
<el-col :span="4"><div class="grid-content bg-purple-light"><el-button type="primary" @click="otherapi">申请其他接口</el-button></div></el-col>
|
||||
</el-row><br>
|
||||
<el-row>
|
||||
<el-col :span="24"><div class="grid-content bg-purple-dark flex-container">
|
||||
|
@ -41,7 +41,7 @@
|
|||
<el-form ref="form" :model="form" label-width="80px">
|
||||
<el-form-item >
|
||||
<span>{{form.productName}}</span>
|
||||
<el-button @click="tovalidation()">查看</el-button>
|
||||
<el-button @click="tovalidation(form)">查看</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -52,54 +52,90 @@
|
|||
</el-row>
|
||||
|
||||
|
||||
<!--提示需要验证--->
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose"
|
||||
:close-on-click-modal="false">
|
||||
<span>亲,需要认证才能使用哦!!!</span>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="validationYes()">去认证</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<!-- <!–提示需要验证-–>-->
|
||||
<!-- <el-dialog-->
|
||||
<!-- title="提示"-->
|
||||
<!-- :visible.sync="dialogVisible"-->
|
||||
<!-- width="30%"-->
|
||||
<!-- :before-close="handleClose"-->
|
||||
<!-- :close-on-click-modal="false">-->
|
||||
<!-- <span>亲,需要认证才能使用哦!!!</span>-->
|
||||
<!-- <span slot="footer" class="dialog-footer">-->
|
||||
<!-- <el-button @click="dialogVisible = false">取 消</el-button>-->
|
||||
<!-- <el-button type="primary" @click="validationYes()">去认证</el-button>-->
|
||||
<!-- </span>-->
|
||||
<!-- </el-dialog>-->
|
||||
|
||||
<!---企业验证页面-->
|
||||
<!-- <!–-企业验证页面–>-->
|
||||
<!-- <el-dialog-->
|
||||
<!-- title="提示"-->
|
||||
<!-- :visible.sync="dialogVisible1"-->
|
||||
<!-- width="30%"-->
|
||||
<!-- :before-close="handleClose1"-->
|
||||
<!-- :close-on-click-modal="false">-->
|
||||
<!-- <span>企业信息</span>-->
|
||||
<!-- <el-divider></el-divider>-->
|
||||
<!-- <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">-->
|
||||
<!-- <el-form-item label="企业名称" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="用户姓名" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="用户职位" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="公司所在省市区" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="公司详细地址" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="统一社会信用代码" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="营业执照" prop="pass">-->
|
||||
<!-- <el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- <span slot="footer" class="dialog-footer">-->
|
||||
<!-- <el-button type="primary" @click="push()">提交认证申请</el-button>-->
|
||||
<!-- </span>-->
|
||||
<!-- </el-dialog>-->
|
||||
|
||||
<!--充值页面-->
|
||||
<el-dialog
|
||||
title="提示"
|
||||
:visible.sync="dialogVisible1"
|
||||
title="充值"
|
||||
:visible.sync="dialogVisible2"
|
||||
width="30%"
|
||||
:before-close="handleClose1"
|
||||
:before-close="handleClose2"
|
||||
:close-on-click-modal="false">
|
||||
<span>企业信息</span>
|
||||
<h2 style="color: #1ab394">请选择充值金额</h2>
|
||||
<el-divider></el-divider>
|
||||
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="企业名称" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
<el-form :model="moneyForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="请选择">
|
||||
<el-radio-group v-model="moneyForm.resource">
|
||||
<el-radio label="5">5元</el-radio>
|
||||
<el-radio label="20">20元</el-radio>
|
||||
<el-radio label="50">50元</el-radio>
|
||||
<el-radio label="100">100元</el-radio>
|
||||
<el-radio label="">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户姓名" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
<el-form-item v-if="moneyForm.resource === ''" label="自定义充值" prop="pass" style="width: 50%">
|
||||
<el-input type="text" v-model="moneyForm.resource1" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户职位" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="公司所在省市区" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="公司详细地址" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="统一社会信用代码" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="营业执照" prop="pass">
|
||||
<el-input type="text" v-model="ruleForm.pass" autocomplete="off"></el-input>
|
||||
<el-divider></el-divider>
|
||||
<el-form-item label="选择支付方式">
|
||||
<el-radio-group v-model="moneyForm.pay">
|
||||
<el-radio label="1">支付宝</el-radio>
|
||||
<el-radio label="2">微信</el-radio>
|
||||
<el-radio label="3">银行卡</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="push()">提交认证申请</el-button>
|
||||
<el-button type="primary" @click="insertmoney(moneyForm)">充值</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
@ -111,7 +147,8 @@
|
|||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
|
||||
|
||||
import {gethostportList} from "@/api/market/workbench";
|
||||
import {getcompany, gethostportList} from "@/api/market/workbench";
|
||||
import {ifbuy} from "@/api/market/product";
|
||||
|
||||
export default {
|
||||
name: 'Workbench',
|
||||
|
@ -126,8 +163,11 @@ export default {
|
|||
hostportList:[],
|
||||
dialogVisible: false,
|
||||
dialogVisible1:false,
|
||||
dialogVisible2:false,
|
||||
//企业信息
|
||||
ruleForm:{}
|
||||
ruleForm:{},
|
||||
companymessage:{},
|
||||
moneyForm:{}
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
|
@ -136,6 +176,35 @@ export default {
|
|||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
//绑定的企业信息
|
||||
getcompany(){
|
||||
getcompany().then(response=>{
|
||||
this.companymessage=response.data
|
||||
})
|
||||
},
|
||||
//打开充值页面
|
||||
addmoney(){
|
||||
this.dialogVisible2=true
|
||||
},
|
||||
//确认充值
|
||||
insertmoney(moneyForm){
|
||||
if (moneyForm.pay==1){
|
||||
if (moneyForm.resource!=''){
|
||||
window.open("http://21.12.0.10:80/alipay/pay?ordersPrice="+moneyForm.resource)
|
||||
this.$message.success('付款成功')
|
||||
}else {
|
||||
window.open("http://21.12.0.10:80/alipay/pay?ordersPrice="+moneyForm.resource)
|
||||
this.$message.success('付款成功')
|
||||
}
|
||||
|
||||
}
|
||||
// this.dialogVisible2=false
|
||||
|
||||
},
|
||||
//申请其他接口
|
||||
otherapi(){
|
||||
this.$router.push("/product/index")
|
||||
},
|
||||
//热点数据列表
|
||||
gethostportList(){
|
||||
gethostportList().then(response=>{
|
||||
|
@ -156,8 +225,15 @@ export default {
|
|||
})
|
||||
.catch(_ => {});
|
||||
},
|
||||
tovalidation(){
|
||||
this.dialogVisible=true
|
||||
tovalidation(form){
|
||||
// this.dialogVisible=true
|
||||
//判断是否已购买
|
||||
ifbuy(form).then(response=>{
|
||||
if (response.code!=200) {
|
||||
alert(response.msg)
|
||||
}
|
||||
})
|
||||
this.$router.push({path:"/apitest/index",query:{myapi:JSON.stringify(form)}})
|
||||
},
|
||||
validationYes(){
|
||||
this.dialogVisible1=true
|
||||
|
@ -170,6 +246,7 @@ export default {
|
|||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.gethostportList()
|
||||
this.getcompany()
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
|
|
|
@ -0,0 +1,183 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1>资产展示</h1>
|
||||
|
||||
<el-container>
|
||||
<el-aside width="400px">
|
||||
|
||||
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
|
||||
|
||||
</el-aside>
|
||||
|
||||
<el-main>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span style="font-size: xx-large"></span>
|
||||
<!-- <table>-->
|
||||
<!-- a <tr><td>表名称:</td><td>{{ tableBasic.tableName }}</td></tr>-->
|
||||
<!-- <tr><td>表备注:</td><td>{{ tableBasic.tableRemark }}</td></tr>-->
|
||||
<!-- <tr><td>数据量:</td><td>{{ tableBasic.dataNum }}</td></tr>-->
|
||||
<!-- <tr><td>是否核心:</td><td><dict-tag :options="dict.type.sys_yes_no" :value="tableBasic.isCenter"/></td></tr>-->
|
||||
<!-- </table>-->
|
||||
|
||||
<template>
|
||||
|
||||
<el-descriptions class="margin-top" title="资产模型基本信息" :column="2" border>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">表名称</template>
|
||||
{{ tableBasic.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">表备注</template>
|
||||
{{ tableBasic.tableRemark }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">数据量</template>
|
||||
{{ dataNum }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">是否核心</template>
|
||||
<el-tag size="small" v-if="dataNum!=0">是</el-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- v-if="dataType === 'dataTable'-->
|
||||
<el-card class="box-card" style="margin-top: 20px">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>模型数据</span>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<!-- -->
|
||||
<el-col :span="6" v-for="DataValue in tableStructure" style="margin-top: 20px">
|
||||
<el-descriptions :title="测试+'.'+tableBasic.name+'.'+DataValue.field" direction="vertical"
|
||||
border :column="1">
|
||||
<el-descriptions-item label="Type">
|
||||
<el-tag size="small">{{ DataValue.dataMapping}}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="Value">{{ DataValue.dataValue }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-table
|
||||
:data="tableStructure"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="field"
|
||||
label="key"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="annotation"
|
||||
label="label"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="type"
|
||||
label="type">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="dataValue"
|
||||
label="value">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import { findTableValue, getExtractDataTableNameList, selectBasicList } from '@/api/property/asDisplay'
|
||||
import { tableStructureShow } from '@/api/property/astr'
|
||||
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
dicts: ['sys_no'],
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
data:[],
|
||||
defaultProps: {
|
||||
children: 'tableNames',
|
||||
label: 'name'
|
||||
},
|
||||
tableBasic:[],
|
||||
tableStructure:[],
|
||||
assetShowList: [
|
||||
// {key: "测试.sys_user.id", type: "String", value: 1},
|
||||
// {key: "测试.sys_user.name", type: "String", value: "张三"},
|
||||
// {key: "测试.sys_user.age", type: "Integer", value: 18},
|
||||
// {key: "测试.sys_user.email", type: "String", value: "123@136.com"},
|
||||
// {key: "测试.sys_user.sex", type: "String", value: "Y"},
|
||||
],
|
||||
DataValue:[],
|
||||
dataNum:'',
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
|
||||
getSelectList(){
|
||||
getExtractDataTableNameList().then((res)=>{
|
||||
this.data = res.data
|
||||
})
|
||||
},
|
||||
|
||||
handleNodeClick(data){
|
||||
if (this.data.name!=data.name){
|
||||
tableStructureShow(data).then(res=> {
|
||||
this.tableBasic = data
|
||||
console.log(res)
|
||||
this.dataNum = res.data.length
|
||||
this.tableStructure = res.data
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getSelectList();
|
||||
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
|
||||
</style>
|
|
@ -0,0 +1,403 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1>资产授权</h1>
|
||||
|
||||
<el-container>
|
||||
<el-aside width="400px">
|
||||
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
|
||||
</el-aside>
|
||||
|
||||
<el-main>
|
||||
|
||||
<el-form :inline="true" :model="tableBasic" class="demo-form-inline">
|
||||
<el-form-item label="数据库名称">
|
||||
<el-input v-model="tableBasic.name" placeholder="数据库/表名称" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="中文名称">
|
||||
<el-input v-model="text" placeholder="中文名称" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据量">
|
||||
<el-input v-model="dataNum" placeholder="数据量" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>卡片名称</span>
|
||||
</div>
|
||||
<template>
|
||||
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
||||
<el-tab-pane label="部门授权" name="first">
|
||||
<el-table
|
||||
v-if="refreshTable"
|
||||
v-loading="loading"
|
||||
:data="deptList"
|
||||
:default-expand-all="isExpandAll"
|
||||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||
row-key="deptId">
|
||||
<el-table-column label="部门名称" prop="deptName" width="260"></el-table-column>
|
||||
<el-table-column label="部门负责人" prop="leader" width="260"></el-table-column>
|
||||
<el-table-column label="邮箱" prop="email" width="260"></el-table-column>
|
||||
<el-table-column align="center" label="创建时间" prop="createTime" width="200">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作(授权)">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
:value="isDeptAccredited(scope.row.deptId)"
|
||||
@change="handleDeptAccreditChange(scope.row.deptId,$event)"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="用户授权" name="second">
|
||||
<el-table v-loading="loading" :data="userList">
|
||||
<el-table-column v-if="columns[0].visible" key="userId" align="center" label="用户编号" prop="userId"/>
|
||||
<el-table-column v-if="columns[1].visible" key="userName" :show-overflow-tooltip="true" align="center" label="用户名称"
|
||||
prop="userName"/>
|
||||
<el-table-column v-if="columns[2].visible" key="nickName" :show-overflow-tooltip="true" align="center" label="用户昵称"
|
||||
prop="nickName"/>
|
||||
<el-table-column v-if="columns[3].visible" key="deptName" :show-overflow-tooltip="true" align="center" label="部门"
|
||||
prop="dept.deptName"/>
|
||||
<el-table-column v-if="columns[4].visible" key="phonenumber" align="center" label="手机号码"
|
||||
prop="phonenumber" width="120"/>
|
||||
<el-table-column v-if="columns[7].visible" key="email" align="center" label="邮箱"
|
||||
prop="email" width="120"/>
|
||||
<el-table-column v-if="columns[6].visible" align="center" label="创建时间" prop="createTime" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作(授权)" width="160">
|
||||
<template slot-scope="scope">
|
||||
|
||||
<el-switch
|
||||
:value="isAccredited(scope.row.userId)"
|
||||
@change="handleAccreditChange(scope.row.userId,$event)"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</el-card>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {
|
||||
addDeptAssetAuthorization,
|
||||
addUserAssetAuthorization,
|
||||
delDeptAssetAuthorization,
|
||||
delUserAssetAuthorization,
|
||||
getExtractDataTableNameList,
|
||||
findDeptIdList,
|
||||
findUserIdList
|
||||
} from '@/api/property/asauth'
|
||||
import { listUser } from '@/api/system/user'
|
||||
import { listDept } from '@/api/system/dept'
|
||||
import { parseTime } from '@/utils/muyu'
|
||||
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
dicts: ['sys_yes_no','sys_normal_disable'],
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
//用户是否授权
|
||||
AccreditValue:false,
|
||||
//用户列表
|
||||
userList:[],
|
||||
// 列信息
|
||||
columns: [
|
||||
{key: 0, label: `用户编号`, visible: false},
|
||||
{key: 1, label: `用户名称`, visible: true},
|
||||
{key: 2, label: `用户昵称`, visible: true},
|
||||
{key: 3, label: `部门`, visible: true},
|
||||
{key: 4, label: `手机号码`, visible: true},
|
||||
{key: 5, label: `状态`, visible: false},
|
||||
{key: 6, label: `创建时间`, visible: true},
|
||||
{key: 7, label: `邮箱`, visible: true}
|
||||
],
|
||||
dataNum:0,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 表格树数据
|
||||
deptList: [],
|
||||
// 部门树选项
|
||||
deptOptions: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 是否展开,默认全部展开
|
||||
isExpandAll: true,
|
||||
// 重新渲染表格状态
|
||||
refreshTable: true,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
deptName: undefined,
|
||||
status: undefined
|
||||
},
|
||||
data:[],
|
||||
defaultProps: {
|
||||
children: 'tableNames',
|
||||
label: 'name'
|
||||
},
|
||||
tableBasic:{},
|
||||
tableStructure:[],
|
||||
valueList:[],
|
||||
activeName: 'first',
|
||||
AssetImPowerListReq:{
|
||||
basicId:null,
|
||||
tableId:null,
|
||||
deptId:null,
|
||||
userId:null
|
||||
},
|
||||
userIdList:[],
|
||||
deptIdList:[],
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
parseTime,
|
||||
//部门switch状态变化
|
||||
handleDeptAccreditChange(deptId, value) {
|
||||
|
||||
if (this.tableBasic.children != null) {
|
||||
this.AssetImPowerListReq.basicId = this.tableBasic.basicId
|
||||
this.AssetImPowerListReq.deptId = deptId
|
||||
this.AssetImPowerListReq.tableId = null;
|
||||
} else {
|
||||
this.AssetImPowerListReq.tableId = this.tableBasic.id
|
||||
this.AssetImPowerListReq.deptId = deptId
|
||||
this.AssetImPowerListReq.basicId = null;
|
||||
}
|
||||
|
||||
if (value === true) {
|
||||
//添加部门资产权限
|
||||
|
||||
addDeptAssetAuthorization(this.AssetImPowerListReq).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess("权限赋予成功");
|
||||
} else {
|
||||
this.$modal.msgError("权限赋予失败");
|
||||
}
|
||||
this.findDeptIdList();
|
||||
this.isDeptAccredited()
|
||||
})
|
||||
} else {
|
||||
//删除部门资产权限
|
||||
delDeptAssetAuthorization(this.AssetImPowerListReq).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess("权限删除成功");
|
||||
} else {
|
||||
this.$modal.msgError("权限删除失败");
|
||||
}
|
||||
this.findDeptIdList();
|
||||
this.isDeptAccredited()
|
||||
})
|
||||
}
|
||||
},
|
||||
//处理switch状态变化,进行授予权限和剔除权限
|
||||
handleAccreditChange(userId, value) {
|
||||
console.log("userId的值::" + userId);
|
||||
console.log("value的值:" + value)
|
||||
if (this.tableBasic.children != null) {
|
||||
this.AssetImPowerListReq.basicId = this.tableBasic.basicId
|
||||
this.AssetImPowerListReq.userId = userId
|
||||
this.AssetImPowerListReq.tableId = null;
|
||||
} else {
|
||||
this.AssetImPowerListReq.tableId = this.tableBasic.id
|
||||
this.AssetImPowerListReq.userId = userId
|
||||
this.AssetImPowerListReq.basicId = null;
|
||||
}
|
||||
|
||||
if (value === true) {
|
||||
//添加用户资产权限
|
||||
addUserAssetAuthorization(this.AssetImPowerListReq).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess("权限赋予成功");
|
||||
} else {
|
||||
this.$modal.msgError("权限赋予失败");
|
||||
}
|
||||
this.findUserIdList()
|
||||
this.isAccredited()
|
||||
})
|
||||
} else {
|
||||
//删除用户资产权限
|
||||
delUserAssetAuthorization(this.AssetImPowerListReq).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess("权限删除成功");
|
||||
} else {
|
||||
this.$modal.msgError("权限删除失败");
|
||||
}
|
||||
this.findUserIdList()
|
||||
this.isAccredited()
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
// 判断用户ID是否在列表中
|
||||
isAccredited(userId) {
|
||||
return this.userIdList.includes(userId);
|
||||
},
|
||||
|
||||
//判断部门ID是否在列表中
|
||||
isDeptAccredited(deptId) {
|
||||
return this.deptIdList.includes(deptId);
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询用户列表
|
||||
*/
|
||||
getUserList() {
|
||||
this.loading = true;
|
||||
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||
this.userList = response.data.rows;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
console.log(response.data.rows)
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询部门列表
|
||||
*/
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listDept(this.queryParams).then(response => {
|
||||
this.deptList = this.handleTree(response.data, "deptId");
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询数据库和相关联表
|
||||
*
|
||||
* @returns {AxiosPromise} 返回集合
|
||||
*/
|
||||
findByTableName() {
|
||||
getExtractDataTableNameList().then((res) => {
|
||||
this.data = res.data
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询资产赋权用户信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
findUserIdList(){
|
||||
findUserIdList(this.AssetImPowerListReq).then((res) => {
|
||||
this.userIdList = res.data
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询资产赋权部门信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
findDeptIdList(){
|
||||
findDeptIdList(this.AssetImPowerListReq).then((res) => {
|
||||
this.deptIdList = res.data
|
||||
})
|
||||
},
|
||||
/**\
|
||||
* 树形结构
|
||||
* @param data
|
||||
*/
|
||||
handleNodeClick(data) {
|
||||
this.tableBasic = data
|
||||
if (this.tableBasic.children != null) {
|
||||
this.AssetImPowerListReq.basicId = this.tableBasic.basicId
|
||||
this.AssetImPowerListReq.deptId = this.tableBasic.deptId
|
||||
this.AssetImPowerListReq.tableId = null;
|
||||
} else {
|
||||
this.AssetImPowerListReq.tableId = this.tableBasic.id
|
||||
this.AssetImPowerListReq.basicId = null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询资产赋权用户信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
findUserIdList(this.AssetImPowerListReq).then((res) => {
|
||||
this.userIdList = res.data
|
||||
})
|
||||
/**
|
||||
* 查询资产赋权部门信息
|
||||
* @param data 参数信息
|
||||
* @returns {*} 响应结果
|
||||
*/
|
||||
findDeptIdList(this.AssetImPowerListReq).then((res) => {
|
||||
this.deptIdList = res.data
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
//查询数据库和相关联表
|
||||
this.findByTableName()
|
||||
//查询部门列表
|
||||
this.getList()
|
||||
//查询用户列表
|
||||
this.getUserList()
|
||||
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
|
||||
|
||||
</style>
|
|
@ -0,0 +1,166 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1>数据资产结构</h1>
|
||||
|
||||
<el-container>
|
||||
<el-aside width="400px">
|
||||
|
||||
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
|
||||
|
||||
</el-aside>
|
||||
|
||||
<el-main>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span style="font-size: xx-large"></span>
|
||||
<template>
|
||||
|
||||
<el-descriptions class="margin-top" title="资产模型基本信息" :column="2" border>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">表名称</template>
|
||||
{{ tableBasic.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">表备注</template>
|
||||
{{ tableBasic.tableRemark }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">数据量</template>
|
||||
{{ dataNum }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">是否核心</template>
|
||||
<dict-tag :options="dict.type.sys_no" :value="tableBasic.isCenter"/>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" title="资产模型基本信息" :column="2" >
|
||||
<div slot="header" class="clearfix">
|
||||
<span>资产模型详细信息</span>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableStructure" style="width: 100%">
|
||||
<el-table-column label="名称" prop="field"></el-table-column>
|
||||
<el-table-column label="注释" prop="annotation"></el-table-column>
|
||||
<el-table-column label="是否主键" prop="primarys">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.primarys==='PRI'">
|
||||
<el-tag type="success">{{scope.row.primarys }}</el-tag>
|
||||
</span>
|
||||
<span v-if="scope.row.primarys===''">
|
||||
<el-tag type="danger">NO</el-tag>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" prop="type"></el-table-column>
|
||||
<el-table-column label="映射类型" prop="dataMapping"></el-table-column>
|
||||
<el-table-column label="是否为空" prop="nullable"></el-table-column>
|
||||
<el-table-column label="是否字典" prop="isDictionary"></el-table-column>
|
||||
<el-table-column label="映射字典" prop="dictionaryTable"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<style>
|
||||
|
||||
.el-main {
|
||||
background-color: #ececec;
|
||||
color: #000000;
|
||||
line-height: 147px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
|
||||
import { getExtractDataTableNameList, tableStructureShow } from '@/api/property/astr'
|
||||
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
dicts: ['sys_no'],
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
tableMapping:[],
|
||||
data:[],
|
||||
defaultProps: {
|
||||
children: 'tableNames',
|
||||
label: 'name'
|
||||
},
|
||||
dataNum:0,
|
||||
tableBasic:{
|
||||
|
||||
},
|
||||
tableStructure:[],
|
||||
javaType:[],
|
||||
};
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
getSelectList(){
|
||||
getExtractDataTableNameList().then((res)=>{
|
||||
this.data = res.data
|
||||
})
|
||||
},
|
||||
handleNodeClick(data) {
|
||||
console.log(data)
|
||||
this.tableBasic = data
|
||||
|
||||
tableStructureShow(data).then(res => {
|
||||
console.log(res)
|
||||
this.dataNum = res.data.length
|
||||
this.tableStructure = res.data
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getSelectList();
|
||||
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
|
||||
</style>
|
|
@ -0,0 +1,474 @@
|
|||
<template>
|
||||
<div>
|
||||
|
||||
<el-form ref="form" :model="connectDTO" label-width="130px" :inline="true">
|
||||
<el-form-item label="接入源名称:">
|
||||
<el-input v-model="connectDTO.accSourName" style="width: 300px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据来源系统名称:">
|
||||
<el-input v-model="connectDTO.dataSourSystemName" style="width: 300px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据接入类型:">
|
||||
<el-input v-model="connectDTO.dataAccType" style="width: 300px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="selectConnectList">立即创建</el-button>
|
||||
<el-button>取消</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-button type="primary" @click="insertConnectList" plain>添加</el-button>
|
||||
<el-button type="danger" plain>删除</el-button>
|
||||
<el-button type="warning" plain>导出</el-button>
|
||||
|
||||
|
||||
<template>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="connect"
|
||||
tooltip-effect="dark"
|
||||
:style="{width: tableWidth}"
|
||||
@selection-change="handleSelectionChange">
|
||||
|
||||
<el-table-column
|
||||
type="selection"
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="接入源名称">
|
||||
<template slot-scope="scope">{{ scope.row.accSourName }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="数据来源系统名称">
|
||||
<template slot-scope="scope">{{ scope.row.dataSourSystemName }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="ip地址">
|
||||
<template slot-scope="scope">{{ scope.row.ipAddress }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="端口号地址">
|
||||
<template slot-scope="scope">{{ scope.row.port }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="数据接入类型">
|
||||
<template slot-scope="scope">{{ scope.row.dataAccType }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="数据库名称">
|
||||
<template slot-scope="scope">{{ scope.row.databaseName }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="是否初始化">
|
||||
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.initialization==='Y'" type="success">初始化</el-tag>
|
||||
<el-tag v-if="scope.row.initialization==='N'" type="danger">不初始化</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="备注">
|
||||
<template slot-scope="scope">{{ scope.row.notes }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="selectHandleClick(scope.row)" type="text" size="small">同步资产结构</el-button>
|
||||
<el-button @click="textHandleClick(scope.row)" type="text" size="small">测试</el-button>
|
||||
<el-button @click="updHandleClick(scope.row)" type="text" size="small">修改</el-button>
|
||||
<el-button @click="delHandleClick(scope.row)" type="text" size="small">删除</el-button>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 修改-->
|
||||
<el-dialog title="修改配置参数" :visible.sync="updDialogFormVisible" width="1100px">
|
||||
<el-form :model="connectDTO" :inline="true" :label-width="formLabelWidth">
|
||||
<el-form-item label="ID" style="display: none;">
|
||||
<el-input v-model="connectDTO.id" autocomplete="off" placeholder="Id"></el-input>
|
||||
</el-form-item>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>基本配置信息</span>
|
||||
</div>
|
||||
<div class="text item" :label-width="formLabelWidth">
|
||||
<el-form-item label="接入源名称">
|
||||
<el-input v-model="connectDTO.accSourName" autocomplete="off" placeholder="请输入接入源名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据来源系统名称" label-width="125px">
|
||||
<el-input v-model="connectDTO.dataSourSystemName" autocomplete="off" placeholder="请输入数据来源系统"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="ip地址">
|
||||
<el-input v-model="connectDTO.ipAddress" autocomplete="off" placeholder="请输入IP地址"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="端口号地址">
|
||||
<el-input v-model="connectDTO.port" autocomplete="off" placeholder="请输入端口号地址"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据接入类型" label-width="110px">
|
||||
<template>
|
||||
<el-select v-model="connectDTO.dataAccType" placeholder="请选择" label-width="100px">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<!-- <el-input v-model="connectDTO.name" autocomplete="off" placeholder="请输入数据接入类型"></el-input>-->
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库名称">
|
||||
<el-input v-model="connectDTO.databaseName" autocomplete="off" placeholder="请输入数据库名称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库用户">
|
||||
<el-input v-model="connectDTO.userName" autocomplete="off" placeholder="数据库用户"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库密码" label-width="125px">
|
||||
<el-input v-model="connectDTO.password" autocomplete="off" placeholder="数据库密码"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>数据连接参数</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="数据连接参数">
|
||||
<el-input v-model="connectDTO.dataConnParam" autocomplete="off" placeholder="请输入数据连接参数" style="width: 990px;"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" style="margin-top: 20px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>连接池配置</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="初始连接数量">
|
||||
<el-input v-model="connectDTO.initSize" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大连接数量">
|
||||
<el-input v-model="connectDTO.maxNumConn" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大等待时间">
|
||||
<el-input v-model="connectDTO.maxWaitTime" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大等待次数">
|
||||
<el-input v-model="connectDTO.maxWaitTimes" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" style="margin-top: 20px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>其他信息</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="是否初始化" :label-width="formLabelWidth">
|
||||
<el-radio v-model="connectDTO.initialization" label="Y">是</el-radio>
|
||||
<el-radio v-model="connectDTO.initialization" label="N">否</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" :label-width="formLabelWidth">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:cole="1000"
|
||||
placeholder="请输入内容"
|
||||
v-model="connectDTO.notes" style="width: 850px;">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="updDialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="updsDialogFormVisible">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- Form -->
|
||||
<!--添加-->
|
||||
<el-dialog title="添加配置参数" :visible.sync="addDialogFormVisible" width="1100px">
|
||||
<el-form :model="connectDTO" :inline="true" :label-width="formLabelWidth">
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>基本配置信息</span>
|
||||
</div>
|
||||
<div class="text item" :label-width="formLabelWidth">
|
||||
<el-form-item label="接入源名称">
|
||||
<el-input v-model="connectDTO.accSourName" autocomplete="off" placeholder="请输入接入源名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据来源系统名称" label-width="125px">
|
||||
<el-input v-model="connectDTO.dataSourSystemName" autocomplete="off" placeholder="请输入数据来源系统"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="ip地址">
|
||||
<el-input v-model="connectDTO.ipAddress" autocomplete="off" placeholder="请输入IP地址"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="端口号地址">
|
||||
<el-input v-model="connectDTO.port" autocomplete="off" placeholder="请输入端口号地址"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据接入类型" label-width="110px">
|
||||
<template>
|
||||
<el-select v-model="connectDTO.dataAccType" placeholder="请选择" label-width="100px">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<!-- <el-input v-model="connectDTO.name" autocomplete="off" placeholder="请输入数据接入类型"></el-input>-->
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库名称">
|
||||
<el-input v-model="connectDTO.databaseName" autocomplete="off" placeholder="请输入数据库名称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库用户">
|
||||
<el-input v-model="connectDTO.userName" autocomplete="off" placeholder="数据库用户"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据库密码" label-width="125px">
|
||||
<el-input v-model="connectDTO.password" autocomplete="off" placeholder="数据库密码"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>数据连接参数</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="数据连接参数">
|
||||
<el-input v-model="connectDTO.dataConnParam" autocomplete="off" placeholder="请输入数据连接参数" style="width: 990px;"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" style="margin-top: 20px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>连接池配置</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="初始连接数量">
|
||||
<el-input v-model="connectDTO.initSize" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大连接数量">
|
||||
<el-input v-model="connectDTO.maxNumConn" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大等待时间">
|
||||
<el-input v-model="connectDTO.maxWaitTime" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="最大等待次数">
|
||||
<el-input v-model="connectDTO.maxWaitTimes" autocomplete="off" placeholder="请输入数据连接参数" style="width: 350px;"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card" style="margin-top: 20px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>其他信息</span>
|
||||
</div>
|
||||
<div class="text item" >
|
||||
<el-form-item label="是否初始化" :label-width="formLabelWidth">
|
||||
<el-radio v-model="connectDTO.initialization" label="Y">是</el-radio>
|
||||
<el-radio v-model="connectDTO.initialization" label="N">否</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" :label-width="formLabelWidth">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
:cole="1000"
|
||||
placeholder="请输入内容"
|
||||
v-model="connectDTO.notes" style="width: 850px;">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="addDialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="addsDialogFormVisible">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||
//例如:import 《组件名称》 from '《组件路径》,
|
||||
import {
|
||||
delHandleClick,
|
||||
getConnectList,
|
||||
insertConnectList,
|
||||
selectHandleClick,
|
||||
textHandleClick,
|
||||
updConnectList
|
||||
} from '@/api/property/property'
|
||||
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
//这里存放数据"
|
||||
|
||||
return {
|
||||
connectDTO:{
|
||||
maxWaitTimes: 3,
|
||||
maxWaitTime: 3000,
|
||||
maxNumConn: 20,
|
||||
initSize: 5,
|
||||
dataConnParam:'useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior'
|
||||
},
|
||||
connect:[],
|
||||
tableWidth: '100%',
|
||||
multipleSelection: [],
|
||||
addDialogFormVisible: false,
|
||||
updDialogFormVisible: false,
|
||||
formLabelWidth:'100px',
|
||||
options: [{
|
||||
value: 'Mysql',
|
||||
label: 'Mysql'
|
||||
}, {
|
||||
value: 'Oracle',
|
||||
label: 'Oracle'
|
||||
}],
|
||||
}
|
||||
},
|
||||
//计算属性 类似于data概念",
|
||||
computed: {},
|
||||
//监控data中的数据变化",
|
||||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
selectHandleClick(row){
|
||||
selectHandleClick(row).then(res=>{
|
||||
console.log(res.data)
|
||||
this.$message.success(res.msg)
|
||||
})
|
||||
},
|
||||
delHandleClick(row){
|
||||
delHandleClick(row.id).then(res=>{
|
||||
|
||||
this.$message.success(res.msg)
|
||||
this.getConnectList()
|
||||
})
|
||||
},
|
||||
textHandleClick(row){
|
||||
textHandleClick(row).then(res=>{
|
||||
this.$message.success(res.msg)
|
||||
})
|
||||
},
|
||||
updHandleClick(row){
|
||||
console.log(row)
|
||||
this.connectDTO=row
|
||||
this.updDialogFormVisible=true
|
||||
},
|
||||
updsDialogFormVisible(){
|
||||
updConnectList(this.connectDTO).then(res=>{
|
||||
|
||||
this.updDialogFormVisible=false
|
||||
|
||||
this.$message.success(res.msg)
|
||||
this.getConnectList()
|
||||
})
|
||||
},
|
||||
insertConnectList(){
|
||||
this.addDialogFormVisible=true
|
||||
},
|
||||
addsDialogFormVisible(){
|
||||
insertConnectList(this.connectDTO).then(res=>{
|
||||
|
||||
this.addDialogFormVisible=false
|
||||
|
||||
this.$message.success(res.msg)
|
||||
this.getConnectList()
|
||||
})
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
getConnectList(){
|
||||
getConnectList(this.connectDTO).then(res=>{
|
||||
this.connect=res.data
|
||||
})
|
||||
},
|
||||
selectConnectList(){
|
||||
this.getConnectList();
|
||||
},
|
||||
|
||||
mounted() {
|
||||
window.addEventListener('resize', this.handleResize);
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.removeEventListener('resize', this.handleResize);
|
||||
},
|
||||
handleResize() {
|
||||
// 根据窗口宽度更新表格宽度
|
||||
this.tableWidth = window.innerWidth < 768 ? '100%' : '80%';
|
||||
}
|
||||
},
|
||||
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||
created() {
|
||||
this.getConnectList();
|
||||
},
|
||||
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||
mounted() {
|
||||
},
|
||||
beforeCreate() {
|
||||
}, //生命周期 - 创建之前",
|
||||
beforeMount() {
|
||||
}, //生命周期 - 挂载之前",
|
||||
beforeUpdate() {
|
||||
}, //生命周期 - 更新之前",
|
||||
updated() {
|
||||
}, //生命周期 - 更新之后",
|
||||
beforeDestroy() {
|
||||
}, //生命周期 - 销毁之前",
|
||||
destroyed() {
|
||||
}, //生命周期 - 销毁完成",
|
||||
activated() {
|
||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -35,7 +35,7 @@ module.exports = {
|
|||
proxy: {
|
||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
target: `http://21.12.0.10/prod-api`,
|
||||
target: `http://21.12.0.10/prod-api/`,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||
|
|