作者 钟来

初始提交

正在显示 100 个修改的文件 包含 4359 行增加0 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

# 告诉EditorConfig插件,这是根文件,不用继续往上查找
root = true
# 匹配全部文件
[*]
# 设置字符集
charset = utf-8
# 缩进风格,可选space、tab
indent_style = space
# 缩进的空格数
indent_size = 2
# 结尾换行符,可选lf、cr、crlf
end_of_line = lf
# 在文件结尾插入新行
insert_final_newline = true
# 删除一行中的前后空格
trim_trailing_whitespace = true
# 匹配md结尾的文件
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
... ...
# 页面标题
VUE_APP_TITLE = 若依管理系统
# 开发环境配置
ENV = 'development'
# 若依管理系统/开发环境
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
... ...
# 页面标题
VUE_APP_TITLE = 若依管理系统
# 生产环境配置
ENV = 'production'
# 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
... ...
# 页面标题
VUE_APP_TITLE = 若依管理系统
NODE_ENV = production
# 测试环境配置
ENV = 'staging'
# 若依管理系统/测试环境
VUE_APP_BASE_API = '/stage-api'
... ...
# 忽略build目录下类型为js的文件的语法检查
build/*.js
# 忽略src/assets目录下文件的语法检查
src/assets
# 忽略public目录下文件的语法检查
public
# 忽略当前目录下为js的文件的语法检查
*.js
# 忽略当前目录下为vue的文件的语法检查
*.vue
\ No newline at end of file
... ...
// ESlint 检查配置
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}
... ...
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock
... ...
<p align="center">
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.7</h1>
<h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4>
<p align="center">
<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.7-brightgreen.svg"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
</p>
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
* 前端采用Vue、Element UI。
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
* 权限认证使用Jwt,支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制。
* 高效率开发,使用代码生成器可以一键生成前后端代码。
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)&nbsp;&nbsp;
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)&nbsp;&nbsp;
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
14. 系统接口:根据业务代码自动生成相关的api接口文档。
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
## 在线体验
- admin/admin123
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
演示地址:http://vue.ruoyi.vip
文档地址:http://doc.ruoyi.vip
## 演示图
<table>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
</tr>
</table>
## 若依前后端分离交流群
QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/已满-160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [![加入QQ群](https://img.shields.io/badge/已满-170801498-blue.svg)](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [![加入QQ群](https://img.shields.io/badge/已满-108482800-blue.svg)](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [![加入QQ群](https://img.shields.io/badge/已满-101046199-blue.svg)](https://jq.qq.com/?_wv=1027&k=SpyH2875) [![加入QQ群](https://img.shields.io/badge/已满-136919097-blue.svg)](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [![加入QQ群](https://img.shields.io/badge/已满-143961921-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [![加入QQ群](https://img.shields.io/badge/已满-174951577-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [![加入QQ群](https://img.shields.io/badge/已满-161281055-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [![加入QQ群](https://img.shields.io/badge/138988063-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) 点击按钮入群。
\ No newline at end of file
... ...
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.
'plugins': ['dynamic-import-node']
}
}
}
\ No newline at end of file
... ...
@echo off
echo.
echo [信息] 打包Web工程,生成dist文件。
echo.
%~d0
cd %~dp0
cd ..
npm run build:prod
pause
\ No newline at end of file
... ...
@echo off
echo.
echo [信息] 安装Web工程,生成node_modules文件。
echo.
%~d0
cd %~dp0
cd ..
npm install --registry=https://registry.npmmirror.com
pause
\ No newline at end of file
... ...
@echo off
echo.
echo [信息] 使用 Vue CLI 命令运行 Web 工程。
echo.
%~d0
cd %~dp0
cd ..
npm run dev
pause
\ No newline at end of file
... ...
const { run } = require('runjs')
const chalk = require('chalk')
const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`)
const port = 9526
const publicPath = config.publicPath
var connect = require('connect')
var serveStatic = require('serve-static')
const app = connect()
app.use(
publicPath,
serveStatic('./dist', {
index: ['index.html', '/']
})
)
app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
}
})
} else {
run(`vue-cli-service build ${args}`)
}
... ...
{
"name": "ruoyi",
"version": "3.8.7",
"description": "若依管理系统",
"author": "若依",
"license": "MIT",
"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",
"lint": "eslint --ext .js,.vue src"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"repository": {
"type": "git",
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"echarts": "5.4.0",
"element-ui": "2.15.14",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-meta": "2.4.0",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-service": "4.4.6",
"babel-eslint": "10.1.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"chalk": "4.1.0",
"compression-webpack-plugin": "6.1.2",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
"sass": "1.32.13",
"sass-loader": "10.1.1",
"script-ext-html-webpack-plugin": "2.1.5",
"svg-sprite-loader": "5.1.1",
"vue-template-compiler": "2.6.12"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>LhAquaculture</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>lh-ruoyi</artifactId>
<modules>
<module>ruoyi-admin</module>
<module>ruoyi-framework</module>
<module>ruoyi-system</module>
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
</modules>
<packaging>pom</packaging>
</project>
\ No newline at end of file
... ...
不能预览此文件类型
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>请升级您的浏览器</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
<meta name="renderer" content="webkit">
<base target="_blank" />
<style type="text/css">
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
a{text-decoration:none;color:#0072c6;}a:hover{text-decoration:none;color:#004d8c;}
body{width:960px;margin:0 auto;padding:10px;font-size:14px;line-height:24px;color:#454545;font-family:'Microsoft YaHei UI','Microsoft YaHei',DengXian,SimSun,'Segoe UI',Tahoma,Helvetica,sans-serif;overflow-y:scroll}
h1{font-size:40px;line-height:80px;font-weight:100;margin-bottom:10px;}
h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0;}
em{color:red}
p{margin-bottom:10px;}
hr{margin:20px 0;border:0;border-top:1px solid #dadada}
span{display:block;font-size:12px;line-height:12px;}
.clean{clear:both;}
.browser{padding:10px 10px;}
.browser li{width:auto;padding:0 80px;margin-top:30px;height:34px;line-height:22px;float:left;list-style:none;background:url(data:image/png;base64,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) no-repeat;padding-left:40px}
.browser .browser-firefox{background-position:0 -34px}
.browser .browser-ie{background-position:0 -68px;margin-left:0px}
.browser .browser-360{background-position:0 -170px;margin-left: -27px}
</style>
</head>
<body style="margin-top:50px">
<h1>请升级您的浏览器,以便我们更好的为您提供服务!</h1>
<p>您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。</p>
<hr>
<h2>请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束</h2>
<p>自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 <a href="https://www.microsoft.com/zh-cn/WindowsForBusiness/End-of-IE-support">微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明</a></p>
<hr>
<h2>您可以选择更先进的浏览器</h2>
<p>推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。</p>
<ul class="browser">
<li class="browser-chrome"><a href="https://www.google.cn/chrome/browser/desktop/index.html?hl=zh-CN&standalone=1"> 谷歌浏览器<span>Google Chrome</span></a></li>
<li class="browser-firefox"><a href="https://www.mozilla.org/zh-CN/firefox/new/"> 火狐浏览器<span>Mozilla Firefox</span></a></li>
<li class="browser-ie"><a href="https://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> IE 11 浏览器<span>Internet Explorer</span></a></li>
<li class="browser-360"><a href="http://se.360.cn/"> 360安全浏览器<span>360 Chrome</span></a></li>
<div class="clean"></div>
</ul>
<hr>
</body>
</html>
\ No newline at end of file
... ...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
</body>
</html>
... ...
User-agent: *
Disallow: /
\ No newline at end of file
... ...
@echo off
rem jar平级目录
set AppName=ruoyi-admin.jar
rem JVM参数
set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
ECHO.
ECHO. [1] 启动%AppName%
ECHO. [2] 关闭%AppName%
ECHO. [3] 重启%AppName%
ECHO. [4] 启动状态 %AppName%
ECHO. [5] 退 出
ECHO.
ECHO.请输入选择项目的序号:
set /p ID=
IF "%id%"=="1" GOTO start
IF "%id%"=="2" GOTO stop
IF "%id%"=="3" GOTO restart
IF "%id%"=="4" GOTO status
IF "%id%"=="5" EXIT
PAUSE
:start
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
set pid=%%a
set image_name=%%b
)
if defined pid (
echo %%is running
PAUSE
)
start javaw %JVM_OPTS% -jar %AppName%
echo starting……
echo Start %AppName% success...
goto:eof
rem 函数stop通过jps命令查找pid并结束进程
:stop
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
set pid=%%a
set image_name=%%b
)
if not defined pid (echo process %AppName% does not exists) else (
echo prepare to kill %image_name%
echo start kill %pid% ...
rem 根据进程ID,kill进程
taskkill /f /pid %pid%
)
goto:eof
:restart
call :stop
call :start
goto:eof
:status
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
set pid=%%a
set image_name=%%b
)
if not defined pid (echo process %AppName% is dead ) else (
echo %image_name% is running
)
goto:eof
... ...
#!/bin/sh
# ./ry.sh start 启动 stop 停止 restart 重启 status 状态
AppName=ruoyi-admin.jar
# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
if [ "$AppName" = "" ];
then
echo -e "\033[0;31m 未输入应用名 \033[0m"
exit 1
fi
function start()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
function restart()
{
stop
sleep 2
start
}
function status()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "$AppName is running..."
else
echo "$AppName is not running..."
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac
... ...
<template>
<div id="app">
<router-view />
<theme-picker />
</div>
</template>
<script>
import ThemePicker from "@/components/ThemePicker";
export default {
name: "App",
components: { ThemePicker },
metaInfo() {
return {
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
titleTemplate: title => {
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
}
}
}
};
</script>
<style scoped>
#app .theme-picker {
display: none;
}
</style>
... ...
import request from '@/utils/request'
// 查询标粗结转成本列表
export function listBold_closing_cost(query) {
return request({
url: '/admin/cb/bold_closing_cost/list',
method: 'get',
params: query
})
}
// 查询标粗结转成本详细
export function getBold_closing_cost(id) {
return request({
url: '/admin/cb/bold_closing_cost/' + id,
method: 'get'
})
}
// 新增标粗结转成本
export function addBold_closing_cost(data) {
return request({
url: '/admin/cb/bold_closing_cost',
method: 'post',
data: data
})
}
// 修改标粗结转成本
export function updateBold_closing_cost(data) {
return request({
url: '/admin/cb/bold_closing_cost',
method: 'put',
data: data
})
}
// 删除标粗结转成本
export function delBold_closing_cost(id) {
return request({
url: '/admin/cb/bold_closing_cost/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询标粗动态成本列表
export function listBold_dynamic_cost(query) {
return request({
url: '/admin/cb/bold_dynamic_cost/list',
method: 'get',
params: query
})
}
// 查询标粗动态成本详细
export function getBold_dynamic_cost(id) {
return request({
url: '/admin/cb/bold_dynamic_cost/' + id,
method: 'get'
})
}
// 新增标粗动态成本
export function addBold_dynamic_cost(data) {
return request({
url: '/admin/cb/bold_dynamic_cost',
method: 'post',
data: data
})
}
// 修改标粗动态成本
export function updateBold_dynamic_cost(data) {
return request({
url: '/admin/cb/bold_dynamic_cost',
method: 'put',
data: data
})
}
// 删除标粗动态成本
export function delBold_dynamic_cost(id) {
return request({
url: '/admin/cb/bold_dynamic_cost/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养成动态成本列表
export function listDevelopment_dynamic_cost(query) {
return request({
url: '/admin/cb/development_dynamic_cost/list',
method: 'get',
params: query
})
}
// 查询养成动态成本详细
export function getDevelopment_dynamic_cost(id) {
return request({
url: '/admin/cb/development_dynamic_cost/' + id,
method: 'get'
})
}
// 新增养成动态成本
export function addDevelopment_dynamic_cost(data) {
return request({
url: '/admin/cb/development_dynamic_cost',
method: 'post',
data: data
})
}
// 修改养成动态成本
export function updateDevelopment_dynamic_cost(data) {
return request({
url: '/admin/cb/development_dynamic_cost',
method: 'put',
data: data
})
}
// 删除养成动态成本
export function delDevelopment_dynamic_cost(id) {
return request({
url: '/admin/cb/development_dynamic_cost/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养成存塘成本统计列表
export function listDevelopment_stock_cost_statistics(query) {
return request({
url: '/admin/cb/development_stock_cost_statistics/list',
method: 'get',
params: query
})
}
// 查询养成存塘成本统计详细
export function getDevelopment_stock_cost_statistics(id) {
return request({
url: '/admin/cb/development_stock_cost_statistics/' + id,
method: 'get'
})
}
// 新增养成存塘成本统计
export function addDevelopment_stock_cost_statistics(data) {
return request({
url: '/admin/cb/development_stock_cost_statistics',
method: 'post',
data: data
})
}
// 修改养成存塘成本统计
export function updateDevelopment_stock_cost_statistics(data) {
return request({
url: '/admin/cb/development_stock_cost_statistics',
method: 'put',
data: data
})
}
// 删除养成存塘成本统计
export function delDevelopment_stock_cost_statistics(id) {
return request({
url: '/admin/cb/development_stock_cost_statistics/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询斤鱼成本与售价查询列表
export function listFish_cost_and_price_query(query) {
return request({
url: '/admin/cb/fish_cost_and_price_query/list',
method: 'get',
params: query
})
}
// 查询斤鱼成本与售价查询详细
export function getFish_cost_and_price_query(id) {
return request({
url: '/admin/cb/fish_cost_and_price_query/' + id,
method: 'get'
})
}
// 新增斤鱼成本与售价查询
export function addFish_cost_and_price_query(data) {
return request({
url: '/admin/cb/fish_cost_and_price_query',
method: 'post',
data: data
})
}
// 修改斤鱼成本与售价查询
export function updateFish_cost_and_price_query(data) {
return request({
url: '/admin/cb/fish_cost_and_price_query',
method: 'put',
data: data
})
}
// 删除斤鱼成本与售价查询
export function delFish_cost_and_price_query(id) {
return request({
url: '/admin/cb/fish_cost_and_price_query/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养成结转成本统计列表
export function listGrowth_closing_cost_statistics(query) {
return request({
url: '/admin/cb/growth_closing_cost_statistics/list',
method: 'get',
params: query
})
}
// 查询养成结转成本统计详细
export function getGrowth_closing_cost_statistics(id) {
return request({
url: '/admin/cb/growth_closing_cost_statistics/' + id,
method: 'get'
})
}
// 新增养成结转成本统计
export function addGrowth_closing_cost_statistics(data) {
return request({
url: '/admin/cb/growth_closing_cost_statistics',
method: 'post',
data: data
})
}
// 修改养成结转成本统计
export function updateGrowth_closing_cost_statistics(data) {
return request({
url: '/admin/cb/growth_closing_cost_statistics',
method: 'put',
data: data
})
}
// 删除养成结转成本统计
export function delGrowth_closing_cost_statistics(id) {
return request({
url: '/admin/cb/growth_closing_cost_statistics/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养成成本月度汇总余额列表
export function listMonthly_raising_cost_summary(query) {
return request({
url: '/admin/cb/monthly_raising_cost_summary/list',
method: 'get',
params: query
})
}
// 查询养成成本月度汇总余额详细
export function getMonthly_raising_cost_summary(id) {
return request({
url: '/admin/cb/monthly_raising_cost_summary/' + id,
method: 'get'
})
}
// 新增养成成本月度汇总余额
export function addMonthly_raising_cost_summary(data) {
return request({
url: '/admin/cb/monthly_raising_cost_summary',
method: 'post',
data: data
})
}
// 修改养成成本月度汇总余额
export function updateMonthly_raising_cost_summary(data) {
return request({
url: '/admin/cb/monthly_raising_cost_summary',
method: 'put',
data: data
})
}
// 删除养成成本月度汇总余额
export function delMonthly_raising_cost_summary(id) {
return request({
url: '/admin/cb/monthly_raising_cost_summary/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询育苗成本月度汇总余额列表
export function listMonthly_seedling_cost_summary(query) {
return request({
url: '/admin/cb/monthly_seedling_cost_summary/list',
method: 'get',
params: query
})
}
// 查询育苗成本月度汇总余额详细
export function getMonthly_seedling_cost_summary(id) {
return request({
url: '/admin/cb/monthly_seedling_cost_summary/' + id,
method: 'get'
})
}
// 新增育苗成本月度汇总余额
export function addMonthly_seedling_cost_summary(data) {
return request({
url: '/admin/cb/monthly_seedling_cost_summary',
method: 'post',
data: data
})
}
// 修改育苗成本月度汇总余额
export function updateMonthly_seedling_cost_summary(data) {
return request({
url: '/admin/cb/monthly_seedling_cost_summary',
method: 'put',
data: data
})
}
// 删除育苗成本月度汇总余额
export function delMonthly_seedling_cost_summary(id) {
return request({
url: '/admin/cb/monthly_seedling_cost_summary/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询育苗结转成本统计列表
export function listNursery_closing_cost_statistics(query) {
return request({
url: '/admin/cb/nursery_closing_cost_statistics/list',
method: 'get',
params: query
})
}
// 查询育苗结转成本统计详细
export function getNursery_closing_cost_statistics(id) {
return request({
url: '/admin/cb/nursery_closing_cost_statistics/' + id,
method: 'get'
})
}
// 新增育苗结转成本统计
export function addNursery_closing_cost_statistics(data) {
return request({
url: '/admin/cb/nursery_closing_cost_statistics',
method: 'post',
data: data
})
}
// 修改育苗结转成本统计
export function updateNursery_closing_cost_statistics(data) {
return request({
url: '/admin/cb/nursery_closing_cost_statistics',
method: 'put',
data: data
})
}
// 删除育苗结转成本统计
export function delNursery_closing_cost_statistics(id) {
return request({
url: '/admin/cb/nursery_closing_cost_statistics/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询育苗存塘成本统计列表
export function listNursery_stock_cost_statistics(query) {
return request({
url: '/admin/cb/nursery_stock_cost_statistics/list',
method: 'get',
params: query
})
}
// 查询育苗存塘成本统计详细
export function getNursery_stock_cost_statistics(id) {
return request({
url: '/admin/cb/nursery_stock_cost_statistics/' + id,
method: 'get'
})
}
// 新增育苗存塘成本统计
export function addNursery_stock_cost_statistics(data) {
return request({
url: '/admin/cb/nursery_stock_cost_statistics',
method: 'post',
data: data
})
}
// 修改育苗存塘成本统计
export function updateNursery_stock_cost_statistics(data) {
return request({
url: '/admin/cb/nursery_stock_cost_statistics',
method: 'put',
data: data
})
}
// 删除育苗存塘成本统计
export function delNursery_stock_cost_statistics(id) {
return request({
url: '/admin/cb/nursery_stock_cost_statistics/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养成成本统计明细列表
export function listRearing_cost_details(query) {
return request({
url: '/admin/cb/rearing_cost_details/list',
method: 'get',
params: query
})
}
// 查询养成成本统计明细详细
export function getRearing_cost_details(id) {
return request({
url: '/admin/cb/rearing_cost_details/' + id,
method: 'get'
})
}
// 新增养成成本统计明细
export function addRearing_cost_details(data) {
return request({
url: '/admin/cb/rearing_cost_details',
method: 'post',
data: data
})
}
// 修改养成成本统计明细
export function updateRearing_cost_details(data) {
return request({
url: '/admin/cb/rearing_cost_details',
method: 'put',
data: data
})
}
// 删除养成成本统计明细
export function delRearing_cost_details(id) {
return request({
url: '/admin/cb/rearing_cost_details/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询育苗成本统计明细列表
export function listSeedling_cost_details(query) {
return request({
url: '/admin/cb/seedling_cost_details/list',
method: 'get',
params: query
})
}
// 查询育苗成本统计明细详细
export function getSeedling_cost_details(id) {
return request({
url: '/admin/cb/seedling_cost_details/' + id,
method: 'get'
})
}
// 新增育苗成本统计明细
export function addSeedling_cost_details(data) {
return request({
url: '/admin/cb/seedling_cost_details',
method: 'post',
data: data
})
}
// 修改育苗成本统计明细
export function updateSeedling_cost_details(data) {
return request({
url: '/admin/cb/seedling_cost_details',
method: 'put',
data: data
})
}
// 删除育苗成本统计明细
export function delSeedling_cost_details(id) {
return request({
url: '/admin/cb/seedling_cost_details/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询采样记录列表
export function listSampling_records(query) {
return request({
url: '/admin/cj/sampling_records/list',
method: 'get',
params: query
})
}
// 查询采样记录详细
export function getSampling_records(id) {
return request({
url: '/admin/cj/sampling_records/' + id,
method: 'get'
})
}
// 新增采样记录
export function addSampling_records(data) {
return request({
url: '/admin/cj/sampling_records',
method: 'post',
data: data
})
}
// 修改采样记录
export function updateSampling_records(data) {
return request({
url: '/admin/cj/sampling_records',
method: 'put',
data: data
})
}
// 删除采样记录
export function delSampling_records(id) {
return request({
url: '/admin/cj/sampling_records/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询存塘抽样指标分析列表
export function listStock_pond_sampling_analysis(query) {
return request({
url: '/admin/cj/stock_pond_sampling_analysis/list',
method: 'get',
params: query
})
}
// 查询存塘抽样指标分析详细
export function getStock_pond_sampling_analysis(id) {
return request({
url: '/admin/cj/stock_pond_sampling_analysis/' + id,
method: 'get'
})
}
// 新增存塘抽样指标分析
export function addStock_pond_sampling_analysis(data) {
return request({
url: '/admin/cj/stock_pond_sampling_analysis',
method: 'post',
data: data
})
}
// 修改存塘抽样指标分析
export function updateStock_pond_sampling_analysis(data) {
return request({
url: '/admin/cj/stock_pond_sampling_analysis',
method: 'put',
data: data
})
}
// 删除存塘抽样指标分析
export function delStock_pond_sampling_analysis(id) {
return request({
url: '/admin/cj/stock_pond_sampling_analysis/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询区域投喂列表
export function listArea_feeding(query) {
return request({
url: '/admin/cl/area_feeding/list',
method: 'get',
params: query
})
}
// 查询区域投喂详细
export function getArea_feeding(id) {
return request({
url: '/admin/cl/area_feeding/' + id,
method: 'get'
})
}
// 新增区域投喂
export function addArea_feeding(data) {
return request({
url: '/admin/cl/area_feeding',
method: 'post',
data: data
})
}
// 修改区域投喂
export function updateArea_feeding(data) {
return request({
url: '/admin/cl/area_feeding',
method: 'put',
data: data
})
}
// 删除区域投喂
export function delArea_feeding(id) {
return request({
url: '/admin/cl/area_feeding/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料调拨列表
export function listFeed_allocation(query) {
return request({
url: '/admin/cl/feed_allocation/list',
method: 'get',
params: query
})
}
// 查询饲料调拨详细
export function getFeed_allocation(id) {
return request({
url: '/admin/cl/feed_allocation/' + id,
method: 'get'
})
}
// 新增饲料调拨
export function addFeed_allocation(data) {
return request({
url: '/admin/cl/feed_allocation',
method: 'post',
data: data
})
}
// 修改饲料调拨
export function updateFeed_allocation(data) {
return request({
url: '/admin/cl/feed_allocation',
method: 'put',
data: data
})
}
// 删除饲料调拨
export function delFeed_allocation(id) {
return request({
url: '/admin/cl/feed_allocation/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料期初列表
export function listFeed_beginning_balance(query) {
return request({
url: '/admin/cl/feed_beginning_balance/list',
method: 'get',
params: query
})
}
// 查询饲料期初详细
export function getFeed_beginning_balance(id) {
return request({
url: '/admin/cl/feed_beginning_balance/' + id,
method: 'get'
})
}
// 新增饲料期初
export function addFeed_beginning_balance(data) {
return request({
url: '/admin/cl/feed_beginning_balance',
method: 'post',
data: data
})
}
// 修改饲料期初
export function updateFeed_beginning_balance(data) {
return request({
url: '/admin/cl/feed_beginning_balance',
method: 'put',
data: data
})
}
// 删除饲料期初
export function delFeed_beginning_balance(id) {
return request({
url: '/admin/cl/feed_beginning_balance/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料借调列表
export function listFeed_borrow(query) {
return request({
url: '/admin/cl/feed_borrow/list',
method: 'get',
params: query
})
}
// 查询饲料借调详细
export function getFeed_borrow(id) {
return request({
url: '/admin/cl/feed_borrow/' + id,
method: 'get'
})
}
// 新增饲料借调
export function addFeed_borrow(data) {
return request({
url: '/admin/cl/feed_borrow',
method: 'post',
data: data
})
}
// 修改饲料借调
export function updateFeed_borrow(data) {
return request({
url: '/admin/cl/feed_borrow',
method: 'put',
data: data
})
}
// 删除饲料借调
export function delFeed_borrow(id) {
return request({
url: '/admin/cl/feed_borrow/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料信息列表
export function listFeed_info(query) {
return request({
url: '/admin/cl/feed_info/list',
method: 'get',
params: query
})
}
// 查询饲料信息详细
export function getFeed_info(id) {
return request({
url: '/admin/cl/feed_info/' + id,
method: 'get'
})
}
// 新增饲料信息
export function addFeed_info(data) {
return request({
url: '/admin/cl/feed_info',
method: 'post',
data: data
})
}
// 修改饲料信息
export function updateFeed_info(data) {
return request({
url: '/admin/cl/feed_info',
method: 'put',
data: data
})
}
// 删除饲料信息
export function delFeed_info(id) {
return request({
url: '/admin/cl/feed_info/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料盘点列表
export function listFeed_inventory(query) {
return request({
url: '/admin/cl/feed_inventory/list',
method: 'get',
params: query
})
}
// 查询饲料盘点详细
export function getFeed_inventory(id) {
return request({
url: '/admin/cl/feed_inventory/' + id,
method: 'get'
})
}
// 新增饲料盘点
export function addFeed_inventory(data) {
return request({
url: '/admin/cl/feed_inventory',
method: 'post',
data: data
})
}
// 修改饲料盘点
export function updateFeed_inventory(data) {
return request({
url: '/admin/cl/feed_inventory',
method: 'put',
data: data
})
}
// 删除饲料盘点
export function delFeed_inventory(id) {
return request({
url: '/admin/cl/feed_inventory/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料价格列表
export function listFeed_price(query) {
return request({
url: '/admin/cl/feed_price/list',
method: 'get',
params: query
})
}
// 查询饲料价格详细
export function getFeed_price(id) {
return request({
url: '/admin/cl/feed_price/' + id,
method: 'get'
})
}
// 新增饲料价格
export function addFeed_price(data) {
return request({
url: '/admin/cl/feed_price',
method: 'post',
data: data
})
}
// 修改饲料价格
export function updateFeed_price(data) {
return request({
url: '/admin/cl/feed_price',
method: 'put',
data: data
})
}
// 删除饲料价格
export function delFeed_price(id) {
return request({
url: '/admin/cl/feed_price/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料申购列表
export function listFeed_purchase_requisition(query) {
return request({
url: '/admin/cl/feed_purchase_requisition/list',
method: 'get',
params: query
})
}
// 查询饲料申购详细
export function getFeed_purchase_requisition(id) {
return request({
url: '/admin/cl/feed_purchase_requisition/' + id,
method: 'get'
})
}
// 新增饲料申购
export function addFeed_purchase_requisition(data) {
return request({
url: '/admin/cl/feed_purchase_requisition',
method: 'post',
data: data
})
}
// 修改饲料申购
export function updateFeed_purchase_requisition(data) {
return request({
url: '/admin/cl/feed_purchase_requisition',
method: 'put',
data: data
})
}
// 删除饲料申购
export function delFeed_purchase_requisition(id) {
return request({
url: '/admin/cl/feed_purchase_requisition/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询饲料入库列表
export function listFeed_stock_in(query) {
return request({
url: '/admin/cl/feed_stock_in/list',
method: 'get',
params: query
})
}
// 查询饲料入库详细
export function getFeed_stock_in(id) {
return request({
url: '/admin/cl/feed_stock_in/' + id,
method: 'get'
})
}
// 新增饲料入库
export function addFeed_stock_in(data) {
return request({
url: '/admin/cl/feed_stock_in',
method: 'post',
data: data
})
}
// 修改饲料入库
export function updateFeed_stock_in(data) {
return request({
url: '/admin/cl/feed_stock_in',
method: 'put',
data: data
})
}
// 删除饲料入库
export function delFeed_stock_in(id) {
return request({
url: '/admin/cl/feed_stock_in/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保调拨列表
export function listAnimal_protection_allocation(query) {
return request({
url: '/admin/db/animal_protection_allocation/list',
method: 'get',
params: query
})
}
// 查询动保调拨详细
export function getAnimal_protection_allocation(id) {
return request({
url: '/admin/db/animal_protection_allocation/' + id,
method: 'get'
})
}
// 新增动保调拨
export function addAnimal_protection_allocation(data) {
return request({
url: '/admin/db/animal_protection_allocation',
method: 'post',
data: data
})
}
// 修改动保调拨
export function updateAnimal_protection_allocation(data) {
return request({
url: '/admin/db/animal_protection_allocation',
method: 'put',
data: data
})
}
// 删除动保调拨
export function delAnimal_protection_allocation(id) {
return request({
url: '/admin/db/animal_protection_allocation/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保区域使用列表
export function listAnimal_protection_area_usage(query) {
return request({
url: '/admin/db/animal_protection_area_usage/list',
method: 'get',
params: query
})
}
// 查询动保区域使用详细
export function getAnimal_protection_area_usage(id) {
return request({
url: '/admin/db/animal_protection_area_usage/' + id,
method: 'get'
})
}
// 新增动保区域使用
export function addAnimal_protection_area_usage(data) {
return request({
url: '/admin/db/animal_protection_area_usage',
method: 'post',
data: data
})
}
// 修改动保区域使用
export function updateAnimal_protection_area_usage(data) {
return request({
url: '/admin/db/animal_protection_area_usage',
method: 'put',
data: data
})
}
// 删除动保区域使用
export function delAnimal_protection_area_usage(id) {
return request({
url: '/admin/db/animal_protection_area_usage/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保期初列表
export function listAnimal_protection_beginning(query) {
return request({
url: '/admin/db/animal_protection_beginning/list',
method: 'get',
params: query
})
}
// 查询动保期初详细
export function getAnimal_protection_beginning(id) {
return request({
url: '/admin/db/animal_protection_beginning/' + id,
method: 'get'
})
}
// 新增动保期初
export function addAnimal_protection_beginning(data) {
return request({
url: '/admin/db/animal_protection_beginning',
method: 'post',
data: data
})
}
// 修改动保期初
export function updateAnimal_protection_beginning(data) {
return request({
url: '/admin/db/animal_protection_beginning',
method: 'put',
data: data
})
}
// 删除动保期初
export function delAnimal_protection_beginning(id) {
return request({
url: '/admin/db/animal_protection_beginning/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保入库列表
export function listAnimal_protection_inbound(query) {
return request({
url: '/admin/db/animal_protection_inbound/list',
method: 'get',
params: query
})
}
// 查询动保入库详细
export function getAnimal_protection_inbound(id) {
return request({
url: '/admin/db/animal_protection_inbound/' + id,
method: 'get'
})
}
// 新增动保入库
export function addAnimal_protection_inbound(data) {
return request({
url: '/admin/db/animal_protection_inbound',
method: 'post',
data: data
})
}
// 修改动保入库
export function updateAnimal_protection_inbound(data) {
return request({
url: '/admin/db/animal_protection_inbound',
method: 'put',
data: data
})
}
// 删除动保入库
export function delAnimal_protection_inbound(id) {
return request({
url: '/admin/db/animal_protection_inbound/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保信息列表
export function listAnimal_protection_info(query) {
return request({
url: '/admin/db/animal_protection_info/list',
method: 'get',
params: query
})
}
// 查询动保信息详细
export function getAnimal_protection_info(id) {
return request({
url: '/admin/db/animal_protection_info/' + id,
method: 'get'
})
}
// 新增动保信息
export function addAnimal_protection_info(data) {
return request({
url: '/admin/db/animal_protection_info',
method: 'post',
data: data
})
}
// 修改动保信息
export function updateAnimal_protection_info(data) {
return request({
url: '/admin/db/animal_protection_info',
method: 'put',
data: data
})
}
// 删除动保信息
export function delAnimal_protection_info(id) {
return request({
url: '/admin/db/animal_protection_info/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保盘点列表
export function listAnimal_protection_inventory(query) {
return request({
url: '/admin/db/animal_protection_inventory/list',
method: 'get',
params: query
})
}
// 查询动保盘点详细
export function getAnimal_protection_inventory(id) {
return request({
url: '/admin/db/animal_protection_inventory/' + id,
method: 'get'
})
}
// 新增动保盘点
export function addAnimal_protection_inventory(data) {
return request({
url: '/admin/db/animal_protection_inventory',
method: 'post',
data: data
})
}
// 修改动保盘点
export function updateAnimal_protection_inventory(data) {
return request({
url: '/admin/db/animal_protection_inventory',
method: 'put',
data: data
})
}
// 删除动保盘点
export function delAnimal_protection_inventory(id) {
return request({
url: '/admin/db/animal_protection_inventory/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保借调列表
export function listAnimal_protection_loan(query) {
return request({
url: '/admin/db/animal_protection_loan/list',
method: 'get',
params: query
})
}
// 查询动保借调详细
export function getAnimal_protection_loan(id) {
return request({
url: '/admin/db/animal_protection_loan/' + id,
method: 'get'
})
}
// 新增动保借调
export function addAnimal_protection_loan(data) {
return request({
url: '/admin/db/animal_protection_loan',
method: 'post',
data: data
})
}
// 修改动保借调
export function updateAnimal_protection_loan(data) {
return request({
url: '/admin/db/animal_protection_loan',
method: 'put',
data: data
})
}
// 删除动保借调
export function delAnimal_protection_loan(id) {
return request({
url: '/admin/db/animal_protection_loan/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保塘口使用列表
export function listAnimal_protection_pond_usage(query) {
return request({
url: '/admin/db/animal_protection_pond_usage/list',
method: 'get',
params: query
})
}
// 查询动保塘口使用详细
export function getAnimal_protection_pond_usage(id) {
return request({
url: '/admin/db/animal_protection_pond_usage/' + id,
method: 'get'
})
}
// 新增动保塘口使用
export function addAnimal_protection_pond_usage(data) {
return request({
url: '/admin/db/animal_protection_pond_usage',
method: 'post',
data: data
})
}
// 修改动保塘口使用
export function updateAnimal_protection_pond_usage(data) {
return request({
url: '/admin/db/animal_protection_pond_usage',
method: 'put',
data: data
})
}
// 删除动保塘口使用
export function delAnimal_protection_pond_usage(id) {
return request({
url: '/admin/db/animal_protection_pond_usage/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保处方列表
export function listAnimal_protection_prescription(query) {
return request({
url: '/admin/db/animal_protection_prescription/list',
method: 'get',
params: query
})
}
// 查询动保处方详细
export function getAnimal_protection_prescription(id) {
return request({
url: '/admin/db/animal_protection_prescription/' + id,
method: 'get'
})
}
// 新增动保处方
export function addAnimal_protection_prescription(data) {
return request({
url: '/admin/db/animal_protection_prescription',
method: 'post',
data: data
})
}
// 修改动保处方
export function updateAnimal_protection_prescription(data) {
return request({
url: '/admin/db/animal_protection_prescription',
method: 'put',
data: data
})
}
// 删除动保处方
export function delAnimal_protection_prescription(id) {
return request({
url: '/admin/db/animal_protection_prescription/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保申购列表
export function listAnimal_protection_purchase_requisition(query) {
return request({
url: '/admin/db/animal_protection_purchase_requisition/list',
method: 'get',
params: query
})
}
// 查询动保申购详细
export function getAnimal_protection_purchase_requisition(id) {
return request({
url: '/admin/db/animal_protection_purchase_requisition/' + id,
method: 'get'
})
}
// 新增动保申购
export function addAnimal_protection_purchase_requisition(data) {
return request({
url: '/admin/db/animal_protection_purchase_requisition',
method: 'post',
data: data
})
}
// 修改动保申购
export function updateAnimal_protection_purchase_requisition(data) {
return request({
url: '/admin/db/animal_protection_purchase_requisition',
method: 'put',
data: data
})
}
// 删除动保申购
export function delAnimal_protection_purchase_requisition(id) {
return request({
url: '/admin/db/animal_protection_purchase_requisition/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保入库明细列表
export function listAnimal_health_protection_inbound_details(query) {
return request({
url: '/admin/dbkb/animal_health_protection_inbound_details/list',
method: 'get',
params: query
})
}
// 查询动保入库明细详细
export function getAnimal_health_protection_inbound_details(id) {
return request({
url: '/admin/dbkb/animal_health_protection_inbound_details/' + id,
method: 'get'
})
}
// 新增动保入库明细
export function addAnimal_health_protection_inbound_details(data) {
return request({
url: '/admin/dbkb/animal_health_protection_inbound_details',
method: 'post',
data: data
})
}
// 修改动保入库明细
export function updateAnimal_health_protection_inbound_details(data) {
return request({
url: '/admin/dbkb/animal_health_protection_inbound_details',
method: 'put',
data: data
})
}
// 删除动保入库明细
export function delAnimal_health_protection_inbound_details(id) {
return request({
url: '/admin/dbkb/animal_health_protection_inbound_details/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保进出存列表
export function listAnimal_health_protection_inventory(query) {
return request({
url: '/admin/dbkb/animal_health_protection_inventory/list',
method: 'get',
params: query
})
}
// 查询动保进出存详细
export function getAnimal_health_protection_inventory(id) {
return request({
url: '/admin/dbkb/animal_health_protection_inventory/' + id,
method: 'get'
})
}
// 新增动保进出存
export function addAnimal_health_protection_inventory(data) {
return request({
url: '/admin/dbkb/animal_health_protection_inventory',
method: 'post',
data: data
})
}
// 修改动保进出存
export function updateAnimal_health_protection_inventory(data) {
return request({
url: '/admin/dbkb/animal_health_protection_inventory',
method: 'put',
data: data
})
}
// 删除动保进出存
export function delAnimal_health_protection_inventory(id) {
return request({
url: '/admin/dbkb/animal_health_protection_inventory/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保出库明细列表
export function listAnimal_health_protection_outbound_details(query) {
return request({
url: '/admin/dbkb/animal_health_protection_outbound_details/list',
method: 'get',
params: query
})
}
// 查询动保出库明细详细
export function getAnimal_health_protection_outbound_details(id) {
return request({
url: '/admin/dbkb/animal_health_protection_outbound_details/' + id,
method: 'get'
})
}
// 新增动保出库明细
export function addAnimal_health_protection_outbound_details(data) {
return request({
url: '/admin/dbkb/animal_health_protection_outbound_details',
method: 'post',
data: data
})
}
// 修改动保出库明细
export function updateAnimal_health_protection_outbound_details(data) {
return request({
url: '/admin/dbkb/animal_health_protection_outbound_details',
method: 'put',
data: data
})
}
// 删除动保出库明细
export function delAnimal_health_protection_outbound_details(id) {
return request({
url: '/admin/dbkb/animal_health_protection_outbound_details/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保投用记录列表
export function listAnimal_health_protection_records(query) {
return request({
url: '/admin/dbkb/animal_health_protection_records/list',
method: 'get',
params: query
})
}
// 查询动保投用记录详细
export function getAnimal_health_protection_records(id) {
return request({
url: '/admin/dbkb/animal_health_protection_records/' + id,
method: 'get'
})
}
// 新增动保投用记录
export function addAnimal_health_protection_records(data) {
return request({
url: '/admin/dbkb/animal_health_protection_records',
method: 'post',
data: data
})
}
// 修改动保投用记录
export function updateAnimal_health_protection_records(data) {
return request({
url: '/admin/dbkb/animal_health_protection_records',
method: 'put',
data: data
})
}
// 删除动保投用记录
export function delAnimal_health_protection_records(id) {
return request({
url: '/admin/dbkb/animal_health_protection_records/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询动保投用汇总列表
export function listAnimal_health_protection_summary(query) {
return request({
url: '/admin/dbkb/animal_health_protection_summary/list',
method: 'get',
params: query
})
}
// 查询动保投用汇总详细
export function getAnimal_health_protection_summary(id) {
return request({
url: '/admin/dbkb/animal_health_protection_summary/' + id,
method: 'get'
})
}
// 新增动保投用汇总
export function addAnimal_health_protection_summary(data) {
return request({
url: '/admin/dbkb/animal_health_protection_summary',
method: 'post',
data: data
})
}
// 修改动保投用汇总
export function updateAnimal_health_protection_summary(data) {
return request({
url: '/admin/dbkb/animal_health_protection_summary',
method: 'put',
data: data
})
}
// 删除动保投用汇总
export function delAnimal_health_protection_summary(id) {
return request({
url: '/admin/dbkb/animal_health_protection_summary/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询费用成本录入列表
export function listCost_expense_entry(query) {
return request({
url: '/admin/fy/cost_expense_entry/list',
method: 'get',
params: query
})
}
// 查询费用成本录入详细
export function getCost_expense_entry(id) {
return request({
url: '/admin/fy/cost_expense_entry/' + id,
method: 'get'
})
}
// 新增费用成本录入
export function addCost_expense_entry(data) {
return request({
url: '/admin/fy/cost_expense_entry',
method: 'post',
data: data
})
}
// 修改费用成本录入
export function updateCost_expense_entry(data) {
return request({
url: '/admin/fy/cost_expense_entry',
method: 'put',
data: data
})
}
// 删除费用成本录入
export function delCost_expense_entry(id) {
return request({
url: '/admin/fy/cost_expense_entry/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询成本项目维护列表
export function listCost_item_maintenance(query) {
return request({
url: '/admin/fy/cost_item_maintenance/list',
method: 'get',
params: query
})
}
// 查询成本项目维护详细
export function getCost_item_maintenance(id) {
return request({
url: '/admin/fy/cost_item_maintenance/' + id,
method: 'get'
})
}
// 新增成本项目维护
export function addCost_item_maintenance(data) {
return request({
url: '/admin/fy/cost_item_maintenance',
method: 'post',
data: data
})
}
// 修改成本项目维护
export function updateCost_item_maintenance(data) {
return request({
url: '/admin/fy/cost_item_maintenance',
method: 'put',
data: data
})
}
// 删除成本项目维护
export function delCost_item_maintenance(id) {
return request({
url: '/admin/fy/cost_item_maintenance/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询客户期初管理列表
export function listCustomer_beginning_balance_management(query) {
return request({
url: '/admin/fy/customer_beginning_balance_management/list',
method: 'get',
params: query
})
}
// 查询客户期初管理详细
export function getCustomer_beginning_balance_management(id) {
return request({
url: '/admin/fy/customer_beginning_balance_management/' + id,
method: 'get'
})
}
// 新增客户期初管理
export function addCustomer_beginning_balance_management(data) {
return request({
url: '/admin/fy/customer_beginning_balance_management',
method: 'post',
data: data
})
}
// 修改客户期初管理
export function updateCustomer_beginning_balance_management(data) {
return request({
url: '/admin/fy/customer_beginning_balance_management',
method: 'put',
data: data
})
}
// 删除客户期初管理
export function delCustomer_beginning_balance_management(id) {
return request({
url: '/admin/fy/customer_beginning_balance_management/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询客户收款结算列表
export function listCustomer_collection_settlement(query) {
return request({
url: '/admin/fy/customer_collection_settlement/list',
method: 'get',
params: query
})
}
// 查询客户收款结算详细
export function getCustomer_collection_settlement(id) {
return request({
url: '/admin/fy/customer_collection_settlement/' + id,
method: 'get'
})
}
// 新增客户收款结算
export function addCustomer_collection_settlement(data) {
return request({
url: '/admin/fy/customer_collection_settlement',
method: 'post',
data: data
})
}
// 修改客户收款结算
export function updateCustomer_collection_settlement(data) {
return request({
url: '/admin/fy/customer_collection_settlement',
method: 'put',
data: data
})
}
// 删除客户收款结算
export function delCustomer_collection_settlement(id) {
return request({
url: '/admin/fy/customer_collection_settlement/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询客户应收管理列表
export function listCustomer_receivable_management(query) {
return request({
url: '/admin/fy/customer_receivable_management/list',
method: 'get',
params: query
})
}
// 查询客户应收管理详细
export function getCustomer_receivable_management(id) {
return request({
url: '/admin/fy/customer_receivable_management/' + id,
method: 'get'
})
}
// 新增客户应收管理
export function addCustomer_receivable_management(data) {
return request({
url: '/admin/fy/customer_receivable_management',
method: 'post',
data: data
})
}
// 修改客户应收管理
export function updateCustomer_receivable_management(data) {
return request({
url: '/admin/fy/customer_receivable_management',
method: 'put',
data: data
})
}
// 删除客户应收管理
export function delCustomer_receivable_management(id) {
return request({
url: '/admin/fy/customer_receivable_management/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询费用事项维护列表
export function listExpense_item_maintenance(query) {
return request({
url: '/admin/fy/expense_item_maintenance/list',
method: 'get',
params: query
})
}
// 查询费用事项维护详细
export function getExpense_item_maintenance(id) {
return request({
url: '/admin/fy/expense_item_maintenance/' + id,
method: 'get'
})
}
// 新增费用事项维护
export function addExpense_item_maintenance(data) {
return request({
url: '/admin/fy/expense_item_maintenance',
method: 'post',
data: data
})
}
// 修改费用事项维护
export function updateExpense_item_maintenance(data) {
return request({
url: '/admin/fy/expense_item_maintenance',
method: 'put',
data: data
})
}
// 删除费用事项维护
export function delExpense_item_maintenance(id) {
return request({
url: '/admin/fy/expense_item_maintenance/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询客户管理列表
export function listCustomer_management(query) {
return request({
url: '/admin/jc/customer_management/list',
method: 'get',
params: query
})
}
// 查询客户管理详细
export function getCustomer_management(id) {
return request({
url: '/admin/jc/customer_management/' + id,
method: 'get'
})
}
// 新增客户管理
export function addCustomer_management(data) {
return request({
url: '/admin/jc/customer_management',
method: 'post',
data: data
})
}
// 修改客户管理
export function updateCustomer_management(data) {
return request({
url: '/admin/jc/customer_management',
method: 'put',
data: data
})
}
// 删除客户管理
export function delCustomer_management(id) {
return request({
url: '/admin/jc/customer_management/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询供应商管理列表
export function listSupplier_management(query) {
return request({
url: '/admin/jc/supplier_management/list',
method: 'get',
params: query
})
}
// 查询供应商管理详细
export function getSupplier_management(id) {
return request({
url: '/admin/jc/supplier_management/' + id,
method: 'get'
})
}
// 新增供应商管理
export function addSupplier_management(data) {
return request({
url: '/admin/jc/supplier_management',
method: 'post',
data: data
})
}
// 修改供应商管理
export function updateSupplier_management(data) {
return request({
url: '/admin/jc/supplier_management',
method: 'put',
data: data
})
}
// 删除供应商管理
export function delSupplier_management(id) {
return request({
url: '/admin/jc/supplier_management/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询运输管理列表
export function listTransport_management(query) {
return request({
url: '/admin/jc/transport_management/list',
method: 'get',
params: query
})
}
// 查询运输管理详细
export function getTransport_management(id) {
return request({
url: '/admin/jc/transport_management/' + id,
method: 'get'
})
}
// 新增运输管理
export function addTransport_management(data) {
return request({
url: '/admin/jc/transport_management',
method: 'post',
data: data
})
}
// 修改运输管理
export function updateTransport_management(data) {
return request({
url: '/admin/jc/transport_management',
method: 'put',
data: data
})
}
// 删除运输管理
export function delTransport_management(id) {
return request({
url: '/admin/jc/transport_management/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询自定义分组列表
export function listCustom_groups(query) {
return request({
url: '/admin/jdtk/custom_groups/list',
method: 'get',
params: query
})
}
// 查询自定义分组详细
export function getCustom_groups(id) {
return request({
url: '/admin/jdtk/custom_groups/' + id,
method: 'get'
})
}
// 新增自定义分组
export function addCustom_groups(data) {
return request({
url: '/admin/jdtk/custom_groups',
method: 'post',
data: data
})
}
// 修改自定义分组
export function updateCustom_groups(data) {
return request({
url: '/admin/jdtk/custom_groups',
method: 'put',
data: data
})
}
// 删除自定义分组
export function delCustom_groups(id) {
return request({
url: '/admin/jdtk/custom_groups/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询养殖场设置列表
export function listFarm_settings(query) {
return request({
url: '/admin/jdtk/farm_settings/list',
method: 'get',
params: query
})
}
// 查询养殖场设置详细
export function getFarm_settings(id) {
return request({
url: '/admin/jdtk/farm_settings/' + id,
method: 'get'
})
}
// 新增养殖场设置
export function addFarm_settings(data) {
return request({
url: '/admin/jdtk/farm_settings',
method: 'post',
data: data
})
}
// 修改养殖场设置
export function updateFarm_settings(data) {
return request({
url: '/admin/jdtk/farm_settings',
method: 'put',
data: data
})
}
// 删除养殖场设置
export function delFarm_settings(id) {
return request({
url: '/admin/jdtk/farm_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询分组与塘口的关联列表
export function listGroup_ponds(query) {
return request({
url: '/admin/jdtk/group_ponds/list',
method: 'get',
params: query
})
}
// 查询分组与塘口的关联详细
export function getGroup_ponds(groupId) {
return request({
url: '/admin/jdtk/group_ponds/' + groupId,
method: 'get'
})
}
// 新增分组与塘口的关联
export function addGroup_ponds(data) {
return request({
url: '/admin/jdtk/group_ponds',
method: 'post',
data: data
})
}
// 修改分组与塘口的关联
export function updateGroup_ponds(data) {
return request({
url: '/admin/jdtk/group_ponds',
method: 'put',
data: data
})
}
// 删除分组与塘口的关联
export function delGroup_ponds(groupId) {
return request({
url: '/admin/jdtk/group_ponds/' + groupId,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询塘口设置列表
export function listPond_settings(query) {
return request({
url: '/admin/jdtk/pond_settings/list',
method: 'get',
params: query
})
}
// 查询塘口设置详细
export function getPond_settings(id) {
return request({
url: '/admin/jdtk/pond_settings/' + id,
method: 'get'
})
}
// 新增塘口设置
export function addPond_settings(data) {
return request({
url: '/admin/jdtk/pond_settings',
method: 'post',
data: data
})
}
// 修改塘口设置
export function updatePond_settings(data) {
return request({
url: '/admin/jdtk/pond_settings',
method: 'put',
data: data
})
}
// 删除塘口设置
export function delPond_settings(id) {
return request({
url: '/admin/jdtk/pond_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询成品加工入库列表
export function listFinished_goods_processing(query) {
return request({
url: '/admin/jg/finished_goods_processing/list',
method: 'get',
params: query
})
}
// 查询成品加工入库详细
export function getFinished_goods_processing(id) {
return request({
url: '/admin/jg/finished_goods_processing/' + id,
method: 'get'
})
}
// 新增成品加工入库
export function addFinished_goods_processing(data) {
return request({
url: '/admin/jg/finished_goods_processing',
method: 'post',
data: data
})
}
// 修改成品加工入库
export function updateFinished_goods_processing(data) {
return request({
url: '/admin/jg/finished_goods_processing',
method: 'put',
data: data
})
}
// 删除成品加工入库
export function delFinished_goods_processing(id) {
return request({
url: '/admin/jg/finished_goods_processing/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询库存盘点列表
export function listInventory_check(query) {
return request({
url: '/admin/jg/inventory_check/list',
method: 'get',
params: query
})
}
// 查询库存盘点详细
export function getInventory_check(id) {
return request({
url: '/admin/jg/inventory_check/' + id,
method: 'get'
})
}
// 新增库存盘点
export function addInventory_check(data) {
return request({
url: '/admin/jg/inventory_check',
method: 'post',
data: data
})
}
// 修改库存盘点
export function updateInventory_check(data) {
return request({
url: '/admin/jg/inventory_check',
method: 'put',
data: data
})
}
// 删除库存盘点
export function delInventory_check(id) {
return request({
url: '/admin/jg/inventory_check/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询加工品销售列表
export function listProcessed_goods_sales(query) {
return request({
url: '/admin/jg/processed_goods_sales/list',
method: 'get',
params: query
})
}
// 查询加工品销售详细
export function getProcessed_goods_sales(id) {
return request({
url: '/admin/jg/processed_goods_sales/' + id,
method: 'get'
})
}
// 新增加工品销售
export function addProcessed_goods_sales(data) {
return request({
url: '/admin/jg/processed_goods_sales',
method: 'post',
data: data
})
}
// 修改加工品销售
export function updateProcessed_goods_sales(data) {
return request({
url: '/admin/jg/processed_goods_sales',
method: 'put',
data: data
})
}
// 删除加工品销售
export function delProcessed_goods_sales(id) {
return request({
url: '/admin/jg/processed_goods_sales/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询加工厂信息列表
export function listProcessing_plant_info(query) {
return request({
url: '/admin/jg/processing_plant_info/list',
method: 'get',
params: query
})
}
// 查询加工厂信息详细
export function getProcessing_plant_info(id) {
return request({
url: '/admin/jg/processing_plant_info/' + id,
method: 'get'
})
}
// 新增加工厂信息
export function addProcessing_plant_info(data) {
return request({
url: '/admin/jg/processing_plant_info',
method: 'post',
data: data
})
}
// 修改加工厂信息
export function updateProcessing_plant_info(data) {
return request({
url: '/admin/jg/processing_plant_info',
method: 'put',
data: data
})
}
// 删除加工厂信息
export function delProcessing_plant_info(id) {
return request({
url: '/admin/jg/processing_plant_info/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询商品期初设置列表
export function listProduct_beginning_settings(query) {
return request({
url: '/admin/jg/product_beginning_settings/list',
method: 'get',
params: query
})
}
// 查询商品期初设置详细
export function getProduct_beginning_settings(id) {
return request({
url: '/admin/jg/product_beginning_settings/' + id,
method: 'get'
})
}
// 新增商品期初设置
export function addProduct_beginning_settings(data) {
return request({
url: '/admin/jg/product_beginning_settings',
method: 'post',
data: data
})
}
// 修改商品期初设置
export function updateProduct_beginning_settings(data) {
return request({
url: '/admin/jg/product_beginning_settings',
method: 'put',
data: data
})
}
// 删除商品期初设置
export function delProduct_beginning_settings(id) {
return request({
url: '/admin/jg/product_beginning_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询商品信息列表
export function listProduct_info(query) {
return request({
url: '/admin/jg/product_info/list',
method: 'get',
params: query
})
}
// 查询商品信息详细
export function getProduct_info(id) {
return request({
url: '/admin/jg/product_info/' + id,
method: 'get'
})
}
// 新增商品信息
export function addProduct_info(data) {
return request({
url: '/admin/jg/product_info',
method: 'post',
data: data
})
}
// 修改商品信息
export function updateProduct_info(data) {
return request({
url: '/admin/jg/product_info',
method: 'put',
data: data
})
}
// 删除商品信息
export function delProduct_info(id) {
return request({
url: '/admin/jg/product_info/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询原材料购进列表
export function listRaw_material_purchase(query) {
return request({
url: '/admin/jg/raw_material_purchase/list',
method: 'get',
params: query
})
}
// 查询原材料购进详细
export function getRaw_material_purchase(id) {
return request({
url: '/admin/jg/raw_material_purchase/' + id,
method: 'get'
})
}
// 新增原材料购进
export function addRaw_material_purchase(data) {
return request({
url: '/admin/jg/raw_material_purchase',
method: 'post',
data: data
})
}
// 修改原材料购进
export function updateRaw_material_purchase(data) {
return request({
url: '/admin/jg/raw_material_purchase',
method: 'put',
data: data
})
}
// 删除原材料购进
export function delRaw_material_purchase(id) {
return request({
url: '/admin/jg/raw_material_purchase/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询部门设置列表
export function listDepartment_settings(query) {
return request({
url: '/admin/jgyh/department_settings/list',
method: 'get',
params: query
})
}
// 查询部门设置详细
export function getDepartment_settings(departmentCode) {
return request({
url: '/admin/jgyh/department_settings/' + departmentCode,
method: 'get'
})
}
// 新增部门设置
export function addDepartment_settings(data) {
return request({
url: '/admin/jgyh/department_settings',
method: 'post',
data: data
})
}
// 修改部门设置
export function updateDepartment_settings(data) {
return request({
url: '/admin/jgyh/department_settings',
method: 'put',
data: data
})
}
// 删除部门设置
export function delDepartment_settings(departmentCode) {
return request({
url: '/admin/jgyh/department_settings/' + departmentCode,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询机构设置列表
export function listOrganization_settings(query) {
return request({
url: '/admin/jgyh/organization_settings/list',
method: 'get',
params: query
})
}
// 查询机构设置详细
export function getOrganization_settings(id) {
return request({
url: '/admin/jgyh/organization_settings/' + id,
method: 'get'
})
}
// 新增机构设置
export function addOrganization_settings(data) {
return request({
url: '/admin/jgyh/organization_settings',
method: 'post',
data: data
})
}
// 修改机构设置
export function updateOrganization_settings(data) {
return request({
url: '/admin/jgyh/organization_settings',
method: 'put',
data: data
})
}
// 删除机构设置
export function delOrganization_settings(id) {
return request({
url: '/admin/jgyh/organization_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询角色设置列表
export function listRole_settings(query) {
return request({
url: '/admin/jgyh/role_settings/list',
method: 'get',
params: query
})
}
// 查询角色设置详细
export function getRole_settings(id) {
return request({
url: '/admin/jgyh/role_settings/' + id,
method: 'get'
})
}
// 新增角色设置
export function addRole_settings(data) {
return request({
url: '/admin/jgyh/role_settings',
method: 'post',
data: data
})
}
// 修改角色设置
export function updateRole_settings(data) {
return request({
url: '/admin/jgyh/role_settings',
method: 'put',
data: data
})
}
// 删除角色设置
export function delRole_settings(id) {
return request({
url: '/admin/jgyh/role_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询用户设置列表
export function listUser_settings(query) {
return request({
url: '/admin/jgyh/user_settings/list',
method: 'get',
params: query
})
}
// 查询用户设置详细
export function getUser_settings(id) {
return request({
url: '/admin/jgyh/user_settings/' + id,
method: 'get'
})
}
// 新增用户设置
export function addUser_settings(data) {
return request({
url: '/admin/jgyh/user_settings',
method: 'post',
data: data
})
}
// 修改用户设置
export function updateUser_settings(data) {
return request({
url: '/admin/jgyh/user_settings',
method: 'put',
data: data
})
}
// 删除用户设置
export function delUser_settings(id) {
return request({
url: '/admin/jgyh/user_settings/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
const data = {
username,
password,
code,
uuid
}
return request({
url: '/login',
headers: {
isToken: false,
repeatSubmit: false
},
method: 'post',
data: data
})
}
// 注册方法
export function register(data) {
return request({
url: '/register',
headers: {
isToken: false
},
method: 'post',
data: data
})
}
// 获取用户详细信息
export function getInfo() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 退出方法
export function logout() {
return request({
url: '/logout',
method: 'post'
})
}
// 获取验证码
export function getCodeImg() {
return request({
url: '/captchaImage',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}
\ No newline at end of file
... ...
import request from '@/utils/request'
// 获取路由
export const getRouters = () => {
return request({
url: '/getRouters',
method: 'get'
})
}
\ No newline at end of file
... ...
import request from '@/utils/request'
// 查询缓存详细
export function getCache() {
return request({
url: '/monitor/cache',
method: 'get'
})
}
// 查询缓存名称列表
export function listCacheName() {
return request({
url: '/monitor/cache/getNames',
method: 'get'
})
}
// 查询缓存键名列表
export function listCacheKey(cacheName) {
return request({
url: '/monitor/cache/getKeys/' + cacheName,
method: 'get'
})
}
// 查询缓存内容
export function getCacheValue(cacheName, cacheKey) {
return request({
url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
method: 'get'
})
}
// 清理指定名称缓存
export function clearCacheName(cacheName) {
return request({
url: '/monitor/cache/clearCacheName/' + cacheName,
method: 'delete'
})
}
// 清理指定键名缓存
export function clearCacheKey(cacheKey) {
return request({
url: '/monitor/cache/clearCacheKey/' + cacheKey,
method: 'delete'
})
}
// 清理全部缓存
export function clearCacheAll() {
return request({
url: '/monitor/cache/clearCacheAll',
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询定时任务调度列表
export function listJob(query) {
return request({
url: '/monitor/job/list',
method: 'get',
params: query
})
}
// 查询定时任务调度详细
export function getJob(jobId) {
return request({
url: '/monitor/job/' + jobId,
method: 'get'
})
}
// 新增定时任务调度
export function addJob(data) {
return request({
url: '/monitor/job',
method: 'post',
data: data
})
}
// 修改定时任务调度
export function updateJob(data) {
return request({
url: '/monitor/job',
method: 'put',
data: data
})
}
// 删除定时任务调度
export function delJob(jobId) {
return request({
url: '/monitor/job/' + jobId,
method: 'delete'
})
}
// 任务状态修改
export function changeJobStatus(jobId, status) {
const data = {
jobId,
status
}
return request({
url: '/monitor/job/changeStatus',
method: 'put',
data: data
})
}
// 定时任务立即执行一次
export function runJob(jobId, jobGroup) {
const data = {
jobId,
jobGroup
}
return request({
url: '/monitor/job/run',
method: 'put',
data: data
})
}
\ No newline at end of file
... ...
import request from '@/utils/request'
// 查询调度日志列表
export function listJobLog(query) {
return request({
url: '/monitor/jobLog/list',
method: 'get',
params: query
})
}
// 删除调度日志
export function delJobLog(jobLogId) {
return request({
url: '/monitor/jobLog/' + jobLogId,
method: 'delete'
})
}
// 清空调度日志
export function cleanJobLog() {
return request({
url: '/monitor/jobLog/clean',
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询登录日志列表
export function list(query) {
return request({
url: '/monitor/logininfor/list',
method: 'get',
params: query
})
}
// 删除登录日志
export function delLogininfor(infoId) {
return request({
url: '/monitor/logininfor/' + infoId,
method: 'delete'
})
}
// 解锁用户登录状态
export function unlockLogininfor(userName) {
return request({
url: '/monitor/logininfor/unlock/' + userName,
method: 'get'
})
}
// 清空登录日志
export function cleanLogininfor() {
return request({
url: '/monitor/logininfor/clean',
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询在线用户列表
export function list(query) {
return request({
url: '/monitor/online/list',
method: 'get',
params: query
})
}
// 强退用户
export function forceLogout(tokenId) {
return request({
url: '/monitor/online/' + tokenId,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询操作日志列表
export function list(query) {
return request({
url: '/monitor/operlog/list',
method: 'get',
params: query
})
}
// 删除操作日志
export function delOperlog(operId) {
return request({
url: '/monitor/operlog/' + operId,
method: 'delete'
})
}
// 清空操作日志
export function cleanOperlog() {
return request({
url: '/monitor/operlog/clean',
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 获取服务信息
export function getServer() {
return request({
url: '/monitor/server',
method: 'get'
})
}
\ No newline at end of file
... ...
import request from '@/utils/request'
// 查询Binmass列表
export function listBinmass(query) {
return request({
url: '/admin/other/binmass/list',
method: 'get',
params: query
})
}
// 查询Binmass详细
export function getBinmass(id) {
return request({
url: '/admin/other/binmass/' + id,
method: 'get'
})
}
// 新增Binmass
export function addBinmass(data) {
return request({
url: '/admin/other/binmass',
method: 'post',
data: data
})
}
// 修改Binmass
export function updateBinmass(data) {
return request({
url: '/admin/other/binmass',
method: 'put',
data: data
})
}
// 删除Binmass
export function delBinmass(id) {
return request({
url: '/admin/other/binmass/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询Complete FCR列表
export function listComplete_fcr(query) {
return request({
url: '/admin/other/complete_fcr/list',
method: 'get',
params: query
})
}
// 查询Complete FCR详细
export function getComplete_fcr(id) {
return request({
url: '/admin/other/complete_fcr/' + id,
method: 'get'
})
}
// 新增Complete FCR
export function addComplete_fcr(data) {
return request({
url: '/admin/other/complete_fcr',
method: 'post',
data: data
})
}
// 修改Complete FCR
export function updateComplete_fcr(data) {
return request({
url: '/admin/other/complete_fcr',
method: 'put',
data: data
})
}
// 删除Complete FCR
export function delComplete_fcr(id) {
return request({
url: '/admin/other/complete_fcr/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询检测数据列表
export function listDetection_data(query) {
return request({
url: '/admin/rc/detection_data/list',
method: 'get',
params: query
})
}
// 查询检测数据详细
export function getDetection_data(id) {
return request({
url: '/admin/rc/detection_data/' + id,
method: 'get'
})
}
// 新增检测数据
export function addDetection_data(data) {
return request({
url: '/admin/rc/detection_data',
method: 'post',
data: data
})
}
// 修改检测数据
export function updateDetection_data(data) {
return request({
url: '/admin/rc/detection_data',
method: 'put',
data: data
})
}
// 删除检测数据
export function delDetection_data(id) {
return request({
url: '/admin/rc/detection_data/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询巡查日志列表
export function listInspection_logs(query) {
return request({
url: '/admin/rc/inspection_logs/list',
method: 'get',
params: query
})
}
// 查询巡查日志详细
export function getInspection_logs(id) {
return request({
url: '/admin/rc/inspection_logs/' + id,
method: 'get'
})
}
// 新增巡查日志
export function addInspection_logs(data) {
return request({
url: '/admin/rc/inspection_logs',
method: 'post',
data: data
})
}
// 修改巡查日志
export function updateInspection_logs(data) {
return request({
url: '/admin/rc/inspection_logs',
method: 'put',
data: data
})
}
// 删除巡查日志
export function delInspection_logs(id) {
return request({
url: '/admin/rc/inspection_logs/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询换水记录列表
export function listWater_exchange_records(query) {
return request({
url: '/admin/rc/water_exchange_records/list',
method: 'get',
params: query
})
}
// 查询换水记录详细
export function getWater_exchange_records(id) {
return request({
url: '/admin/rc/water_exchange_records/' + id,
method: 'get'
})
}
// 新增换水记录
export function addWater_exchange_records(data) {
return request({
url: '/admin/rc/water_exchange_records',
method: 'post',
data: data
})
}
// 修改换水记录
export function updateWater_exchange_records(data) {
return request({
url: '/admin/rc/water_exchange_records',
method: 'put',
data: data
})
}
// 删除换水记录
export function delWater_exchange_records(id) {
return request({
url: '/admin/rc/water_exchange_records/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询移箱操作审批列表
export function listBox_transfer_approval(query) {
return request({
url: '/admin/sc/box_transfer_approval/list',
method: 'get',
params: query
})
}
// 查询移箱操作审批详细
export function getBox_transfer_approval(id) {
return request({
url: '/admin/sc/box_transfer_approval/' + id,
method: 'get'
})
}
// 新增移箱操作审批
export function addBox_transfer_approval(data) {
return request({
url: '/admin/sc/box_transfer_approval',
method: 'post',
data: data
})
}
// 修改移箱操作审批
export function updateBox_transfer_approval(data) {
return request({
url: '/admin/sc/box_transfer_approval',
method: 'put',
data: data
})
}
// 删除移箱操作审批
export function delBox_transfer_approval(id) {
return request({
url: '/admin/sc/box_transfer_approval/' + id,
method: 'delete'
})
}
... ...
import request from '@/utils/request'
// 查询检测管理列表
export function listInspection_management(query) {
return request({
url: '/admin/sc/inspection_management/list',
method: 'get',
params: query
})
}
// 查询检测管理详细
export function getInspection_management(id) {
return request({
url: '/admin/sc/inspection_management/' + id,
method: 'get'
})
}
// 新增检测管理
export function addInspection_management(data) {
return request({
url: '/admin/sc/inspection_management',
method: 'post',
data: data
})
}
// 修改检测管理
export function updateInspection_management(data) {
return request({
url: '/admin/sc/inspection_management',
method: 'put',
data: data
})
}
// 删除检测管理
export function delInspection_management(id) {
return request({
url: '/admin/sc/inspection_management/' + id,
method: 'delete'
})
}
... ...