提交 162b89ff 编写于 作者: lyf's avatar lyf

初始化项目

上级
流水线 #37841 已取消 于阶段
# comment
deploy
node_modules
public
[*.{js,jsx,ts,tsx,vue,scss,css}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
NODE_ENV=development
# baseUrl
BASE_URL=/pica-admin-consultation/
# 路由 base
VUE_APP_BASE_ROUTE_URL=/pica-admin-consultation
# 默认路由地址
VUE_APP_BASE_ROUTE=/
# 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5-dev.yunqueyi.com/
# 模拟用户信息,如果有则发送模拟用户信息,只针对开发模式
VUE_APP_MOCK_USER_INFO=
# 是否加密
VUE_APP_ENCRYPT=
# 是否开启 vConsole
VUE_APP_CONSOLE=false
# appid
VUE_APP_APPID=ab5cb3c1fd834ca1892cd7b3c6e57717
#生成骨架屏扫描地址(可选择本地)
VUE_APP_SKELETON='http://localhost:8083'
NODE_ENV=development
# 自定义 VUE_APP_ENV
VUE_APP_ENV ='dev'
VUE_APP_SERVICE_URL=https://dev-sc.yunqueyi.com
# 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5-dev.yunqueyi.com/
# 模拟用户信息,如果有则发送模拟用户信息,只针对开发模式
VUE_APP_MOCK_USER_INFO=
# 是否加密
VUE_APP_ENCRYPT=
# 是否开启vConsole
VUE_APP_CONSOLE=false
# 是否开启打印 console.log
VUE_APP_HAS_CONSOLE=true
#OSS上传Bucket_Name
VUE_APP_BUCKET_NAME='pica-app-dev'
# appid
VUE_APP_APPID=wxf4e66242d31c81c2
NODE_ENV=production
# 自定义 VUE_APP_ENV
VUE_APP_ENV ='production'
VUE_APP_SERVICE_URL=https://sc.yunqueyi.com
# 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5.yunqueyi.com/
# 模拟用户信息,如果有则发送模拟用户信息,只针对开发模式
VUE_APP_MOCK_USER_INFO=
# 是否加密
VUE_APP_ENCRYPT=false
# 是否开启 vConsole
VUE_APP_CONSOLE=false
# appid
VUE_APP_APPID=wx2c577552a2d28550
# app渠道
VUE_APP_CHANNEL=prod
# OSS 上传 Bucket_Name
VUE_APP_BUCKET_NAME='pica-app-prod'
NODE_ENV=production
# 自定义 VUE_APP_ENV
VUE_APP_ENV ='testing'
VUE_APP_SERVICE_URL=https://test1-sc.yunqueyi.com
# 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5-test.yunqueyi.com/
# 模拟用户信息,如果有则发送模拟用户信息,只针对开发模式
VUE_APP_MOCK_USER_INFO=
# 是否加密
VUE_APP_ENCRYPT=false
# 是否开启 vConsole
VUE_APP_CONSOLE=true
# 是否开启打印 console.log
VUE_APP_HAS_CONSOLE=false
# appid
VUE_APP_APPID=wxcaad75b7fff5659c
# APP 渠道
VUE_APP_CHANNEL=_test
# OSS上传Bucket_Name
VUE_APP_BUCKET_NAME='pica-app-test'
NODE_ENV=production
# 自定义 VUE_APP_ENV
VUE_APP_ENV ='uat'
VUE_APP_SERVICE_URL=https://uat-sc.yunqueyi.com
# 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5-uat.yunqueyi.com/
# 模拟用户信息,如果有则发送模拟用户信息,只针对开发模式
VUE_APP_MOCK_USER_INFO=
# 是否加密
VUE_APP_ENCRYPT=false
# 是否开启vConsole
VUE_APP_CONSOLE=false
# appid
VUE_APP_APPID=wx342ef0e5afee54a7
# OSS 上传 Bucket_Name
VUE_APP_BUCKET_NAME='pica-app-uat'
/h5-submodules-master
/node_modules
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// 全局变量
globals: {
'gdp': true,
},
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
'no-console': 0,
'comma-spacing': [2, { // 控制逗号前面没有空格,后面必须有空格
'before': false,
'after': true
}],
'arrow-spacing': [2, { // 要求箭头函数前后有空格
'before': true,
'after': true
}],
'no-multi-spaces': 2,// 禁止使用多个空格,
'no-spaced-func': 2,// 禁止 function 标识符和括号之间出现空格,this.getList () 报错
'semi-spacing': [2, {// 强制分号之前不允许有空格
'before': false,
'after': true
}],
'space-infix-ops': 2,// 要求操作符前后必须有空格: 2 + 3 2 === 2 3 > 2
'spaced-comment': [2, 'always'], // 强制在注释中 // 或 /* 使用一致的空格
'array-bracket-spacing': [2, 'never'],// 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之后和 ] 之前不能带空格,always参数:[ 之后和 ] 之前必须带空格
"space-before-blocks": 2, // if/function等的大括号之前需要有空格
"vue/script-indent": ["error", 2, { // script标签缩进设置
"baseIndent": 1,
"switchCase": 0,
"ignores": []
}],
'no-undef-init': 2,// 禁止将变量初始化为 undefined,保存时会将let a = undefined变成let a
'semi': [2, 'always'],//强制结尾必须有分号;
'prefer-const': 2,// 要求使用 const 声明那些声明后不再被修改的变量
'quotes': [2, 'single'],//js中强制使用单引号
'no-multiple-empty-lines': [2, {// 不允许多个空行,最多一行
'max': 1
}],
'vue/order-in-components': ['error', {
'order': [
'el',
'name',
'parent',
'functional',
['delimiters', 'comments'],
['components', 'directives', 'filters'],
'extends',
'mixins',
'inheritAttrs',
'model',
['props', 'propsData'],
'data',
'computed',
'watch',
'LIFECYCLE_HOOKS',
'methods',
['template', 'render'],
'renderError'
]
}],
'vue/attributes-order': ['error', {
'order': [
'DEFINITION',
'LIST_RENDERING',
'CONDITIONALS',
'RENDER_MODIFIERS',
'GLOBAL',
'UNIQUE',
'TWO_WAY_BINDING',
'OTHER_DIRECTIVES',
'OTHER_ATTR',
'EVENTS',
'CONTENT'
]
}],
}
}
.DS_Store
node_modules
/dist
.history/
# local env files
.env.local
.env.*.local
update_*.sh
package-lock.json
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.proxy.js
.version
log/
logs/
# .pica.prompts.js
log
logs
.version
module.exports = {
'autoRouter': false,
'type': "h5",
'projectName': "pica-admin-consultation",
'autoConfig': true,
'transition': false,
'useHistoryRouter': true,
'rewriteHtml': true,
'renderToBranch': true,
'srcAlias': "mn-template",
};
FROM nginx
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
echo "Asia/shanghai" > /etc/timezone
COPY error.html /usr/share/nginx/html/error.html
COPY nginx.conf /etc/nginx/nginx.conf
COPY dist/ /usr/vue/pica-admin-consultation/dist/
RUN chmod -R +rw /usr/share/nginx/html/error.html &&\
chown -R nginx:nginx /usr/share/nginx/html/error.html &&\
chmod -R +rw /usr/vue/pica-admin-consultation/dist/ &&\
chown -R nginx:nginx /usr/vue/pica-admin-consultation/dist/
# pica-admin-consultation
> 请先查看每个目录的 md 文件
## 启动
```shell script
npm run start
```
## 编译打包
```shell script
#开发环境
npm run build:dev
#预发环境
npm run build:pre
#生产环境
npm run build:prod
#测试环境
npm run build:test
```
## 插件配置
```js
module.exports = {
// 插件配置项
pluginOptions: {
// 蛮牛配置
pica: {
// CDN扩展JS资源排序: ['lodash', 'vue', 'vuex']
jsSort: [],
// CDN扩展CSS资源排序: ['vant.css']
cssSort: [],
// 骨架屏渲染的路由(手动配置)
skeletonRoutes: [
{
path: '/demo',
name: 'Demo',
meta: {
skeleton: true
}
},
],
// 启用自动配置骨架屏渲染路由
enableAutoSkeletonRoutes: false,
// 路由模式
routeMode: 'history',
// 骨架屏一次渲染几个路由
dpsLimit: 5,
// dps骨架屏渲染本地服务配置
dpsServer: {}
},
// 图片压缩
tinypng: {
key: ''
},
// 自动路由配置
autoRouting: {
chunkNamePrefix: 'page-'
}
}
};
```
## dpsServer
### port
服务监听端口,默认从8000开始查找可用端口
### proxy
反向代理中间件配置 @See [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware)
如果需要自定义返回:
```js
{
proxy: {
'^/app-gateway': (req, res, next) => {
res.json({ code: 200, data: {} });
res.end();
}
}
}
```
## 图片压缩
> 需要在`vue.config.js`中配置`pluginOptions.tinypng.key`的值。
```shell script
npm run tinypng
```
## 调用生成器
```shell script
vue invoke pica
```
## 根据 pica.prompts 生成封闭式模板
```shell script
npm run core
```
## 使用骨架屏
> 框架默认已开启骨架屏渲染。请查看`vue.config.js`
### 自动根据路由配置
需要在路由页面文件配置`route`
```json
{
"meta": {
"skeleton": true
}
}
```
如需自定义骨架
```json
{
"meta": {
"skeleton": {
"name": "必须和路由定义的name一致",
"path": "匹配当前路由的正则",
"pathname": "访问路由的path地址,例如: /mn/demo",
"skeletonId": "骨架屏路由ID,唯一即可"
}
}
}
```
## Jenkinsfile 构建
在 Jenkinsfile 文件中 `versionType = 'Patch';`,versionType 默认为 Patch,为小版本更新,1.2.3 对应 Major.Minor.Patch。
```bash
npm run build:test versionType:Patch
```
## 后台API接口反向代理
### 本地
如果`VUE_APP_MOCK_USER_INFO`不为空则走代理到本地。并且会在接口地址前加上`/proxy`.
默认会把`/proxy`的接口代理到`http://localhost:8081。
如需修改,请查看项目根目录的`.proxy.js`文件
### 走网关
如果`VUE_APP_MOCK_USER_INFO`为空则走代理到网关。并且会在接口地址前加上`/proxy/app-gateway`.
会把`/proxy`的接口代理到`VUE_APP_SERVICE_URL`环境变量,如该变量为空则默认为``
const path = require('path');
function resolve (dir) {
return path.join(__dirname, dir);
}
module.exports = {
resolve: {
alias: {
'@': resolve('src'),
'mn-template': resolve('node_modules/@pica-cli/vue-cli-plugin-pica-cli-plugin/core/src')
}
}
};
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
plugins: [
'@babel/plugin-proposal-object-rest-spread'
]
};
let dpsConfig = require('@pica-core/dps-config');
const externalsDpsConfig = {};
dpsConfig = {
...dpsConfig,
...externalsDpsConfig
};
module.exports = dpsConfig;
module.exports = [
/* {
name: 'payOrder',
url: 'payOrder'
}*/
];
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Error</title>
</head>
<body>
An error occurred on the server when processing the URL. Please contact the system administrator!
</body>
</html>
worker_processes auto;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#隐藏版本号
server_tokens off;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
client_max_body_size 20m;
server {
listen 80;
server_name_in_redirect off;
server_name *.picahealth.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/vue/pica-admin-consultation/dist/;
# if (-d $request_filename) {
# rewrite ^/(.*)([^/])$ https://$host/pica-admin-consultation/$1$2/ permanent;
# }
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 404 405 500 502 503 504 /error.html;
location = /error.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
/* eslint-disable */
const fs = require('fs');
const path = require('path');
const program = require('commander');
const pathError = path.resolve(process.cwd(), './.error-log')
const ResetPathFile = require('@pica-core/reset-pathfile-plugin');
program
.command('mode <mode>')
.description('备份log日志')
.action(function (mode) {
// 判断.error-log文件是否存在
fs.stat(pathError, (err, stats) => {
// 如果不存在,就正常执行
if (err) {
console.log('正常执行!');
} else {
new ResetPathFile(mode, 1);
}
});
});
program
.command('check <value>')
.description('检查.error-log是否已删除')
.action(function (mode) {
// 判断.error-log文件是否存在
fs.stat(pathError, (err, stats) => {
// 如果不存在,就正常执行
if (err) {
console.log('正常执行!');
} else {
// 如果存在,执行下面的脚本
fs.unlink(pathError, (err) => {
if (err) throw err;
console.log('.error-log文件已被删除');
throw new Error('请联系运维同学去oss服务器手动copy版本控制相关文件');
});
}
});
});
program.parse(process.argv);
{
"name": "pica-admin-consultation",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "pica-cli-service serve",
"build": "pica-cli-service build",
"lint": "pica-cli-service lint",
"add-all": "pica-cli-service add-all",
"build-skeleton": "pica-cli-service build-skeleton",
"build:dev": "pica-cli-service build --mode dev",
"build:pre": "pica-cli-service build --mode pre",
"build:prod": "pica-cli-service build --mode production",
"build:test": "pica-cli-service build --mode testing",
"core": "pica-cli-service core",
"img-md5": "pica-cli-service img-md5",
"page": "vue-cli-service page",
"skeleton": "pica-cli-service skeleton",
"tinypng": "pica-cli-service tinypng"
},
"dependencies": {
"axios": "^0.19.2",
"clipboard": "^2.0.6",
"core-js": "^3.6.5",
"dayjs": "^1.8.30",
"dsbridge": "^3.1.4",
"element-ui": "^2.6.1",
"lodash": "^4.17.15",
"md5": "^2.3.0",
"pre-commit": "^1.2.2",
"qiniu-js": "^3.1.2",
"socket.io-client": "2.2.0",
"storejs": "^1.1.0",
"vant": "^2.8.4",
"vconsole": "^3.3.4",
"vue": "^2.6.11",
"vue-fragment": "^1.5.1",
"vue-router": "^3.3.1",
"vuescroll": "^4.15.1",
"vuex": "^3.1.1"
},
"devDependencies": {
"@babel/plugin-proposal-object-rest-spread": "^7.11.0",
"@pica-cli/pica-cli-framework": "^1.0.10",
"@pica-cli/vue-cli-plugin-pica-cli-plugin": "~1.1.0",
"@pica-core/multiple-versions-plugin": "^1.0.4",
"@pica-core/reset-pathfile-plugin": "^1.0.4",
"@pica-core/web-buried-point": "^1.0.15",
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"babel-plugin-import": "^1.13.0",
"colors-console": "^1.0.3",
"dotenv": "^8.2.0",
"draw-page-structure": "^1.0.8",
"eslint": "^6.7.2",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-vue": "^6.2.2",
"fast-install-puppeteer": "^1.0.5",
"husky": "^3.0.9",
"lint-staged": "^9.4.2",
"node-sass": "^4.13.1",
"postcss-px-to-viewport": "^1.1.1",
"prettier": "^2.3.2",
"prettier-eslint-cli": "^5.0.1",
"puppeteer": "^10.1.0",
"sass": "^1.26.3",
"sass-loader": "^8.0.2",
"tim-js-sdk": "^2.10.1",
"trtc-js-sdk": "^4.9.0",
"v-viewer": "^1.2.1",
"vue-skeleton-webpack-plugin": "^1.2.2",
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"husky": {
"hooks": {
"pre-commit": "pica-cli-service img-md5 && lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
],
"src/**/*.{vue,html,css,scss,sass}": [
"stylelint --fix",
"git add"
],
"src/**/*.{js,vue,html,css,scss,sass}": [
"prettier-eslint --write",
"git add"
]
},
"pica-cli-service": {}
}
module.exports = {
plugins: {
autoprefixer: {},
}
};
\ No newline at end of file
## 增加骨架屏占位 Dom #skeleton
```html
<div id="skeleton"></div>
<div id="app"></div>
```
## 初始化时间记录
```js
(function (window) {
var dsBridge = window.dsBridge;
function logToLocaleString(method) {
var date = new Date();
console.log(date.toLocaleString() + ':' + date.getMilliseconds(), method);
}
window.onNativeLCEvent = logToLocaleString;
window.onload = function () {
dsBridge && dsBridge.call && dsBridge.call('onLCEvent', 'onload');
logToLocaleString('onload');
}
document.addEventListener('DOMContentLoaded', function () {
dsBridge && dsBridge.call && dsBridge.call('onLCEvent', 'DOMContentLoaded');
logToLocaleString('DOMContentLoaded');
});
document.addEventListener('readystatechange', function () {
if (document.readyState == 'interactive') {
dsBridge && dsBridge.call && dsBridge.call('onLCEvent', 'interactive');
logToLocaleString('interactive');
}
if (document.readyState == 'complete') {
dsBridge && dsBridge.call && dsBridge.call('onLCEvent', 'complete');
dsBridge && dsBridge.call && dsBridge.call('forceHideLoading');
logToLocaleString('complete');
}
})
}(window));
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0,viewport-fit=cover">
<!-- 打开和关闭DNS预读取 -->
<meta http-equiv="x-dns-prefetch-control" content="on">
<!-- 强制查询特定主机名 -->
<link rel="dns-prefetch" href="<%= process.env.VUE_APP_SERVICE_URL %>">
<link rel="icon" type="image/x-icon" href="<%= VUE_APP_OSS_URL %>static/img/logo.png">
<title>云鹊医-赋能基层医生</title>
<style>
._ {
position: fixed;
z-index: 999;
background: #eee;
border-radius: 4px;
animation: mn-skeleton-blink 1.2s ease-in-out infinite;
}
.__ {
top: 0%;
left: 0%;
width: 100%;
}
.skeleton-component {
position: fixed;
top: 0;
left: 0;
z-index: 999;
width: 100vw;
height: 100vh;
background: #fff;
}
@keyframes mn-skeleton-blink {
50% {
opacity: 0.6;
}
}
</style>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="skeleton"></div>
<div id="app"></div>
<script>
function setSkeletonByName() {
var pathNameSplitList = location.pathname.split('/');
var lastName = pathNameSplitList[pathNameSplitList.length - 1];
var el = document.querySelector('.skeleton-component-' + lastName);
if (el) {
el.style.dispaly = 'block';
}
};
setSkeletonByName();
(function(window) {
function logToLocaleString(method) {
var date = new Date();
console.log(date.toLocaleString() + ':' + date.getMilliseconds(), method);
}
window.onNativeLCEvent = logToLocaleString;
window.onload = function() {
logToLocaleString('onload');
}
document.addEventListener('DOMContentLoaded', function() {
logToLocaleString('DOMContentLoaded');
setSkeletonByName();
});
document.addEventListener('readystatechange', function() {
if (document.readyState == 'interactive') {
logToLocaleString('interactive');
}
if (document.readyState == 'complete') {
logToLocaleString('complete');
}
})
}(window));
</script>
<!-- built files will be auto injected -->
<script src="<%= VUE_APP_OSS_URL %>static/js/vue-2.6.11.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/vuex-3.4.0.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/vue-router-3.3.2.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/vant.min-2.12.26.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/axios-0.19.0.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/jsencrypt.min-3.0.0.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/crypto.min-4.0.0.js"></script>
<script src="<%= VUE_APP_OSS_URL %>static/js/vconsole-3.3.4.js"></script>
</body>
</html>
\ No newline at end of file
该目录建议放置所有请求资源代码,可根据业务划分与不同子目录。
import request from 'mn-template/plugins/http';
export const getMatchList = async() => {
return request({
url: '/diagnose/match/list',
method: 'get',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
export const getServiceType = async() => {
return request({
url: '/diagnose/doctorService/serviceType',
method: 'get',
});
};
export const getDoctorInfoByNameLike = async(data) => {
return request({
url: '/diagnose/commission/downDoctor/doctorInfoByNameLike',
params: data,
method: 'get',
});
};
export const getDownDoctor = async(data) => {
return request({
url: '/diagnose/commission/downDoctor/pageSearch',
data: data,
method: 'post',
});
};
export const saveDownDoctor = async(data) => {
return request({
url: '/diagnose/commission/downDoctor/save',
data: data,
method: 'post',
});
};
export const getRuleInfo = async(data) => {
return request({
url: '/diagnose/commission/rule/info',
data: data,
method: 'post',
});
};
export const getProfit = async(data) => {
return request({
url: '/diagnose/doctorService/profit',
data: data,
method: 'post',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
// diagnosis-editor
export const getAdminDiagnose = async(data) => {
return request({
url: `/diagnose/admin/diagnose/${data.id}`,
method: 'get',
});
};
export const getDoctorList = async(data) => {
return request({
url: '/diagnose/doctorService/doctorList',
params: data,
method: 'get',
});
};
export const getDiagnoseLog = async(data) => {
return request({
url: `/diagnose/admin/diagnose/log/${data.id}`,
method: 'get',
});
};
export const diagnoseUpdate = async(data) => {
return request({
url: '/diagnose/admin/diagnose/update',
data: data,
method: 'post',
});
};
// diagnosis-im
export const getQueryTemplate = async() => {
return request({
url: '/contents/admin/template/queryTemplate?publishFlag=5&pageNo=1&pageSize=99999',
method: 'get',
});
};
export const getMemberList = async(data) => {
return request({
url: '/im/team/member/list',
params: data,
method: 'get',
});
};
export const messageForward = async(data) => {
return request({
url: '/im/team/message/forward',
data: data,
method: 'post',
});
};
export const messageHistory = async(data) => {
return request({
url: '/im/team/message/history',
data: data,
method: 'post',
});
};
export const messageSend = async(data) => {
return request({
url: '/im/team/op/message/send',
data: data,
method: 'post',
});
};
// diagnosis-list-new
export const getCountQuery = async() => {
return request({
url: '/diagnose/admin/diagnose/countQuery',
method: 'get',
});
};
export const getDepartments = async() => {
return request({
url: '/hospital/departments/0',
method: 'get',
});
};
export const diagnoseExport = async(data) => {
return request({
url: '/diagnose/admin/diagnose/export',
data: data,
method: 'post',
});
};
export const diagnoseList = async(data) => {
return request({
url: '/diagnose/admin/diagnose/list',
data: data,
method: 'post',
});
};
// diagnosis-list
export const diagnoseAppointTime = async(data) => {
return request({
url: '/diagnose/admin/diagnose/appointTime',
data: data,
method: 'post',
});
};
export const diagnoseEnd = async(data) => {
return request({
url: `/diagnose/admin/diagnose/end/${data.diagnoseLogId}`,
method: 'post',
});
};
export const diagnoseCall = async(data) => {
return request({
url: `/diagnose/admin/diagnose/call/${data.diagnoseLogId}`,
method: 'post',
});
};
export const diagnoseChoose = async(data) => {
return request({
url: `/diagnose/admin/diagnose/choose/${data.diagnoseLogId}`,
method: 'post',
});
};
export const diagnoseCancel = async(data) => {
return request({
url: `/diagnose/admin/diagnose/cancel/${data.diagnoseLogId}`,
method: 'post',
});
};
// diagnosis-live
export const teamDetail = async(data) => {
return request({
url: '/im/team/detail',
params: data,
method: 'get',
});
};
export const getSdkappid = async() => {
return request({
url: '/coupler/app/trtc/sdkappid',
method: 'get',
});
};
export const streamParams = async() => {
return request({
url: '/coupler/app/config/push/stream/params',
method: 'get',
});
};
export const callDirect = async(data) => {
return request({
url: '/im/team/call/direct/',
data: data,
method: 'post',
});
};
export const usersigTrtc = async(data) => {
return request({
url: '/coupler/usersig/trtc',
data: data,
method: 'post',
});
};
export const diagnoseEndCall = async(data) => {
return request({
url: `/diagnose/admin/diagnose/endCall/${data.diagnoseLogId}`,
data: data,
method: 'post',
});
};
export const doctorAdviceCreate = async(data) => {
return request({
url: '/diagnose/admin/diagnose/doctorAdvice/create',
data: data,
method: 'post',
});
};
export const doctorAdviceList = async(data) => {
return request({
url: `/diagnose/admin/diagnose/doctorAdvice/list/${data.diagnoseLogId}`,
method: 'get',
});
};
export const operatorQuery = async() => {
return request({
url: '/diagnose/admin/diagnose/operator/query',
method: 'get',
});
};
export const teamDetailV2 = async(data) => {
return request({
url: '/im/team/detail/v2',
params: data,
method: 'get',
});
};
export const stickerSave = async(data) => {
return request({
url: '/im/sticker/save',
post: data,
method: 'post',
});
};
export const getStickerList = async() => {
return request({
url: '/im/sticker/list',
method: 'get',
});
};
export const stickerInfo = async(data) => {
return request({
url: '/im/sticker/info',
params: data,
method: 'get',
});
};
export const searchContent = async(data) => {
return request({
url: 'contents/searchKeyword/searchContent',
params: data,
method: 'get',
});
};
export const opAck = async(data) => {
return request({
url: '/im/team/call/op/ack/',
params: data,
method: 'post',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
export const exportList = async(data) => {
return request({
url: '/diagnose/admin/diagnose/export/list',
data: data,
method: 'post',
});
};
\ No newline at end of file
import $http from 'mn-template/plugins/http';
// 获取亲友列表
export const listRelatives = () => $http({
method: 'get',
url: '/splitter/live/v2/list',
params: {version: '3.2.1'}
});
// 新增亲友
export const list = params => $http.get('/aaa/bbb', params);
import request from 'mn-template/plugins/http';
export const forwardPage = async(data) => {
return request({
url: '/contents/login/forward_page',
data: data,
method: 'post',
});
};
export const menuList = async(data) => {
return request({
url: '/basic-data/menu/list',
data: data,
method: 'post',
});
};
export const loginHeader = async(data) => {
return request({
url: '/contents/login/header',
data: data,
method: 'post',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
export const setDiagnoseMatch = async() => {
return request({
url: '/diagnose/match/1/',
method: 'get',
});
};
export const sumbitMatch = async(data) => {
return request({
url: '/diagnose/match/',
data: data,
method: 'post',
});
};
export const operatorQuery = async() => {
return request({
url: '/diagnose/admin/diagnose/operator/query',
method: 'get',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
export const gteServiceType = async() => {
return request({
url: '/diagnose/doctorService/serviceType',
method: 'get',
});
};
export const doctorServiceSearch = async(data) => {
return request({
url: '/diagnose/doctorService/search',
data: data,
method: 'post',
});
};
export const setBatchUpdatePrice = async(data) => {
return request({
url: '/diagnose/doctorService/batchUpdatePrice',
data: data,
method: 'post',
});
};
export const updatePrice = async(data) => {
return request({
url: '/diagnose/doctorService/updatePrice',
data: data,
method: 'post',
});
};
export const batchUndeploy = async(data) => {
return request({
url: '/diagnose/doctorService/batchUndeploy',
data: data,
method: 'post',
});
};
export const doctorServiceDeploy = async(data) => {
return request({
url: '/diagnose/doctorService/deploy',
data: data,
method: 'post',
});
};
export const doctorServiceUndeploy = async(data) => {
return request({
url: '/diagnose/doctorService/undeploy',
data: data,
method: 'post',
});
};
export const doctorServiceBatchDeploy = async(data) => {
return request({
url: '/diagnose/doctorService/batchDeploy',
data: data,
method: 'post',
});
};
export const doctorServiceProfit = async(data) => {
return request({
url: '/diagnose/doctorService/profit',
data: data,
method: 'post',
});
};
\ No newline at end of file
import request from 'mn-template/plugins/http';
export const conditionUpdate = async(data) => {
return request({
url: '/diagnose/socket/condition/update',
data: data,
method: 'post',
});
};
\ No newline at end of file
该目录下请放置需要被编译的图片资源,打包运行时,如在`vue.config.js`中配置了:
`pluginOptions.tinypng.key`则会自动压缩
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册