Publish apes-Authon-Web via gitea-publish skill
@@ -0,0 +1,23 @@
|
|||||||
|
.DS_Store
|
||||||
|
src/config/ezviz.local.js
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
saas-web/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
package-lock.json
|
||||||
|
tests/**/coverage/
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
.cursor/debug-*.log
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
.idea
|
||||||
|
/dist/
|
||||||
|
/manager/
|
||||||
|
manager.zip
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
module.exports = {
|
||||||
|
presets: [
|
||||||
|
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
|
||||||
|
'@vue/cli-plugin-babel/preset'
|
||||||
|
],
|
||||||
|
'env': {
|
||||||
|
'development': {
|
||||||
|
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
|
||||||
|
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
|
||||||
|
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
|
||||||
|
'plugins': ['dynamic-import-node']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": "./",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["src/*"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exclude": ["node_modules", "dist"]
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"name": "saas-web",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"author": "zhangqu group",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vue-cli-service serve ",
|
||||||
|
"build:prod": "vue-cli-service build",
|
||||||
|
"build:stage": "vue-cli-service build --mode staging",
|
||||||
|
"preview": "node build/index.js --preview"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@amap/amap-jsapi-loader": "^1.0.1",
|
||||||
|
"@wangeditor/editor": "^5.1.23",
|
||||||
|
"@wangeditor/editor-for-vue": "^1.0.2",
|
||||||
|
"animate.css": "^4.1.1",
|
||||||
|
"axios": "0.18.1",
|
||||||
|
"core-js": "3.6.5",
|
||||||
|
"echarts": "^5.4.1",
|
||||||
|
"element-ui": "^2.15.13",
|
||||||
|
"fix": "0.0.6",
|
||||||
|
"highlight.js": "^11.11.1",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
|
"jspdf": "^2.5.1",
|
||||||
|
"marked": "^4.3.0",
|
||||||
|
"monaco-editor": "^0.30.1",
|
||||||
|
"monaco-editor-webpack-plugin": "^6.0.0",
|
||||||
|
"normalize.css": "7.0.0",
|
||||||
|
"nprogress": "0.2.0",
|
||||||
|
"path-to-regexp": "2.4.0",
|
||||||
|
"qrcodejs2": "^0.0.2",
|
||||||
|
"them": "0.0.4",
|
||||||
|
"to": "^0.2.9",
|
||||||
|
"vue": "^2.7.14",
|
||||||
|
"vue-monaco": "^1.1.0",
|
||||||
|
"vue-router": "^3.5.2",
|
||||||
|
"vuex": "3.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vue/cli-plugin-babel": "4.4.4",
|
||||||
|
"@vue/cli-service": "4.4.4",
|
||||||
|
"autoprefixer": "9.5.1",
|
||||||
|
"babel-plugin-dynamic-import-node": "2.3.3",
|
||||||
|
"chalk": "2.4.2",
|
||||||
|
"connect": "3.6.6",
|
||||||
|
"html-webpack-plugin": "3.2.0",
|
||||||
|
"runjs": "4.3.2",
|
||||||
|
"sass": "1.26.8",
|
||||||
|
"sass-loader": "8.0.2",
|
||||||
|
"script-ext-html-webpack-plugin": "2.1.3",
|
||||||
|
"script-loader": "^0.7.2",
|
||||||
|
"serve-static": "1.13.2",
|
||||||
|
"svg-sprite-loader": "4.1.3",
|
||||||
|
"svgo": "1.2.2",
|
||||||
|
"vue-template-compiler": "2.7.14"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 1%",
|
||||||
|
"last 2 versions"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.9",
|
||||||
|
"npm": ">= 3.0.0"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"overrides": {
|
||||||
|
"cssnano": "^5.1.15"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
module.exports = {
|
||||||
|
'plugins': {
|
||||||
|
// to edit.vue target browsers: use "browserslist" field in package.json
|
||||||
|
'autoprefixer': {}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/element-ui@2.15.14/lib/theme-chalk/index.css">
|
||||||
|
<title><%= webpackConfig.name %></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||||
|
</noscript>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="https://unpkg.com/vue@2.7.14/dist/vue.min.js"></script>
|
||||||
|
<script src="https://unpkg.com/vue-router@3.5.4/dist/vue-router.min.js"></script>
|
||||||
|
<script src="https://unpkg.com/vuex@3.1.3/dist/vuex.min.js"></script>
|
||||||
|
<script src="https://unpkg.com/axios@0.18.1/dist/axios.min.js"></script>
|
||||||
|
<script src="https://unpkg.com/element-ui@2.15.14/lib/index.js"></script>
|
||||||
|
<script src="https://unpkg.com/echarts@5.4.3/dist/echarts.min.js"></script>
|
||||||
|
<script>
|
||||||
|
// Monaco Editor CDN (AMD loader)
|
||||||
|
var require = { paths: { 'vs': 'https://unpkg.com/monaco-editor@0.30.1/min/vs' } };
|
||||||
|
</script>
|
||||||
|
<script src="https://unpkg.com/monaco-editor@0.30.1/min/vs/loader.js"></script>
|
||||||
|
<script src="https://unpkg.com/monaco-editor@0.30.1/min/vs/editor/editor.main.nls.js"></script>
|
||||||
|
<script src="https://unpkg.com/monaco-editor@0.30.1/min/vs/editor/editor.main.js"></script>
|
||||||
|
<!-- built files will be auto injected -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 435 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export NODE_HOME=/data/tools/node-16
|
||||||
|
export PATH=$NODE_HOME/bin:$PATH
|
||||||
|
|
||||||
|
cd /data/saas-web || exit
|
||||||
|
|
||||||
|
# ========== 更新最新代码(先检查冲突,无冲突才更新) ==========
|
||||||
|
echo "检查最新代码更新..."
|
||||||
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||||
|
if ! git fetch origin "$BRANCH"; then
|
||||||
|
echo "拉取远程分支失败,终止部署"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
LOCAL_HEAD=$(git rev-parse HEAD)
|
||||||
|
REMOTE_HEAD=$(git rev-parse "origin/$BRANCH")
|
||||||
|
if [ "$LOCAL_HEAD" = "$REMOTE_HEAD" ]; then
|
||||||
|
echo "本地代码已是最新,无需更新"
|
||||||
|
else
|
||||||
|
echo "本地与远程不一致,先进行冲突检测..."
|
||||||
|
if git merge --no-commit --no-ff "origin/$BRANCH" > /tmp/git_merge_check.log 2>&1; then
|
||||||
|
git merge --abort >/dev/null 2>&1 || true
|
||||||
|
echo "无冲突,开始更新代码..."
|
||||||
|
if ! git pull origin "$BRANCH"; then
|
||||||
|
echo "代码更新失败,终止部署"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "代码更新完成"
|
||||||
|
else
|
||||||
|
echo "!!! 检测到冲突(或本地未提交修改阻止更新),详情:"
|
||||||
|
cat /tmp/git_merge_check.log
|
||||||
|
CONFLICT_FILES=$(git diff --name-only --diff-filter=U 2>/dev/null)
|
||||||
|
if [ -n "$CONFLICT_FILES" ]; then
|
||||||
|
echo "冲突文件列表:"
|
||||||
|
echo "$CONFLICT_FILES"
|
||||||
|
fi
|
||||||
|
git merge --abort >/dev/null 2>&1 || true
|
||||||
|
echo "存在冲突,终止更新并退出部署"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo '开始安装依赖'
|
||||||
|
/data/tools/node-16/bin/npm --registry=http://registry.npmmirror.com install
|
||||||
|
echo '开始构建'
|
||||||
|
/data/tools/node-16/bin/npm --registry=http://registry.npmmirror.com run build:prod
|
||||||
|
zip -r saas-web.zip saas-web
|
||||||
|
echo '开始传输..'
|
||||||
|
scp -P 22 -o "ProxyCommand ssh -W %h:%p root@47.115.213.168" saas-web.zip root@192.168.1.158:/data/services/saas-web.zip
|
||||||
|
echo "开始替换..."
|
||||||
|
ssh -p 22 -o "ProxyCommand ssh -W %h:%p root@47.115.213.168" root@192.168.1.158 "cd /data/services; unzip -o saas-web.zip"
|
||||||
|
echo "上线成功...."
|
||||||
|
rm -rf saas-web
|
||||||
|
rm -rf saas-web.zip
|
||||||
|
echo "上线完毕...."
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<template>
|
||||||
|
<div id="app">
|
||||||
|
<router-view/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'App',
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
provide() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
methods: {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AccessToken 管理 API
|
||||||
|
*/
|
||||||
|
const accessTokenApi = {
|
||||||
|
|
||||||
|
create(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/create', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
page(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
revoke(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/revoke', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
enable(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/enable', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
regenerate(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/regenerate', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
delete(data) {
|
||||||
|
return request.apiPost('/api/user-service/sysAccessToken/delete', data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default accessTokenApi
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/aiSkill'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete`, { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class appApi {
|
||||||
|
|
||||||
|
async appList() {
|
||||||
|
return await request.apiPost('/api/user-service/app/pageApp', {pageIndex:1,pageSize:20})
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveApp(data) {
|
||||||
|
return await request.apiPost('/api/user-service/app/saveApp', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteApp(data) {
|
||||||
|
return await request.apiPost('/api/user-service/app/deleteApp', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAppDetail(appKey) {
|
||||||
|
return await request.apiPost('/api/user-service/app/getAppDetail', { appKey })
|
||||||
|
}
|
||||||
|
|
||||||
|
async getSpaceList() {
|
||||||
|
return await request.apiGet('/api/user-service/huoban2/spaceList')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getSpaceGroups(spaceId) {
|
||||||
|
return await request.apiGet(`/api/user-service/huoban2/getSpaceGroups?spaceId=${spaceId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new appApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
class baseApi{
|
||||||
|
|
||||||
|
async getImageTypes() {
|
||||||
|
return await request.apiGet('/api/base-service/baseImageManage/getImageTypes',{})
|
||||||
|
}
|
||||||
|
async saveArticle(params) {
|
||||||
|
return await request.apiPost('/api/base-service/article/saveArticle',params)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
const target = new baseApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/cameraInfo/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/cameraInfo/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/cameraInfo/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/cameraInfo/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/cameraInfo/delete?id=${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 抓图
|
||||||
|
capture(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/cameraInfo/capture?id=${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询抓拍记录
|
||||||
|
getCaptureLogs(cameraId, pageIndex, pageSize) {
|
||||||
|
return request.apiGet(`/api/user-service/cameraCaptureLog/page`, { cameraId, pageIndex, pageSize })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class customerApi {
|
||||||
|
|
||||||
|
async pageCustomer(params) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/pageCustomer', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCustomerDetail(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/getCustomerDetail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addUser(customerId, userId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/addUser?customerId=${customerId}&userId=${userId}`)
|
||||||
|
}
|
||||||
|
async delUser(customerId, userId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/delUser?customerId=${customerId}&userId=${userId}`)
|
||||||
|
}
|
||||||
|
async getCustomerUser(customerId){
|
||||||
|
return await request.apiGet(`/api/user-service/user/getCustomerUser?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async pageEmployee(params) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/employee/page', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getEmployeeDetail(userId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/employee/detail?userId=${userId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateEmployee(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/employee/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveCustomer(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/saveCustomer', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteCustomer(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/deleteCustomer', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMyApps() {
|
||||||
|
return await request.apiGet('/api/user-service/customer/getMyApps')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCustomerApps(customerId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/getCustomerApps?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addCustomerApp(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/addCustomerApp', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async removeCustomerApp(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/removeCustomerApp', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllApps() {
|
||||||
|
return await request.apiGet('/api/user-service/customer/getAllApps')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getSSOConfig(customerId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customer/getSSOConfig?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveSSOConfig(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/saveSSOConfig', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async searchUser(phone) {
|
||||||
|
return await request.apiPost(`/api/user-service/huoban2/searchUser?phone=${phone}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async huobanWebLogin(phone) {
|
||||||
|
return await request.apiGet(`/api/user-service/huoban2/webLogin?phone=${phone}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateCustomerStatus(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/updateCustomerStatus', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async auditCertification(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customer/auditCertification', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCustomerPackages(customerId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customerPackage/list?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCustomerPackageQuotas(packageId) {
|
||||||
|
return await request.apiGet(`/api/user-service/customerPackage/getQuotas?packageId=${packageId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async syncTenantsToHuoban() {
|
||||||
|
return await request.apiPost('/api/user-service/customer/syncTenantsToHuoban')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new customerApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 获取客户套餐列表
|
||||||
|
list(customerId) {
|
||||||
|
return request.apiGet('/api/user-service/customerPackage/list', { customerId })
|
||||||
|
},
|
||||||
|
// 新增客户套餐
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/add', data)
|
||||||
|
},
|
||||||
|
// 编辑客户套餐
|
||||||
|
edit(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/edit', data)
|
||||||
|
},
|
||||||
|
// 删除客户套餐
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/delete', { id })
|
||||||
|
},
|
||||||
|
// 获取客户套餐配额
|
||||||
|
getQuotas(packageId) {
|
||||||
|
return request.apiGet('/api/user-service/customerPackage/getQuotas', { packageId })
|
||||||
|
},
|
||||||
|
// 保存客户套餐配额
|
||||||
|
saveQuotas(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/saveQuotas', data)
|
||||||
|
},
|
||||||
|
// 获取当前客户的套餐列表(从登录上下文获取 customerId)
|
||||||
|
myPackages() {
|
||||||
|
return request.apiGet('/api/user-service/customerPackage/myPackages')
|
||||||
|
},
|
||||||
|
// 提交套餐延期申请
|
||||||
|
submitExtendApply(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/submitExtendApply', data)
|
||||||
|
},
|
||||||
|
// 查询延期申请记录列表
|
||||||
|
extendApplyList(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/extendApplyList', data)
|
||||||
|
},
|
||||||
|
// 审核延期申请(同意/拒绝)
|
||||||
|
reviewExtendApply(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/reviewExtendApply', data)
|
||||||
|
},
|
||||||
|
// 查询配额变更日志
|
||||||
|
quotaChangeLogs(params) {
|
||||||
|
return request.apiGet('/api/user-service/customerPackage/quotaChangeLogs', params)
|
||||||
|
},
|
||||||
|
// 增加配额
|
||||||
|
increaseQuota(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/increaseQuota', data)
|
||||||
|
},
|
||||||
|
// 减少配额
|
||||||
|
decreaseQuota(data) {
|
||||||
|
return request.apiPost('/api/user-service/customerPackage/decreaseQuota', data)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/extLink'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/farm-plan'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete`, null, { params: { id } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询今日生效的农事计划
|
||||||
|
getToday(parkId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/today`, { parkId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新农事计划状态
|
||||||
|
updateStatus(id, status) {
|
||||||
|
return request.apiPost(`${BASE_URL}/updateStatus?id=${id}&status=${status}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 按月查询农事计划(日历视图)
|
||||||
|
getMonth(year, month, parkId) {
|
||||||
|
const params = { year, month }
|
||||||
|
if (parkId) params.parkId = parkId
|
||||||
|
return request.apiGet(`${BASE_URL}/month`, params)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class cropApi {
|
||||||
|
// 分页查询作物列表
|
||||||
|
static page(pageIndex = 1, pageSize = 20, name, categoryId, status) {
|
||||||
|
let url = `/api/user-service/fei/crop/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (name) url += '&name=' + name
|
||||||
|
if (categoryId) url += '&categoryId=' + categoryId
|
||||||
|
if (status !== null && status !== undefined) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取作物详情
|
||||||
|
static detail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/crop/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增作物
|
||||||
|
static add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/crop/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改作物
|
||||||
|
static update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/crop/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除作物
|
||||||
|
static delete(id) {
|
||||||
|
return request.apiPost(`/api/user-service/fei/crop/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取所有启用作物(下拉选择用)
|
||||||
|
static list() {
|
||||||
|
return request.apiGet('/api/user-service/fei/crop/list')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default cropApi
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class cropPhenologyApi {
|
||||||
|
static page(pageIndex = 1, pageSize = 20, cropId, phenologyName, status) {
|
||||||
|
let url = `/api/user-service/fei/crop/phenology/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (cropId) url += `&cropId=${cropId}`
|
||||||
|
if (phenologyName) url += `&phenologyName=${encodeURIComponent(phenologyName)}`
|
||||||
|
if (status !== undefined && status !== null) url += `&status=${status}`
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listByCropId(cropId) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/crop/phenology/list?cropId=${cropId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static detail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/crop/phenology/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/crop/phenology/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/crop/phenology/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static delete(id) {
|
||||||
|
return request.apiPost(`/api/user-service/fei/crop/phenology/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default cropPhenologyApi
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 分页查询数据上报列表
|
||||||
|
*/
|
||||||
|
page(pageIndex, pageSize, params) {
|
||||||
|
const data = { pageIndex, pageSize, ...params }
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据上报详情
|
||||||
|
*/
|
||||||
|
detail(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增数据上报记录
|
||||||
|
*/
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新数据上报记录
|
||||||
|
*/
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除数据上报记录
|
||||||
|
*/
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据设备ID查询数据列表(图表展示)
|
||||||
|
*/
|
||||||
|
chartData(deviceId, limit) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/chart', { deviceId, limit })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量查询设备最新上报数据
|
||||||
|
*/
|
||||||
|
getLatest(deviceIds) {
|
||||||
|
return request.apiGet('/api/user-service/fei/device/data/report/latest', { deviceIds })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成模拟数据
|
||||||
|
*/
|
||||||
|
simulate(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/device/data/report/simulate', data)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class fertilizationFormulaApi {
|
||||||
|
// 分页查询
|
||||||
|
static page(pageIndex = 1, pageSize = 20, cropId, phenologyId, formulaName, status) {
|
||||||
|
let url = `/api/user-service/fei/fertilization/formula/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (cropId) url += `&cropId=${cropId}`
|
||||||
|
if (phenologyId) url += `&phenologyId=${phenologyId}`
|
||||||
|
if (formulaName) url += `&formulaName=${encodeURIComponent(formulaName)}`
|
||||||
|
if (status !== undefined && status !== null) url += `&status=${status}`
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情(含明细)
|
||||||
|
static detail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/fertilization/formula/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据配方ID查询明细列表
|
||||||
|
static details(formulaId) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/fertilization/formula/details?formulaId=${formulaId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增(含明细)
|
||||||
|
static add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/fertilization/formula/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑(含明细)
|
||||||
|
static update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/fertilization/formula/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
static delete(id) {
|
||||||
|
return request.apiPost(`/api/user-service/fei/fertilization/formula/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据作物和物候期查询配方列表
|
||||||
|
static listByCropAndPhenology(cropId, phenologyId) {
|
||||||
|
return request.apiGet(`/api/user-service/fei/fertilization/formula/list?cropId=${cropId}&phenologyId=${phenologyId}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default fertilizationFormulaApi
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
class InputMaterialStockLogApi {
|
||||||
|
// 分页查询
|
||||||
|
static getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/input-material-stock-log/page`, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情
|
||||||
|
static getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/input-material-stock-log/detail`, { id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
static add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material-stock-log/add`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
static delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material-stock-log/delete`, null, { params: { id } })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 审核
|
||||||
|
static review(params) {
|
||||||
|
const queryString = Object.keys(params)
|
||||||
|
.filter(key => params[key] !== null && params[key] !== undefined && params[key] !== '')
|
||||||
|
.map(key => `${key}=${encodeURIComponent(params[key])}`)
|
||||||
|
.join('&')
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material-stock-log/review?${queryString}`, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default InputMaterialStockLogApi
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商情检测设备 API
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 分页查询设备列表
|
||||||
|
* @param {Object} params 查询参数
|
||||||
|
* @param {number} params.pageIndex 页码
|
||||||
|
* @param {number} params.pageSize 每页数量
|
||||||
|
* @param {string} params.deviceName 设备名称(模糊查询)
|
||||||
|
* @param {string} params.deviceCode 设备编号
|
||||||
|
* @param {number} params.deviceType 设备类型 1-五层设备 2-三层设备
|
||||||
|
* @param {string} params.installLocation 安装位置(模糊查询)
|
||||||
|
* @param {number} params.onlineStatus 设备状态 0-离线 1-在线
|
||||||
|
*/
|
||||||
|
page(pageIndex, pageSize, deviceName, deviceCode, deviceType, installLocation, onlineStatus) {
|
||||||
|
const params = { pageIndex, pageSize }
|
||||||
|
if (deviceName) params.deviceName = deviceName
|
||||||
|
if (deviceCode) params.deviceCode = deviceCode
|
||||||
|
if (deviceType !== null && deviceType !== undefined) params.deviceType = deviceType
|
||||||
|
if (installLocation) params.installLocation = installLocation
|
||||||
|
if (onlineStatus !== null && onlineStatus !== undefined) params.onlineStatus = onlineStatus
|
||||||
|
return request.apiPost('/api/user-service/fei/market/device/page', params)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询设备详情
|
||||||
|
* @param {number} id 设备ID
|
||||||
|
*/
|
||||||
|
detail(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/market/device/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增设备
|
||||||
|
* @param {Object} data 设备数据
|
||||||
|
* @param {string} data.deviceName 设备名称
|
||||||
|
* @param {string} data.deviceCode 设备编号
|
||||||
|
* @param {number} data.deviceType 设备类型 1-五层设备 2-三层设备
|
||||||
|
* @param {string} data.installLocation 安装位置
|
||||||
|
* @param {number} data.onlineStatus 设备状态 0-离线 1-在线
|
||||||
|
*/
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/market/device/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新设备
|
||||||
|
* @param {Object} data 设备数据
|
||||||
|
* @param {number} data.id 设备ID
|
||||||
|
* @param {string} data.deviceName 设备名称
|
||||||
|
* @param {string} data.deviceCode 设备编号
|
||||||
|
* @param {number} data.deviceType 设备类型 1-五层设备 2-三层设备
|
||||||
|
* @param {string} data.installLocation 安装位置
|
||||||
|
* @param {number} data.onlineStatus 设备状态 0-离线 1-在线
|
||||||
|
*/
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/market/device/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除设备
|
||||||
|
* @param {number} id 设备ID
|
||||||
|
*/
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/market/device/delete', { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地块信息 API
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 分页查询地块列表
|
||||||
|
* @param {number} pageIndex 页码
|
||||||
|
* @param {number} pageSize 每页数量
|
||||||
|
* @param {Object} params 查询参数
|
||||||
|
* @param {string} params.plotName 地块名称(模糊查询)
|
||||||
|
* @param {string} params.plotCode 地块编号
|
||||||
|
* @param {string} params.location 所在地方(模糊查询)
|
||||||
|
* @param {number} params.plotType 地块类型 1-农田 2-果园 3-林地 4-建设用地 5-其他
|
||||||
|
* @param {number} params.status 地块状态 0-废弃 1-正常 2-使用中
|
||||||
|
* @param {string} params.owner 负责人(模糊查询)
|
||||||
|
*/
|
||||||
|
page(pageIndex, pageSize, params = {}) {
|
||||||
|
return request.apiPost('/api/user-service/fei/plot/page', {
|
||||||
|
pageIndex,
|
||||||
|
pageSize,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询地块详情
|
||||||
|
* @param {number} id 地块ID
|
||||||
|
*/
|
||||||
|
detail(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/plot/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增地块
|
||||||
|
* @param {Object} data 地块数据
|
||||||
|
* @param {string} data.plotName 地块名称
|
||||||
|
* @param {string} data.plotCode 地块编号
|
||||||
|
* @param {number} data.area 面积(亩)
|
||||||
|
* @param {string} data.location 所在地方
|
||||||
|
* @param {string} data.coordinates 地块坐标点(JSON格式)
|
||||||
|
* @param {number} data.plotType 地块类型
|
||||||
|
* @param {string} data.soilType 土壤类型
|
||||||
|
* @param {number} data.status 地块状态
|
||||||
|
* @param {string} data.owner 负责人
|
||||||
|
* @param {string} data.contactPhone 联系电话
|
||||||
|
* @param {string} data.remark 备注
|
||||||
|
*/
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/plot/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新地块
|
||||||
|
* @param {Object} data 地块数据
|
||||||
|
* @param {number} data.id 地块ID
|
||||||
|
* @param {string} data.plotName 地块名称
|
||||||
|
* @param {string} data.plotCode 地块编号
|
||||||
|
* @param {number} data.area 面积
|
||||||
|
* @param {string} data.location 所在地方
|
||||||
|
* @param {string} data.coordinates 地块坐标点
|
||||||
|
* @param {number} data.plotType 地块类型
|
||||||
|
* @param {string} data.soilType 土壤类型
|
||||||
|
* @param {number} data.status 地块状态
|
||||||
|
* @param {string} data.owner 负责人
|
||||||
|
* @param {string} data.contactPhone 联系电话
|
||||||
|
* @param {string} data.remark 备注
|
||||||
|
*/
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/plot/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除地块
|
||||||
|
* @param {number} id 地块ID
|
||||||
|
*/
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/plot/delete', { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备维修记录 API
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 分页查询维修记录列表
|
||||||
|
* @param {Object} params 查询参数
|
||||||
|
*/
|
||||||
|
page(params) {
|
||||||
|
return request.apiPost('/api/user-service/fei/repair/record/page', params)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询维修记录详情
|
||||||
|
* @param {number} id 记录ID
|
||||||
|
*/
|
||||||
|
detail(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/repair/record/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增维修记录
|
||||||
|
* @param {Object} data 维修记录数据
|
||||||
|
*/
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/repair/record/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新维修记录
|
||||||
|
* @param {Object} data 维修记录数据
|
||||||
|
*/
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/repair/record/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除维修记录
|
||||||
|
* @param {number} id 记录ID
|
||||||
|
*/
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/repair/record/delete', { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 分页查询电磁阀列表
|
||||||
|
*/
|
||||||
|
page(pageIndex, pageSize, params) {
|
||||||
|
const data = { pageIndex, pageSize, ...params }
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询电磁阀详情
|
||||||
|
*/
|
||||||
|
detail(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增电磁阀
|
||||||
|
*/
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新电磁阀
|
||||||
|
*/
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除电磁阀
|
||||||
|
*/
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开阀
|
||||||
|
*/
|
||||||
|
openValve(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/open', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关阀
|
||||||
|
*/
|
||||||
|
closeValve(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/close', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 灌溉记录分页查询
|
||||||
|
*/
|
||||||
|
logPage(params) {
|
||||||
|
return request.apiGet('/api/user-service/fei/solenoid/valve/log/page', params)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除灌溉记录
|
||||||
|
*/
|
||||||
|
deleteLog(id) {
|
||||||
|
return request.apiPost('/api/user-service/fei/solenoid/valve/log/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询今日灌溉记录(大屏专用)
|
||||||
|
*/
|
||||||
|
getTodayIrrigation(parkId) {
|
||||||
|
return request.apiGet('/api/user-service/fei/solenoid/valve/log/today', { parkId })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询最近30天灌溉趋势(大屏专用)
|
||||||
|
*/
|
||||||
|
getIrrigationTrend(parkId) {
|
||||||
|
return request.apiGet('/api/user-service/fei/solenoid/valve/log/trend', { parkId })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询设备列表
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/fertigation-device/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询设备详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/fertigation-device/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增设备
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/fertigation-device/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑设备
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/fertigation-device/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除设备
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/fertigation-device/delete`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 加药操作
|
||||||
|
dosing(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/fertigation-device/dosing`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询加药日志
|
||||||
|
getDosingLog(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/fertigation-device/dosing-log`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询所有加药日志(包含设备和园区信息)
|
||||||
|
getAllDosingLog(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/fertigation-device/dosing-log/all`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询园区当天操作记录
|
||||||
|
getTodayLogs(parkId, limit = 10) {
|
||||||
|
return request.apiGet(`${BASE_URL}/fertigation-device/today-logs`, { parkId, limit })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 保存设备页面布局配置(JSON)
|
||||||
|
saveLayout(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/fertigation-device/save-layout`, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class huobanTableApi {
|
||||||
|
|
||||||
|
// Table Info CRUD
|
||||||
|
async pageTableInfo(pageIndex, pageSize, name, tableId, spaceId) {
|
||||||
|
let url = `/api/user-service/huoban/tableInfo/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (name) url += '&name=' + encodeURIComponent(name)
|
||||||
|
if (tableId) url += '&tableId=' + tableId
|
||||||
|
if (spaceId) url += '&spaceId=' + encodeURIComponent(spaceId)
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveTableInfo(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban/tableInfo/save', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteTableInfo(tableId) {
|
||||||
|
return await request.apiPost(`/api/user-service/huoban/tableInfo/delete?tableId=${tableId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAllTableInfo() {
|
||||||
|
return await request.apiGet('/api/user-service/huoban/tableInfo/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
// Table Column CRUD
|
||||||
|
async pageTableColumn(pageIndex, pageSize, tableId, name) {
|
||||||
|
let url = `/api/user-service/huoban/tableColumn/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (tableId) url += '&tableId=' + tableId
|
||||||
|
if (name) url += '&name=' + name
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveTableColumn(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban/tableColumn/save', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteTableColumn(fieldId) {
|
||||||
|
return await request.apiPost(`/api/user-service/huoban/tableColumn/delete?fieldId=${fieldId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listTableColumnByTable(tableId) {
|
||||||
|
return await request.apiGet(`/api/user-service/huoban/tableColumn/listByTable?tableId=${tableId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async spaceList() {
|
||||||
|
return await request.apiGet('/api/user-service/huoban2/spaceList')
|
||||||
|
}
|
||||||
|
|
||||||
|
async syncTables(spaceId) {
|
||||||
|
let url = '/api/user-service/huoban2/syncTables'
|
||||||
|
if (spaceId) url += '?spaceId=' + spaceId
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async syncTableConfig(tableId) {
|
||||||
|
return await request.apiGet('/api/user-service/huoban2/syncTableConfig?tableId=' + tableId)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Huoban data query (POST /huoban2/data)
|
||||||
|
async queryData(dataFilter) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban2/data', dataFilter)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== Huoban Web API (带 token) ==========
|
||||||
|
|
||||||
|
async webLogin(phone) {
|
||||||
|
return await request.apiGet(`/api/user-service/huoban2/webLogin?phone=${encodeURIComponent(phone)}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async webData(dataFilter) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban2/webData', dataFilter)
|
||||||
|
}
|
||||||
|
|
||||||
|
async detail(itemId, tableId, tableName = '', relations = []) {
|
||||||
|
let url = `/api/user-service/huoban2/detail?itemId=${itemId}&tableId=${tableId}`
|
||||||
|
if (tableName) url += `&tableName=${encodeURIComponent(tableName)}`
|
||||||
|
if (relations && relations.length) url += `&relations=${encodeURIComponent(JSON.stringify(relations))}`
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async webDetail({ itemId, tableId, tableName, relations }) {
|
||||||
|
return await request.apiGet('/api/user-service/huoban2/webDetail', { itemId, tableId, tableName, relations })
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== Huoban Partner Cloud Data Operations ==========
|
||||||
|
async create(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban2/create', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async update(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban2/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async upsetOne(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban2/upsetOne', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== Huoban Form CRUD ==========
|
||||||
|
async pageHuobanForm(pageIndex, pageSize, name, tableId, spaceId) {
|
||||||
|
let url = `/api/user-service/huoban/form/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (name) url += '&name=' + name
|
||||||
|
if (tableId) url += '&tableId=' + tableId
|
||||||
|
if (spaceId) url += '&spaceId=' + spaceId
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAllHuobanForm() {
|
||||||
|
return await request.apiGet('/api/user-service/huoban/form/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveHuobanForm(data) {
|
||||||
|
return await request.apiPost('/api/user-service/huoban/form/save', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteHuobanForm(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/huoban/form/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async detailHuobanForm(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/huoban/form/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new huobanTableApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 接口前缀:/api/user-service(通过代理已处理,前端直接添加即可)
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/input-material/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/input-material/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/input-material/delete`, null, { params: { id } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询在用的投入品列表
|
||||||
|
getActiveList() {
|
||||||
|
return request.apiGet(`${BASE_URL}/input-material/active-list`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/inspection'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// ========== 巡查项目配置 ==========
|
||||||
|
|
||||||
|
// 分页查询巡查项目
|
||||||
|
getItemPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/item/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询巡查项目详情
|
||||||
|
getItemDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/item/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增巡查项目
|
||||||
|
addItem(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/item/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑巡查项目
|
||||||
|
updateItem(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/item/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除巡查项目
|
||||||
|
deleteItem(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/item/delete`, null, { params: { id } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取启用的巡查项目列表
|
||||||
|
listItemEnabled() {
|
||||||
|
return request.apiGet(`${BASE_URL}/item/listEnabled`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// ========== 巡查记录 ==========
|
||||||
|
|
||||||
|
// 分页查询巡查记录
|
||||||
|
getRecordPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/record/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询巡查记录详情
|
||||||
|
getRecordDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/record/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增巡查记录
|
||||||
|
addRecord(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/record/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑巡查记录
|
||||||
|
updateRecord(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/record/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除巡查记录
|
||||||
|
deleteRecord(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/record/delete`, null, { params: { id } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确认巡查记录
|
||||||
|
confirmRecord(id, confirmBy) {
|
||||||
|
return request.apiPost(`${BASE_URL}/record/confirm`, { id, confirmBy })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// ==================== 灌溉计划管理 ====================
|
||||||
|
|
||||||
|
// 分页查询灌溉计划列表
|
||||||
|
getPlanPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/plan/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询灌溉计划详情
|
||||||
|
getPlanDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/plan/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增灌溉计划
|
||||||
|
addPlan(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/plan/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 修改灌溉计划
|
||||||
|
updatePlan(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/plan/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除灌溉计划
|
||||||
|
deletePlan(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/plan/delete?id=${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 启用/暂停灌溉计划
|
||||||
|
togglePlan(id, status) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/plan/toggle`, null, { params: { id, status } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据园区ID查询灌溉计划列表
|
||||||
|
listPlanByPark(parkId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/plan/listByPark`, { parkId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// ==================== 执行记录管理 ====================
|
||||||
|
|
||||||
|
// 分页查询执行记录列表
|
||||||
|
getExecPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/exec/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询执行记录详情(含阀门明细)
|
||||||
|
getExecDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/exec/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 创建执行记录
|
||||||
|
createExec(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/exec/create`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新执行状态
|
||||||
|
updateExecStatus(id, status, failReason) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/exec/updateStatus`, null, {
|
||||||
|
params: { id, status, failReason }
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 完成执行记录
|
||||||
|
completeExec(id, actualWater, actualDuration) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/exec/complete`, null, {
|
||||||
|
params: { id, actualWater, actualDuration }
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 取消执行记录
|
||||||
|
cancelExec(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/irrigation/exec/cancel`, null, { params: { id } })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据计划ID查询执行记录列表
|
||||||
|
listExecByPlan(planId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/exec/listByPlan`, { planId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询待执行的记录列表
|
||||||
|
listPendingExec() {
|
||||||
|
return request.apiGet(`${BASE_URL}/irrigation/exec/pending`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 获取所有 Agent 列表(用于下拉选择)
|
||||||
|
list() {
|
||||||
|
return request.apiGet('/api/user-service/llmAgent/list')
|
||||||
|
},
|
||||||
|
|
||||||
|
// 通用请求方法(用于对话接口)
|
||||||
|
request(url, data) {
|
||||||
|
return request.apiPost(`/api/user-service${url}`, data, {}, 10 * 60 * 1000)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 分页查询
|
||||||
|
pageAgent(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
addAgent(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
updateAgent(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
deleteAgent(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/delete', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 切换状态
|
||||||
|
toggleStatus(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/toggleStatus', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/llmAgent/detail/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用大模型接口(超时时间 10 分钟)
|
||||||
|
* @param {number|string} agentId - Agent ID
|
||||||
|
* @param {object} data - 请求参数
|
||||||
|
* @param {object} data.userParams - 用户参数对象
|
||||||
|
* @param {string} data.userParams.input - 用户输入文本
|
||||||
|
* @param {string[]} [data.userParams.imageUrls] - 图片 URL 数组
|
||||||
|
* @param {string[]} [data.userParams.videoUrls] - 视频 URL 数组
|
||||||
|
* @param {string} [data.userParams.userPrompt] - 用户自定义提示词
|
||||||
|
* @param {string} [data.userParams.imageUrl] - 单张图片 URL(用于身份证识别等场景)
|
||||||
|
* @example
|
||||||
|
* // AI Helper 组件调用示例
|
||||||
|
* callAgent(5, {
|
||||||
|
* userParams: {
|
||||||
|
* input: '帮我写一篇文章',
|
||||||
|
* imageUrls: ['https://example.com/img1.jpg'],
|
||||||
|
* videoUrls: [],
|
||||||
|
* userPrompt: '请使用正式的语言'
|
||||||
|
* }
|
||||||
|
* })
|
||||||
|
* @example
|
||||||
|
* // 身份证识别调用示例
|
||||||
|
* callAgent(6, {
|
||||||
|
* userParams: {
|
||||||
|
* input: '识别',
|
||||||
|
* imageUrl: 'https://example.com/idcard.jpg'
|
||||||
|
* }
|
||||||
|
* })
|
||||||
|
*/
|
||||||
|
callAgent(agentId, data) {
|
||||||
|
return request.apiPost(`/api/user-service/llmAgent/call/${agentId}`, data, {}, 10 * 60 * 1000)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 调试 Agent(已废弃,保留兼容)
|
||||||
|
debugAgent(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmAgent/debug', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// ========== 多轮对话 ==========
|
||||||
|
|
||||||
|
// 开始新对话
|
||||||
|
startChat(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmChat/start', data, {}, 10 * 60 * 1000)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 继续对话
|
||||||
|
continueChat(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmChat/continue', data, {}, 10 * 60 * 1000)
|
||||||
|
},
|
||||||
|
|
||||||
|
// ========== 调用日志 ==========
|
||||||
|
|
||||||
|
// 分页查询调用日志
|
||||||
|
pageCallLog(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmCallLog/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取调用日志详情
|
||||||
|
getCallLogDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/llmCallLog/detail/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除调用日志
|
||||||
|
deleteCallLog(id) {
|
||||||
|
return request.apiPost('/api/user-service/llmCallLog/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量删除调用日志
|
||||||
|
batchDeleteCallLog(ids) {
|
||||||
|
return request.apiPost('/api/user-service/llmCallLog/batchDelete', { ids })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 统计信息
|
||||||
|
callLogStatistics(data) {
|
||||||
|
return request.apiPost('/api/user-service/llmCallLog/statistics', data)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/llmAgentSkill'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 查询Agent关联的Skill列表
|
||||||
|
// GET /llmAgentSkill/listByAgent?agentId=
|
||||||
|
listByAgent(agentId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/listByAgent`, { agentId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询Skill关联的Agent列表
|
||||||
|
// GET /llmAgentSkill/listBySkill?skillId=
|
||||||
|
listBySkill(skillId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/listBySkill`, { skillId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增关联
|
||||||
|
// POST /llmAgentSkill/add
|
||||||
|
// Body: {"agentId": 1, "skillId": 1, "sortOrder": 0}
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除关联
|
||||||
|
// POST /llmAgentSkill/delete?id=
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?id=${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据Agent删除所有关联
|
||||||
|
// POST /llmAgentSkill/deleteByAgent?agentId=
|
||||||
|
deleteByAgent(agentId) {
|
||||||
|
return request.apiPost(`${BASE_URL}/deleteByAgent?agentId=${agentId}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量添加关联
|
||||||
|
// POST /llmAgentSkill/batchAdd?agentId=
|
||||||
|
// Body: [1, 2, 3] (Skill ID数组)
|
||||||
|
batchAdd(agentId, skillIds) {
|
||||||
|
return request.apiPostJson(`${BASE_URL}/batchAdd?agentId=${agentId}`, skillIds)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/llmAgentTool'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 查询Agent关联的工具列表
|
||||||
|
// GET /llmAgentTool/listByAgent?agentId=
|
||||||
|
listByAgent(agentId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/listByAgent`, { agentId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询工具关联的Agent列表
|
||||||
|
// GET /llmAgentTool/listByTool?toolId=
|
||||||
|
listByTool(toolId) {
|
||||||
|
return request.apiGet(`${BASE_URL}/listByTool`, { toolId })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增关联
|
||||||
|
// POST /llmAgentTool/add
|
||||||
|
// Body: {"agentId": 1, "toolId": 1}
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除关联
|
||||||
|
// POST /llmAgentTool/delete?id=
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?id=${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 根据Agent删除所有关联
|
||||||
|
// POST /llmAgentTool/deleteByAgent?agentId=
|
||||||
|
deleteByAgent(agentId) {
|
||||||
|
return request.apiPost(`${BASE_URL}/deleteByAgent?agentId=${agentId}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量添加关联
|
||||||
|
// POST /llmAgentTool/batchAdd?agentId=
|
||||||
|
// Body: [1, 2, 3] (工具ID数组)
|
||||||
|
batchAdd(agentId, toolIds) {
|
||||||
|
return request.apiPostJson(`${BASE_URL}/batchAdd?agentId=${agentId}`, toolIds)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 获取会话列表
|
||||||
|
listByAgent(agentId) {
|
||||||
|
return request.apiGet(`/api/user-service/llmConversation/listByAgent?agentId=${agentId}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取会话详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/llmConversation/detail/${id}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取会话消息列表
|
||||||
|
listMessages(conversationId) {
|
||||||
|
return request.apiGet(`/api/user-service/llmConversation/messages?conversationId=${conversationId}`)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除会话
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost('/api/user-service/llmConversation/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除消息
|
||||||
|
deleteMessage(id) {
|
||||||
|
return request.apiPost('/api/user-service/llmConversation/deleteMessage', { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
async pageProvider(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmProvider/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async addProvider(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmProvider/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async updateProvider(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmProvider/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async deleteProvider(id) {
|
||||||
|
return await request.apiPost('/api/user-service/llmProvider/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async getProviderDetail(id) {
|
||||||
|
return await request.apiGet('/api/user-service/llmProvider/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async toggleProviderStatus(id, status) {
|
||||||
|
return await request.apiPost('/api/user-service/llmProvider/toggleStatus', { id, status })
|
||||||
|
},
|
||||||
|
|
||||||
|
async listProviders() {
|
||||||
|
return await request.apiGet('/api/user-service/llmProvider/list', {})
|
||||||
|
},
|
||||||
|
|
||||||
|
// Model APIs
|
||||||
|
async pageModel(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmModel/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async addModel(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmModel/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async updateModel(data) {
|
||||||
|
return await request.apiPost('/api/user-service/llmModel/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async deleteModel(id) {
|
||||||
|
return await request.apiPost('/api/user-service/llmModel/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async toggleModelStatus(id, status) {
|
||||||
|
return await request.apiPost('/api/user-service/llmModel/toggleStatus', { id, status })
|
||||||
|
},
|
||||||
|
|
||||||
|
async listModelsByVendor(vendorCode) {
|
||||||
|
return await request.apiGet('/api/user-service/llmModel/list', { vendorCode })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/llmTool'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?id=${id}`)
|
||||||
|
},
|
||||||
|
// 执行工具
|
||||||
|
execute(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/execute`, data)
|
||||||
|
},
|
||||||
|
// 清除缓存(toolKey可选,不传则清除全部)
|
||||||
|
clearCache(toolKey) {
|
||||||
|
const query = toolKey ? `?toolKey=${encodeURIComponent(toolKey)}` : ''
|
||||||
|
return request.apiPost(`${BASE_URL}/clearCache${query}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/llmToolLog'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
// 编辑
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
import router from '@/router/index'
|
||||||
|
import userApi from '@/api/user'
|
||||||
|
import store from '@/store/index'
|
||||||
|
|
||||||
|
// 构建 views 下所有 .vue 文件的映射(小写路径 -> 实际路径),解决大小写不一致问题
|
||||||
|
const viewsRequire = require.context('@/views', true, /\.vue$/)
|
||||||
|
const viewPathMap = {}
|
||||||
|
viewsRequire.keys().forEach(key => {
|
||||||
|
// key 形如 './system/llmModel/index.vue'
|
||||||
|
const normalized = key.replace(/^\.\//, '').replace(/\.vue$/, '').toLowerCase()
|
||||||
|
viewPathMap[normalized] = key
|
||||||
|
})
|
||||||
|
|
||||||
|
class menuApi {
|
||||||
|
/**
|
||||||
|
* 初始化路由(不再加载全局菜单,菜单由各应用切换时按需加载)
|
||||||
|
*/
|
||||||
|
async initMenu() {
|
||||||
|
return router
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册应用菜单的动态路由
|
||||||
|
* @param {Array} menuList - 菜单树
|
||||||
|
*/
|
||||||
|
handleMenu(menuList) {
|
||||||
|
menuList.forEach(menu => {
|
||||||
|
// Use a separate field for route registration so we don't mutate the original menuPath
|
||||||
|
// which is needed for pathMap matching in main.js and sidebar navigation
|
||||||
|
if (menu.menuType === 4) {
|
||||||
|
menu.frameUrl = menu.menuPath
|
||||||
|
menu.menuRoutePath = '/common/web/' + menu.id
|
||||||
|
router.addRoute('common', {
|
||||||
|
path: 'web/' + menu.id,
|
||||||
|
name: 'web_' + menu.id,
|
||||||
|
frameUrl: menu.frameUrl,
|
||||||
|
component: () => import('@/views/web/index'),
|
||||||
|
meta: { title: menu.menuTitle, icon: '', keepAlive: true, menu: menu }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (menu.menuType === 3) {
|
||||||
|
menu.frameUrl = menu.menuPath
|
||||||
|
menu.menuRoutePath = '/common/payment/' + menu.id
|
||||||
|
router.addRoute('common', {
|
||||||
|
path: 'payment/' + menu.id,
|
||||||
|
name: 'payment_' + menu.id,
|
||||||
|
component: () => import('@/views/payment/index'),
|
||||||
|
meta: { title: menu.menuTitle, icon: '', keepAlive: true, menu: menu }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (menu.menuType === 2) {
|
||||||
|
menu.frameUrl = menu.menuPath
|
||||||
|
menu.menuRoutePath = '/common/huoban/' + menu.id
|
||||||
|
router.addRoute('common', {
|
||||||
|
path: 'huoban/' + menu.id,
|
||||||
|
name: 'huoban_' + menu.id,
|
||||||
|
frameUrl: menu.frameUrl,
|
||||||
|
component: () => import('@/views/huoban/index'),
|
||||||
|
meta: { title: menu.menuTitle, icon: '', keepAlive: true, menu: menu }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (menu.menuType === 1) {
|
||||||
|
router.addRoute('common', {
|
||||||
|
path: menu.menuPath,
|
||||||
|
name: menu.vueName,
|
||||||
|
component: (resolve) => require([`@/views/${menu.vuePath}`], resolve),
|
||||||
|
meta: { title: menu.menuTitle, icon: '', keepAlive: true, menuId: menu.id, menuType: menu.menuType }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (menu.child) {
|
||||||
|
this.handleMenu(menu.child)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new menuApi()
|
||||||
|
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class n8nApi {
|
||||||
|
/**
|
||||||
|
* 调用 n8n webhook:伙伴表数据同步+填充
|
||||||
|
* @param {string} spaceId - 空间ID
|
||||||
|
* @param {string} tableId - 表格ID
|
||||||
|
*/
|
||||||
|
async huobanTableSyncAndFill(spaceId, tableId) {
|
||||||
|
const url = `/n8n/webhook/4dad745d-c71d-4668-81a3-33bf350730ff?spaceId=${encodeURIComponent(spaceId)}&tableId=${encodeURIComponent(tableId)}`
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new n8nApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class organizationApi {
|
||||||
|
|
||||||
|
// 查询组织列表(树形)
|
||||||
|
static pageOrganizations(orgName) {
|
||||||
|
let url = '/api/user-service/organization/page'
|
||||||
|
if (orgName) url += '?orgName=' + orgName
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询组织树
|
||||||
|
static getOrganizationTree() {
|
||||||
|
return request.apiGet('/api/user-service/organization/tree')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询组织详情
|
||||||
|
static getDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/organization/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增组织
|
||||||
|
static addOrganization(data) {
|
||||||
|
return request.apiPost('/api/user-service/organization/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新组织
|
||||||
|
static updateOrganization(data) {
|
||||||
|
return request.apiPost('/api/user-service/organization/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除组织
|
||||||
|
static deleteOrganization(id) {
|
||||||
|
return request.apiPost(`/api/user-service/organization/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询所有启用的组织
|
||||||
|
static listAllOrganizations() {
|
||||||
|
return request.apiGet('/api/user-service/organization/listAll')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default organizationApi
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
async pagePackagePlan(data) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async addPackagePlan(data) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async updatePackagePlan(data) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async deletePackagePlan(id) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async getPackagePlanDetail(id) {
|
||||||
|
return await request.apiGet('/api/user-service/packagePlan/detail', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async toggleStatus(id, status) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/toggleStatus', { id, status })
|
||||||
|
},
|
||||||
|
|
||||||
|
async getPlanPermissions(planId) {
|
||||||
|
return await request.apiGet('/api/user-service/packagePlan/getPermissions', { planId })
|
||||||
|
},
|
||||||
|
|
||||||
|
async savePermissions(data) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/savePermissions', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async getPlanQuotas(planId) {
|
||||||
|
return await request.apiGet('/api/user-service/packagePlan/getQuotas', { planId })
|
||||||
|
},
|
||||||
|
async getAllQuotas(planId) {
|
||||||
|
return await request.apiGet('/api/user-service/packagePlan/getAllQuotas', { planId })
|
||||||
|
},
|
||||||
|
|
||||||
|
async savePlanQuotas(data) {
|
||||||
|
return await request.apiPost('/api/user-service/packagePlan/saveQuotas', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async getPlanApps(planId) {
|
||||||
|
return await request.apiGet('/api/user-service/packagePlan/getPlanApps', { planId })
|
||||||
|
},
|
||||||
|
|
||||||
|
async getCustomerPackageOverview(data) {
|
||||||
|
return await request.apiPost('/api/user-service/customerPackage/overview', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 接口前缀:/api/user-service(通过代理已处理,前端直接添加即可)
|
||||||
|
const BASE_URL = '/api/user-service'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询园区列表
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/park/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询园区详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/park/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增园区
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/park/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑园区
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/park/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除园区
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/park/delete`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询所有园区列表(用于下拉选择)
|
||||||
|
getAllParks() {
|
||||||
|
return request.apiGet(`${BASE_URL}/park/list`, {})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
import { TRACING_OPEN_KEY } from '@/config/tracingOpenKey'
|
||||||
|
|
||||||
|
class permissionApi {
|
||||||
|
|
||||||
|
async saveMenu(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/saveMenu', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllMenu(params) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getAllMenu?appName=' + params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async savePermission(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/savePermission', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllPermission(params) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getAllPermission?appName=' + params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getPlanPermissionTree(planId, appName) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getPlanPermissionTree?planId=' + planId + '&appName=' + appName)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllRole(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/getAllRole', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveRole(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/saveRole', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteRole(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/deleteRole', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async setRolePermission(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/setRolePermission', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getRolePermission(params) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getRolePermission?roleId=' + params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async setMemberRole(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/setMemberRole', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMemberAvailableRoles() {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getMemberAvailableRoles')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMemberAssignedRoles(userId) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getMemberAssignedRoles?userId=' + userId)
|
||||||
|
}
|
||||||
|
|
||||||
|
async setMemberRolesByCustomer(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/setMemberRolesByCustomer', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getHuoBanUrl(menuId) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getHuoBanUrl?menuId=' + menuId)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMenu(menuId) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getMenu?menuId=' + menuId)
|
||||||
|
}
|
||||||
|
async getPaymentMenu(menuId) {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getPaymentMenu?menuId=' + menuId)
|
||||||
|
}
|
||||||
|
|
||||||
|
async changePaymentGroup(group){
|
||||||
|
return await request.apiGet('/api/user-service/permission/changePaymentGroup?group=' + group)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deletePermission(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/deletePermission', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteMenu(params) {
|
||||||
|
return await request.apiPost('/api/user-service/permission/deleteMenu', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMyPermissionCodes() {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getMyPermissionCodes')
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 按当前登录企业获取伙伴云 token(企业隔离) */
|
||||||
|
async getHuobanToken() {
|
||||||
|
return await request.apiGet('/api/user-service/permission/getHuobanToken')
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 开放平台:按企业 ID 查询溯源追踪配置(无需登录,使用 open-key) */
|
||||||
|
async getTrackingConfigByCustomerId(customerId) {
|
||||||
|
return await request.apiGet(
|
||||||
|
'/api/user-service/open/trackingConfig/getByCustomerId',
|
||||||
|
{ customerId },
|
||||||
|
{ 'open-key': TRACING_OPEN_KEY }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new permissionApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
async pageQuota(data) {
|
||||||
|
return await request.apiPost('/api/user-service/quota/page', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async addQuota(data) {
|
||||||
|
return await request.apiPost('/api/user-service/quota/add', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async updateQuota(data) {
|
||||||
|
return await request.apiPost('/api/user-service/quota/update', data)
|
||||||
|
},
|
||||||
|
|
||||||
|
async deleteQuota(id) {
|
||||||
|
return await request.apiPost('/api/user-service/quota/delete', { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
async getQuotaDetail(id) {
|
||||||
|
return await request.apiGet('/api/user-service/quota/detail', { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
const BASE_URL = '/api/user-service/trace/floorPlan'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 分页查询
|
||||||
|
getPage(params) {
|
||||||
|
return request.apiGet(`${BASE_URL}/page`, params)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询详情
|
||||||
|
getDetail(id) {
|
||||||
|
return request.apiGet(`${BASE_URL}/detail`, { id })
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 更新
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
delete(id) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete`, { id })
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,627 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class traceabilityApi {
|
||||||
|
|
||||||
|
// ========== 品类管理 ==========
|
||||||
|
|
||||||
|
static pageCategories(pageIndex = 1, pageSize = 20, categoryName) {
|
||||||
|
let url = `/api/user-service/trace/category/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (categoryName) url += '&categoryName=' + categoryName
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getCategoryDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/category/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addCategory(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/category/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateCategory(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/category/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteCategory(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static enableCategory(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/enable?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static disableCategory(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/disable?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listAllCategories() {
|
||||||
|
return request.apiGet('/api/user-service/trace/category/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 产品管理 ==========
|
||||||
|
|
||||||
|
static pageProducts(pageIndex = 1, pageSize = 20, categoryId, productName) {
|
||||||
|
let url = `/api/user-service/trace/category/product/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (categoryId) url += '&categoryId=' + categoryId
|
||||||
|
if (productName) url += '&productName=' + productName
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getProductDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/category/product/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addProduct(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/category/product/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateProduct(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/category/product/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteProduct(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/product/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static enableProduct(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/product/enable?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static disableProduct(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/category/product/disable?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listProductsByCategory(categoryId) {
|
||||||
|
let url = '/api/user-service/trace/category/product/listByCategory'
|
||||||
|
if (categoryId) url += '?categoryId=' + categoryId
|
||||||
|
return request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 地块管理 ==========
|
||||||
|
|
||||||
|
static pageLands(pageIndex = 1, pageSize = 20, landName, status) {
|
||||||
|
let url = `/api/user-service/trace/land/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (landName) url += '&landName=' + landName
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getLandDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/land/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addLand(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/land/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateLand(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/land/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteLand(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/land/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listAllLands() {
|
||||||
|
return request.apiGet('/api/user-service/trace/land/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 采收批次 ==========
|
||||||
|
|
||||||
|
static pageHarvests(pageIndex = 1, pageSize = 20, batchCode, landId, status) {
|
||||||
|
let url = `/api/user-service/trace/harvest/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (landId) url += '&landId=' + landId
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getHarvestDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/harvest/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addHarvest(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/harvest/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateHarvest(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/harvest/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteHarvest(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/harvest/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateHarvestStatus(id, status) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/harvest/updateStatus?id=${id}&status=${status}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 加工记录 ==========
|
||||||
|
|
||||||
|
static pageProcesses(pageIndex = 1, pageSize = 20, processCode, status) {
|
||||||
|
let url = `/api/user-service/trace/process/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (processCode) url += '&processCode=' + processCode
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getProcessDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/process/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addProcess(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/process/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateProcess(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/process/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static completeProcess(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/process/complete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static discardProcess(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/process/discard?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteProcess(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/process/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 质量检测 ==========
|
||||||
|
|
||||||
|
static pageQualities(pageIndex = 1, pageSize = 20, testCode, batchType, status) {
|
||||||
|
let url = `/api/user-service/trace/quality/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (testCode) url += '&testCode=' + testCode
|
||||||
|
if (batchType != null) url += '&batchType=' + batchType
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getQualityDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/quality/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addQuality(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/quality/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateQuality(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/quality/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteQuality(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/quality/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static reviewQuality(id, comprehensiveResult, reviewComment) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/quality/review?id=${id}&comprehensiveResult=${comprehensiveResult}&reviewComment=${reviewComment || ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 溯源码生成任务 ==========
|
||||||
|
|
||||||
|
static pageCodeTasks(pageIndex = 1, pageSize = 20, batchCode, status) {
|
||||||
|
let url = `/api/user-service/trace/code/task/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getCodeTaskDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/task/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addCodeTask(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/task/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static generateBatchCode() {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/task/generateBatchCode')
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateCodeTask(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/task/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteCodeTask(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/task/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static generateCodes(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/task/generate?taskId=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 溯源码列表 ==========
|
||||||
|
|
||||||
|
static pageCodes(pageIndex = 1, pageSize = 20, codeValue, batchCode, status) {
|
||||||
|
let url = `/api/user-service/trace/code/list/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (codeValue) url += '&codeValue=' + codeValue
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getCodeDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/list/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static voidCode(id, reason) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/list/void?id=${id}&reason=${reason || ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 码货绑定 ==========
|
||||||
|
|
||||||
|
static pageBinds(pageIndex = 1, pageSize = 20, codeValue, batchCode, packageNo) {
|
||||||
|
let url = `/api/user-service/trace/code/bind/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (codeValue) url += '&codeValue=' + codeValue
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (packageNo) url += '&packageNo=' + packageNo
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getBindDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/bind/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addBind(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/bind/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listUnboundCodes(batchCode) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/bind/unboundList${batchCode ? '?batchCode=' + batchCode : ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static unbind(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/bind/unbind?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static batchImportBind(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/bind/batchImport', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 父子码关联 ==========
|
||||||
|
|
||||||
|
static pageRelations(pageIndex = 1, pageSize = 20, parentCode, childCode) {
|
||||||
|
let url = `/api/user-service/trace/code/relation/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (parentCode) url += '&parentCode=' + parentCode
|
||||||
|
if (childCode) url += '&childCode=' + childCode
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getRelationDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/relation/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addRelation(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/relation/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteRelation(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/relation/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 赋码审计 ==========
|
||||||
|
|
||||||
|
static pageAudits(pageIndex = 1, pageSize = 20, batchCode, auditType) {
|
||||||
|
let url = `/api/user-service/trace/code/audit/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (auditType != null) url += '&auditType=' + auditType
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getAuditDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/audit/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 废码异常 ==========
|
||||||
|
|
||||||
|
static pageExceptions(pageIndex = 1, pageSize = 20, codeValue, status) {
|
||||||
|
let url = `/api/user-service/trace/code/exception/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (codeValue) url += '&codeValue=' + codeValue
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getExceptionDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/code/exception/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addException(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/code/exception/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static handleException(id, handleMethod, handleRemark) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/exception/handle?id=${id}&handleMethod=${handleMethod}&handleRemark=${handleRemark || ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteException(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/code/exception/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 入库管理 ==========
|
||||||
|
|
||||||
|
static pageInRecords(pageIndex = 1, pageSize = 20, inCode, inType, warehouse, status) {
|
||||||
|
let url = `/api/user-service/trace/warehouse/in/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (inCode) url += '&inCode=' + inCode
|
||||||
|
if (inType != null) url += '&inType=' + inType
|
||||||
|
if (warehouse) url += '&warehouse=' + warehouse
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getInDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/in/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addInRecord(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/in/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateInRecord(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/in/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteInRecord(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/in/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static confirmIn(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/in/confirm?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static generateInBatchCode() {
|
||||||
|
return request.apiGet('/api/user-service/trace/warehouse/in/generateBatchCode')
|
||||||
|
}
|
||||||
|
|
||||||
|
static listInDetails(inId) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/in/detail/list?inId=${inId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addInDetail(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/in/detail/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateInDetail(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/in/detail/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteInDetail(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/in/detail/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 出库管理 ==========
|
||||||
|
|
||||||
|
static pageOutRecords(pageIndex = 1, pageSize = 20, outCode, outType, destination, status) {
|
||||||
|
let url = `/api/user-service/trace/warehouse/out/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (outCode) url += '&outCode=' + outCode
|
||||||
|
if (outType != null) url += '&outType=' + outType
|
||||||
|
if (destination) url += '&destination=' + destination
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getOutDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/out/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addOutRecord(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/out/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateOutRecord(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/out/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteOutRecord(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/out/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static confirmOut(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/out/confirm?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static generateOutBatchCode() {
|
||||||
|
return request.apiGet('/api/user-service/trace/warehouse/out/generateBatchCode')
|
||||||
|
}
|
||||||
|
|
||||||
|
static listOutDetails(outId) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/out/detail/list?outId=${outId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addOutDetail(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/out/detail/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateOutDetail(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/out/detail/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteOutDetail(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/out/detail/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 库存管理 ==========
|
||||||
|
|
||||||
|
static pageInventory(pageIndex = 1, pageSize = 20, batchCode, productName, warehouse) {
|
||||||
|
let url = `/api/user-service/trace/warehouse/inventory/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (productName) url += '&productName=' + productName
|
||||||
|
if (warehouse) url += '&warehouse=' + warehouse
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getInventoryDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/inventory/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static adjustInventory(id, adjustQuantity, reason) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/inventory/adjust?id=${id}&adjustQuantity=${adjustQuantity}&reason=${reason || ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static lockInventory(id, lockQty) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/inventory/lock?id=${id}&lockQty=${lockQty}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static unlockInventory(id, unlockQty) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/inventory/unlock?id=${id}&unlockQty=${unlockQty}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static listAvailableBatchCodes() {
|
||||||
|
return request.apiGet('/api/user-service/trace/warehouse/inventory/batchCodes')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 物流管理 ==========
|
||||||
|
|
||||||
|
static pageLogistics(pageIndex = 1, pageSize = 20, waybillCode, carrier, vehiclePlate, status) {
|
||||||
|
let url = `/api/user-service/trace/warehouse/logistics/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (waybillCode) url += '&waybillCode=' + waybillCode
|
||||||
|
if (carrier) url += '&carrier=' + carrier
|
||||||
|
if (vehiclePlate) url += '&vehiclePlate=' + vehiclePlate
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getLogisticsDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/warehouse/logistics/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addLogistics(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/logistics/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateLogistics(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/warehouse/logistics/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteLogistics(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/logistics/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateLogisticsStatus(id, status) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/warehouse/logistics/updateStatus?id=${id}&status=${status}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 合格证 ==========
|
||||||
|
|
||||||
|
static pageCertificates(pageIndex = 1, pageSize = 20, certCode, batchCode, productName, status) {
|
||||||
|
let url = `/api/user-service/trace/common/certificate/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (certCode) url += '&certCode=' + certCode
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (productName) url += '&productName=' + productName
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getCertificateDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/common/certificate/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addCertificate(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/certificate/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateCertificate(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/certificate/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteCertificate(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/certificate/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static generateCertificate(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/certificate/generate', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static printCertificate(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/certificate/print?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 资质证书 ==========
|
||||||
|
|
||||||
|
static pageQualifications(pageIndex = 1, pageSize = 20, qualName, qualType, status) {
|
||||||
|
let url = `/api/user-service/trace/common/qualification/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (qualName) url += '&qualName=' + qualName
|
||||||
|
if (qualType != null) url += '&qualType=' + qualType
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getQualificationDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/common/qualification/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addQualification(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/qualification/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static updateQualification(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/qualification/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static deleteQualification(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/qualification/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 消费者反馈 ==========
|
||||||
|
|
||||||
|
static pageFeedbacks(pageIndex = 1, pageSize = 20, feedbackCode, feedbackType, status) {
|
||||||
|
let url = `/api/user-service/trace/common/feedback/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (feedbackCode) url += '&feedbackCode=' + feedbackCode
|
||||||
|
if (feedbackType != null) url += '&feedbackType=' + feedbackType
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getFeedbackDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/common/feedback/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addFeedback(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/feedback/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static handleFeedback(id, handler, handleOpinion) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/feedback/handle?id=${id}&handler=${handler}&handleOpinion=${handleOpinion || ''}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static replyFeedback(id, replyContent, replyMethod) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/feedback/reply?id=${id}&replyContent=${replyContent}&replyMethod=${replyMethod || 1}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static closeFeedback(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/feedback/close?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 召回管理 ==========
|
||||||
|
|
||||||
|
static pageRecalls(pageIndex = 1, pageSize = 20, recallCode, batchCode, status) {
|
||||||
|
let url = `/api/user-service/trace/common/recall/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (recallCode) url += '&recallCode=' + recallCode
|
||||||
|
if (batchCode) url += '&batchCode=' + batchCode
|
||||||
|
if (status != null) url += '&status=' + status
|
||||||
|
return request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
static getRecallDetail(id) {
|
||||||
|
return request.apiGet(`/api/user-service/trace/common/recall/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static addRecall(data) {
|
||||||
|
return request.apiPost('/api/user-service/trace/common/recall/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
static executeRecall(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/recall/execute?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static completeRecall(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/recall/complete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
static cancelRecall(id) {
|
||||||
|
return request.apiPost(`/api/user-service/trace/common/recall/cancel?id=${id}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default traceabilityApi
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class trackingConfigApi {
|
||||||
|
/**
|
||||||
|
* 分页列表
|
||||||
|
*/
|
||||||
|
async list(params = {}) {
|
||||||
|
const { pageNum = 1, pageSize = 20, keyword = '' } = params
|
||||||
|
return await request.apiGet(`/api/user-service/trackingConfig/list?pageNum=${pageNum}&pageSize=${pageSize}&keyword=${keyword}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据企业ID获取配置
|
||||||
|
*/
|
||||||
|
async getByCustomerId(customerId) {
|
||||||
|
return await request.apiGet(`/api/user-service/trackingConfig/getByCustomerId?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前登录企业的配置
|
||||||
|
*/
|
||||||
|
async getCurrent() {
|
||||||
|
return await request.apiGet('/api/user-service/trackingConfig/current')
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增或更新
|
||||||
|
*/
|
||||||
|
async save(params) {
|
||||||
|
return await request.apiPost('/api/user-service/trackingConfig/save', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
async delete(id) {
|
||||||
|
return await request.apiPost('/api/user-service/trackingConfig/delete', { id })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取企业下拉列表
|
||||||
|
*/
|
||||||
|
async listCustomers(keyword = '') {
|
||||||
|
return await request.apiGet(`/api/user-service/trackingConfig/customers?keyword=${keyword}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default new trackingConfigApi()
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class userApi {
|
||||||
|
async login(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/smsLogin', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async pageUser(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/pageUser', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async loginPwd(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/loginPwd', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async register(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/register', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async resetPwd(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/resetPwd', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCurrentUser() {
|
||||||
|
return await request.apiGet('/api/user-service/user/getCurrentUser')
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveUserInfo(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/saveUserInfo', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async currentMenus() {
|
||||||
|
return await request.apiGet('/api/user-service/permission/currentMenus')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAppMenus(appName) {
|
||||||
|
return await request.apiGet(`/api/user-service/permission/getAppMenus?appName=${appName}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getPackageAppMenus(appName) {
|
||||||
|
return await request.apiGet(`/api/user-service/permission/getPackageAppMenus?appName=${appName}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async editPwd(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/editPwd', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveSsoConfig(params) {
|
||||||
|
return await request.apiPost('/api/user-service/common/saveSsoConfig', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getSsoConfig() {
|
||||||
|
return await request.apiGet('/api/user-service/common/getSsoConfig')
|
||||||
|
}
|
||||||
|
|
||||||
|
async huobanWebLogin() {
|
||||||
|
return await request.apiGet('/api/user-service/common/huobanWebLogin')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getUserByPhone(phone) {
|
||||||
|
return await request.apiGet('/api/user-service/user/getUserByPhone?phone=' + phone)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async selectCustomer(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/selectCustomer', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getMyCustomers() {
|
||||||
|
return await request.apiGet('/api/user-service/user/getMyCustomers')
|
||||||
|
}
|
||||||
|
|
||||||
|
async editProfile(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/editProfile', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async editCurrentCustomer(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/customer/editCurrent', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getCurrentCustomer() {
|
||||||
|
return await request.apiGet('/api/user-service/user/customer/getCurrent')
|
||||||
|
}
|
||||||
|
|
||||||
|
async certifyEnterprise(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/certifyEnterprise', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getPendingCustomer(token) {
|
||||||
|
return await request.apiGet('/api/user-service/user/getPendingCustomer', { token })
|
||||||
|
}
|
||||||
|
|
||||||
|
async recertifyEnterprise(params) {
|
||||||
|
return await request.apiPost('/api/user-service/user/recertifyEnterprise', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new userApi()
|
||||||
|
export default target
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 用户个性化配置接口(后端 UserPreferenceController)
|
||||||
|
const BASE_URL = '/api/user-service/userPreference'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// 查询当前登录用户的个性化配置(未配置时后端返回默认值 uiSize=2)
|
||||||
|
mine() {
|
||||||
|
return request.apiPost(`${BASE_URL}/mine`)
|
||||||
|
},
|
||||||
|
// 保存当前登录用户的个性化配置(不存在则新增,已存在则更新)
|
||||||
|
save(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/save`, data)
|
||||||
|
},
|
||||||
|
// 查询指定用户的个性化配置(userId 走 URL 参数)
|
||||||
|
get(userId) {
|
||||||
|
return request.apiPost(`${BASE_URL}/get?userId=${userId}`)
|
||||||
|
},
|
||||||
|
// 新增用户个性化配置
|
||||||
|
add(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/add`, data)
|
||||||
|
},
|
||||||
|
// 更新用户个性化配置
|
||||||
|
update(data) {
|
||||||
|
return request.apiPost(`${BASE_URL}/update`, data)
|
||||||
|
},
|
||||||
|
// 删除用户个性化配置(userId 走 URL 参数)
|
||||||
|
delete(userId) {
|
||||||
|
return request.apiPost(`${BASE_URL}/delete?userId=${userId}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,282 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class weightApi {
|
||||||
|
|
||||||
|
// ========== 车辆管理 ==========
|
||||||
|
|
||||||
|
async pageVehicleRecords(pageIndex, pageSize, plateNumber) {
|
||||||
|
let url = `/api/user-service/weight/vehicle/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (plateNumber) url += '&plateNumber=' + plateNumber
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async vehicleEntry(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/vehicle/entry', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateVehicleRecord(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/vehicle/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAllVehicles(plateNumber) {
|
||||||
|
let url = '/api/user-service/weight/vehicle/listAll'
|
||||||
|
if (plateNumber) url += '?plateNumber=' + plateNumber
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 磅单 ==========
|
||||||
|
|
||||||
|
async pageTickets(pageIndex, pageSize, plateNumber, ticketNo) {
|
||||||
|
let url = `/api/user-service/weight/ticket/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (plateNumber) url += '&plateNumber=' + plateNumber
|
||||||
|
if (ticketNo) url += '&ticketNo=' + ticketNo
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async firstWeigh(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/ticket/firstWeigh', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async secondWeigh(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/ticket/secondWeigh', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async editTicket(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/ticket/edit', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getTicketLogs(ticketId) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/ticket/logs?ticketId=${ticketId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async printTicket(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/ticket/print?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async ticketDetail(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/ticket/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 智能称重设备 ==========
|
||||||
|
|
||||||
|
async pageDevices(pageIndex, pageSize, deviceName, deviceNo) {
|
||||||
|
let url = `/api/user-service/weight/device/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (deviceName) url += '&deviceName=' + deviceName
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addDevice(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/device/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateDevice(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/device/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteDevice(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/device/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 司机管理 ==========
|
||||||
|
|
||||||
|
async pageDrivers(pageIndex, pageSize, driverName, phone) {
|
||||||
|
let url = `/api/user-service/weight/driver/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (driverName) url += '&driverName=' + driverName
|
||||||
|
if (phone) url += '&phone=' + phone
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addDriver(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/driver/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateDriver(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/driver/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteDriver(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/driver/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAllDrivers() {
|
||||||
|
return await request.apiGet('/api/user-service/weight/driver/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 过磅卡 ==========
|
||||||
|
|
||||||
|
async pageCards(pageIndex, pageSize, cardNo, cardType) {
|
||||||
|
let url = `/api/user-service/weight/card/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (cardNo) url += '&cardNo=' + cardNo
|
||||||
|
if (cardType) url += '&cardType=' + cardType
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getByCardNo(cardNo) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/card/getByCardNo?cardNo=${cardNo}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addCard(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/card/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateCard(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/card/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteCard(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/card/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 北斗卡 ==========
|
||||||
|
|
||||||
|
async pageBeidouCards(pageIndex, pageSize, deviceNo, cardType) {
|
||||||
|
let url = `/api/user-service/weight/beidou/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
if (cardType) url += '&cardType=' + cardType
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async addBeidouCard(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/beidou/add', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateBeidouCard(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/beidou/update', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteBeidouCard(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/beidou/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async borrowBeidouCard(cardId, vehicleId, plateNumber) {
|
||||||
|
let url = `/api/user-service/weight/beidou/borrow?cardId=${cardId}&vehicleId=${vehicleId}`
|
||||||
|
if (plateNumber) url += '&plateNumber=' + plateNumber
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async returnBeidouCard(cardId) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/beidou/return?cardId=${cardId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async pageBorrowRecords(pageIndex, pageSize, deviceNo, plateNumber, status) {
|
||||||
|
let url = `/api/user-service/weight/beidou/borrowRecord/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
if (plateNumber) url += '&plateNumber=' + plateNumber
|
||||||
|
if (status !== undefined && status !== null) url += '&status=' + status
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getBorrowRecordDetail(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/beidou/borrowRecord/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAvailableBeidouCards(limit, deviceNo) {
|
||||||
|
let url = `/api/user-service/weight/beidou/availableList?limit=${limit || 10}`
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listBorrowedBeidouCards(limit, deviceNo) {
|
||||||
|
let url = `/api/user-service/weight/beidou/borrowedList?limit=${limit || 10}`
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listPendingSecondWeigh(limit) {
|
||||||
|
let url = `/api/user-service/weight/ticket/pendingSecondWeigh?limit=${limit || 20}`
|
||||||
|
return await request.apiGet(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 北斗卡跟踪记录 ==========
|
||||||
|
|
||||||
|
async pageBeidouTracking(pageIndex, pageSize, trackingNo, cardId, deviceNo) {
|
||||||
|
let url = `/api/user-service/weight/beidou/tracking/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (trackingNo) url += '&trackingNo=' + trackingNo
|
||||||
|
if (cardId) url += '&cardId=' + cardId
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async beidouTrackingDetail(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/beidou/tracking/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async beidouTrackingLatest(trackingNo) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/beidou/tracking/latest?trackingNo=${trackingNo}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async beidouTrackingListByNo(trackingNo) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/beidou/tracking/listByNo?trackingNo=${trackingNo}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async generateMockBeidouData(data) {
|
||||||
|
let url = `/api/user-service/weight/beidou/tracking/generateMock?cardId=${data.cardId}` +
|
||||||
|
`&tempMin=${data.tempMin}&tempMax=${data.tempMax}` +
|
||||||
|
`&humidityMin=${data.humidityMin}&humidityMax=${data.humidityMax}` +
|
||||||
|
`&count=${data.count}&startTime=${data.startTime}`
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 报警规则管理 ==========
|
||||||
|
|
||||||
|
async pageAlarmRules(pageIndex, pageSize, ruleName) {
|
||||||
|
let url = `/api/user-service/weight/alarmRule/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (ruleName) url += '&ruleName=' + ruleName
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAlarmRuleDetail(id) {
|
||||||
|
return await request.apiGet(`/api/user-service/weight/alarmRule/detail?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveAlarmRule(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/alarmRule/save', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteAlarmRule(id) {
|
||||||
|
return await request.apiPost(`/api/user-service/weight/alarmRule/delete?id=${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
async listAllAlarmRules() {
|
||||||
|
return await request.apiGet('/api/user-service/weight/alarmRule/listAll')
|
||||||
|
}
|
||||||
|
|
||||||
|
async bindAlarmRule(cardId, alarmRuleId) {
|
||||||
|
let url = `/api/user-service/weight/beidou/bindAlarmRule?cardId=${cardId}`
|
||||||
|
if (alarmRuleId !== null && alarmRuleId !== undefined) url += '&alarmRuleId=' + alarmRuleId
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 报警记录 ==========
|
||||||
|
|
||||||
|
async pageAlarmRecords(pageIndex, pageSize, deviceNo, trackingNo, plateNumber, ruleName) {
|
||||||
|
let url = `/api/user-service/weight/alarmRecord/page?pageIndex=${pageIndex}&pageSize=${pageSize}`
|
||||||
|
if (deviceNo) url += '&deviceNo=' + deviceNo
|
||||||
|
if (trackingNo) url += '&trackingNo=' + trackingNo
|
||||||
|
if (plateNumber) url += '&plateNumber=' + plateNumber
|
||||||
|
if (ruleName) url += '&ruleName=' + ruleName
|
||||||
|
return await request.apiPost(url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== 企业UI个性化配置 ==========
|
||||||
|
|
||||||
|
async getUiConfig() {
|
||||||
|
return await request.apiGet('/api/user-service/weight/uiConfig/get')
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveUiConfig(data) {
|
||||||
|
return await request.apiPost('/api/user-service/weight/uiConfig/save', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async resetUiConfig() {
|
||||||
|
return await request.apiPost('/api/user-service/weight/uiConfig/reset')
|
||||||
|
}
|
||||||
|
|
||||||
|
async getUiConfigByCustomer(customerId) {
|
||||||
|
return await request.apiGet(`/api/user-service/common/uiConfig/getByCustomer?customerId=${customerId}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const target = new weightApi()
|
||||||
|
export default target
|
||||||
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
@@ -0,0 +1,35 @@
|
|||||||
|
@function px2rem($px) {
|
||||||
|
@return ($px) * 0.01rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 默认字体大小
|
||||||
|
|
||||||
|
// 我的颜色变量
|
||||||
|
$mycolor: #00c56e;
|
||||||
|
|
||||||
|
$defaultFontSize: px2rem(18);
|
||||||
|
// 标题文字大小和颜色
|
||||||
|
$headFontSize: px2rem(36);
|
||||||
|
$headColor: #fff;
|
||||||
|
|
||||||
|
// 默认字体颜色
|
||||||
|
|
||||||
|
|
||||||
|
$baseColor: #fff;
|
||||||
|
// 选中字体颜色
|
||||||
|
$activeColor: #00E452;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 头部两边的文字大小
|
||||||
|
$headerleftFontSize: px2rem(18);
|
||||||
|
// 头部导航文字大小
|
||||||
|
|
||||||
|
$headerNavFontSize: px2rem(20);
|
||||||
|
//
|
||||||
|
|
||||||
|
// 小标题的文字大小
|
||||||
|
$titleFontSize: px2rem(20);
|
||||||
|
|
||||||
|
$titleleftBorder: .03rem solid #00E452;
|
||||||
|
$titlebottomBorder: .01rem solid #fff;
|
||||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 340 KiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 676 B |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 989 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 309 KiB |
|
After Width: | Height: | Size: 916 KiB |
|
After Width: | Height: | Size: 499 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 884 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 331 KiB |
|
After Width: | Height: | Size: 396 B |
|
After Width: | Height: | Size: 397 B |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 62 KiB |