Compare commits
10 Commits
b237616d74
...
00735ea718
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00735ea718 | ||
|
|
a34a4f1390 | ||
|
|
ab69be8818 | ||
|
|
3152785e0c | ||
|
|
6333f9bc60 | ||
|
|
b045a8d3db | ||
|
|
c8741c9253 | ||
|
|
5d23fe6469 | ||
|
|
5d6bdcb1e3 | ||
|
|
02fd685a67 |
|
|
@ -28,4 +28,4 @@ web/ud/2028/*
|
||||||
**/unpackage/
|
**/unpackage/
|
||||||
**/tmp/
|
**/tmp/
|
||||||
web.ini
|
web.ini
|
||||||
|
gitup.bat
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 已忽略包含查询文件的默认文件夹
|
||||||
|
/queries/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="25" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/ciyon.iml" filepath="$PROJECT_DIR$/.idea/ciyon.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
64
README.md
64
README.md
|
|
@ -108,22 +108,62 @@
|
||||||
|
|
||||||
# 在线演示
|
# 在线演示
|
||||||
|
|
||||||
https://ciyon.ciy.cn/
|
https://ciyon.ciy.cn/
|
||||||
|
https://ciyon.ciy.cn/admin/
|
||||||
|
|
||||||
https://ciyon.ciy.cn/admin/
|
# Windows开发环境部署
|
||||||
|
[详见教程](https://ciyon.ciy.cn/docs/#100)
|
||||||
|
|
||||||
# 环境部署建议
|
部署软件: Nginx、PHP、MariaDB、Golang
|
||||||
|
建议安装: Git、python3、node.js
|
||||||
|
开发IDE: VSCode(Cursor/Claude Code/Antigravity)、UniAPP、微信开发者工具
|
||||||
|
开发工具: Navicat、WinSCP5、Google Chrome、S3 Browser、Apifox
|
||||||
|
效率工具: XMind、WPS Office、Everything、ToDesk
|
||||||
|
网络工具: SocketTool、MQTT-Explorer
|
||||||
|
|
||||||
安装Nginx
|
# Linux生产环境部署
|
||||||
统一处理80/443端口
|
[详见教程](https://ciyon.ciy.cn/docs/#102)
|
||||||
|
操作系统: Debian
|
||||||
|
运维工具: Navicat、WinSCP5+、S3 Browser
|
||||||
|
|
||||||
安装MariaDB数据库
|
# 重要更新记录
|
||||||
开启慢查询日志
|
|
||||||
|
|
||||||
PHP需配置PHP-fpm,建议用PHP8
|
## 2026.02.02
|
||||||
|
- 升级: 路由重构,支持软路由,需结合Nginx配置
|
||||||
|
|
||||||
Golang虽然可以独立运行,但建议Nginx转发
|
## 2025.12.01
|
||||||
|
- 里程碑: 众产事业平台上线
|
||||||
|
|
||||||
|
## 2025.09.06
|
||||||
|
- 文档: 编写移动端 Demo代码
|
||||||
|
|
||||||
|
## 2025.08.25
|
||||||
|
- 文档: docs文档整理
|
||||||
|
|
||||||
|
## 2025.06.12
|
||||||
|
- 文档: Ciyon文档上线,文档整理
|
||||||
|
|
||||||
|
## 2025.05.16
|
||||||
|
- 新增: Ciyon官网上线、Git内部公开发布
|
||||||
|
|
||||||
|
## 2025.04.06
|
||||||
|
- 文档: 编写PC Demo代码
|
||||||
|
|
||||||
|
## 2025.02.20
|
||||||
|
- 升级: 移动端Vue3框架所有组件完成去依赖
|
||||||
|
|
||||||
|
## 2024.12.26
|
||||||
|
- 新增: AI辅助决策。支持多轮AI任务
|
||||||
|
|
||||||
|
## 2024.10.05
|
||||||
|
- 新增: Web3D地编器及ciyearth.js组件库
|
||||||
|
|
||||||
|
## 2024.08.30
|
||||||
|
- 新增: Golang语言开发模式
|
||||||
|
|
||||||
|
## 2024.05.21
|
||||||
|
- 升级: 移动端Vue3/Uniapp兼容框架(原Vue2框架废弃)
|
||||||
|
|
||||||
|
## 2024.03.12
|
||||||
|
- 里程碑: 基于CIYPHP重写开发SaaS框架
|
||||||
|
|
||||||
IDE开发工具
|
|
||||||
PC端推荐用VSCode、Cursor
|
|
||||||
移动端推荐用Uniapp、VSCode
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ DROP TABLE IF EXISTS `ciy_arearpc`;
|
||||||
CREATE TABLE `ciy_arearpc` (
|
CREATE TABLE `ciy_arearpc` (
|
||||||
`id` int(11) NOT NULL COMMENT '代码',
|
`id` int(11) NOT NULL COMMENT '代码',
|
||||||
`upid` int(11) NOT NULL COMMENT '上级代码',
|
`upid` int(11) NOT NULL COMMENT '上级代码',
|
||||||
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '地名',
|
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '地名',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '静态省市区表' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '静态省市区表' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of ciy_arearpc
|
-- Records of ciy_arearpc
|
||||||
|
|
|
||||||
1657
c5_ciyon.sql
1657
c5_ciyon.sql
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -16,11 +16,12 @@
|
||||||
"type" : "uniCloud"
|
"type" : "uniCloud"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"openVueDevtools" : false,
|
"openVueDevtools" : true,
|
||||||
"type" : "uni-app:app-ios"
|
"type" : "uni-app:app-ios"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"openVueDevtools" : false,
|
"customPlaygroundType" : "device",
|
||||||
|
"openVueDevtools" : true,
|
||||||
"playground" : "standard",
|
"playground" : "standard",
|
||||||
"type" : "uni-app:app-android"
|
"type" : "uni-app:app-android"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,49 @@
|
||||||
export default {
|
export default {
|
||||||
globalData: {},
|
globalData: {},
|
||||||
onLaunch: function(lopn) {
|
onLaunch: function(lopn) {
|
||||||
var bggray1 = '#dfdfdf';
|
|
||||||
var bggray2 = '#bbbbbb';
|
|
||||||
var bgsel1 = '#ffdc72';
|
|
||||||
var bgsel2 = '#e65411';
|
|
||||||
var app = this;
|
var app = this;
|
||||||
app.globalData.scrollcbs = {};
|
|
||||||
app.globalData.launchopn = lopn;
|
app.globalData.launchopn = lopn;
|
||||||
console.log('launchopn', lopn);
|
console.log('launchopn', lopn);
|
||||||
app.launch();
|
app.launch();
|
||||||
|
|
||||||
app.globalData.tabbarArr = [];
|
app.globalData.srv = 't'; //默认的独立微服务集群标识。
|
||||||
|
app.globalData.jsnurl = {};
|
||||||
|
app.globalData.jsnurl.t = 'https://ciyon.ciy.cn/ambap/';
|
||||||
|
app.globalData.tokenfield = "ciyap"; //header授权名称。H5同域名多个移动端项目需区分。
|
||||||
|
app.globalData.tokensalt = "ast34h$3"; //用户密码加密盐值。
|
||||||
|
app.globalData.mainpage = '/pages/main/index'; //入口页面。一般为tabbar第一个页面。
|
||||||
|
|
||||||
|
app.globalData.share_backmainpage = false; //分享如需从首页跳转,则true。用户返回后不退出小程序而是进入首页。
|
||||||
|
app.globalData.dupsec = 60; //防重复点击的间隔秒数。
|
||||||
|
app.globalData.stordefault = '/'; //默认全局存储路径。 / 为本地存储(用于单web服务器项目),A-Z 可定义成多种云存储(阿里云OSS/腾讯云COS/Cloudflare R2等)
|
||||||
|
app.globalData.storlist = { //上传文件需补全的显示链接
|
||||||
|
'/': 'https://ciyon.ciy.cn/ud/',
|
||||||
|
'A': 'https://cf5.nyyzsoft.cn/ud/',
|
||||||
|
'B': 'https://tob-1322789299.cos.ap-nanjing.myqcloud.com/ud/',
|
||||||
|
'C': 'https://expn.oss-cn-hangzhou.aliyuncs.com/ud/',
|
||||||
|
};
|
||||||
|
app.globalData.storthumb = { //图片文件缩略图配置。默认100px高度,宽度自适应。
|
||||||
|
'/': '?100',
|
||||||
|
'A': 'https://cf5.nyyzsoft.cn/cdn-cgi/image/height=100/ud/#img#', //开启媒体Images转换
|
||||||
|
'B': '?imageMogr2/thumbnail/x100',
|
||||||
|
'C': '?x-oss-process=image/resize,h_100',
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
//#ifdef H5
|
||||||
|
app.globalData.jsnurl.t = 'https://ciyon.local.ciy.cn/ambap/';
|
||||||
|
app.globalData.storlist['/'] = 'https://ciyon.local.ciy.cn/ud/';
|
||||||
|
|
||||||
|
//golang
|
||||||
|
// app.globalData.jsnurl.t = 'https://ciyongo.local.ciy.cn/';
|
||||||
|
//#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
var bggray1 = '#dfdfdf'; //底部导航按钮未选颜色1
|
||||||
|
var bggray2 = '#bbbbbb'; //底部导航按钮未选颜色2
|
||||||
|
var bgsel1 = '#ffdc72'; //底部导航按钮选中颜色1
|
||||||
|
var bgsel2 = '#e65411'; //底部导航按钮选中颜色2
|
||||||
|
app.globalData.tabbarArr = []; //最底部导航按钮。双色svg
|
||||||
var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M10,515c0,277,225,503,503,503s503-225,503-503l0,0c0-277-225-503-503-503S9,238,10,515L10,515z" fill="{{bg2}}"></path><path d="M777,322L547,178c-28-18-64-18-91,0L226,322c-25,16-40,43-40,73v263c0,76,61,137,137,137h61V633l0,0c0-66,53-119,119-119l0,0c66,0,119,53,119,119v162h61l0,0c76,0,137-61,137-137V395c-1-29-17-56-42-73H777z" fill="{{bg1}}"></path></svg>';
|
var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M10,515c0,277,225,503,503,503s503-225,503-503l0,0c0-277-225-503-503-503S9,238,10,515L10,515z" fill="{{bg2}}"></path><path d="M777,322L547,178c-28-18-64-18-91,0L226,322c-25,16-40,43-40,73v263c0,76,61,137,137,137h61V633l0,0c0-66,53-119,119-119l0,0c66,0,119,53,119,119v162h61l0,0c76,0,137-61,137-137V395c-1-29-17-56-42-73H777z" fill="{{bg1}}"></path></svg>';
|
||||||
app.globalData.tabbarArr.push({
|
app.globalData.tabbarArr.push({
|
||||||
name: 'tabbar.index',
|
name: 'tabbar.index',
|
||||||
|
|
@ -20,105 +52,35 @@
|
||||||
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||||
icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
||||||
});
|
});
|
||||||
// var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M969,956L913,810c51-81,107-209,103-313C1008,230,789,15,522,10C237,5,5,237,9,522c4,274,223,494,497,494c69,0,208-38,265-75L932,997C954,998,972,979,969,956L969,956z" fill="{{bg2}}"></path><path d="M715,299l-22,133c-3,16,3,32,15,43l99,94c20,19,20,49,1,69c-7,7-17,12-28,15l-134,21c-16,3-30,12-37,27l-59,122c-12,25-42,35-65,22c-10-5-17-12-22-22l-62-121c-7-15-21-25-37-27l-134-19c-27-4-46-28-42-55c1-11,6-21,14-28l96-96c11-11,17-27,14-43l-23-134c-5-27,14-52,39-57c11-1,22,0,31,5l121,63c15,7,32,7,46,0l119-64c23-12,54-4,67,20C715,277,716,288,715,299z" fill="{{bg1}}"></path></svg>';
|
// svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M969,956L913,810c51-81,107-209,103-313C1008,230,789,15,522,10C237,5,5,237,9,522c4,274,223,494,497,494c69,0,208-38,265-75L932,997C954,998,972,979,969,956L969,956z" fill="{{bg2}}"></path><path d="M715,299l-22,133c-3,16,3,32,15,43l99,94c20,19,20,49,1,69c-7,7-17,12-28,15l-134,21c-16,3-30,12-37,27l-59,122c-12,25-42,35-65,22c-10-5-17-12-22-22l-62-121c-7-15-21-25-37-27l-134-19c-27-4-46-28-42-55c1-11,6-21,14-28l96-96c11-11,17-27,14-43l-23-134c-5-27,14-52,39-57c11-1,22,0,31,5l121,63c15,7,32,7,46,0l119-64c23-12,54-4,67,20C715,277,716,288,715,299z" fill="{{bg1}}"></path></svg>';
|
||||||
// app.globalData.tabbarArr.push({
|
// app.globalData.tabbarArr.push({
|
||||||
// name: 'tabbar.zh',
|
// name: 'tabbar.zh',
|
||||||
// fullpath: '/pages/expo',
|
// fullpath: '/pages/expo',
|
||||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||||
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
||||||
// });
|
// });
|
||||||
// var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M788,950h-551c-80,0-144-64-144-144V281h839v524C933,886,869,950,788,950L788,950z" fill="{{bg2}}"></path><path d="M685,842H352c-33,0-60-27-60-60s27-60,60-60h333c33,0,60,27,60,60S718,842,685,842z M946,322H80c-41,0-75-33-75-75V136c0-41,33-75,75-75h866c41,0,75,33,75,75v111C1021,288,988,322,946,322z" fill="{{bg1}}"></path></svg>';
|
// svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M788,950h-551c-80,0-144-64-144-144V281h839v524C933,886,869,950,788,950L788,950z" fill="{{bg2}}"></path><path d="M685,842H352c-33,0-60-27-60-60s27-60,60-60h333c33,0,60,27,60,60S718,842,685,842z M946,322H80c-41,0-75-33-75-75V136c0-41,33-75,75-75h866c41,0,75,33,75,75v111C1021,288,988,322,946,322z" fill="{{bg1}}"></path></svg>';
|
||||||
// app.globalData.tabbarArr.push({
|
// app.globalData.tabbarArr.push({
|
||||||
// name: 'tabbar.sq',
|
// name: 'tabbar.sq',
|
||||||
// fullpath: '/pages/socg',
|
// fullpath: '/pages/socg',
|
||||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||||
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
||||||
// });
|
// });
|
||||||
// var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M207,110h614c109,0,197,88,197,197v416c0,109-88,197-197,197H207c-109,0-197-88-197-197V308C9,198,97,110,207,110z" fill="{{bg2}}"></path><path d="M865,819H118c-10,0-19-9-19-19c0-3,1-7,2-10l26-35c3-6,10-9,17-9h748c10,0,19,9,19,19c0,3-1,7-2,10l-26,35C878,815,872,819,865,819z M451,285c0-8-6-14-14-14h-246c-8,0-14,6-14,14v246c0,8,6,14,14,14h246c8,0,14-6,14-14V285z M909,503c0-8-6-14-14-14H562c-8,0-14,6-14,14v25c0,8,6,14,14,14h333c8,0,14-6,14-14V503z" fill="{{bg1}}"></path></svg>';
|
// svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M207,110h614c109,0,197,88,197,197v416c0,109-88,197-197,197H207c-109,0-197-88-197-197V308C9,198,97,110,207,110z" fill="{{bg2}}"></path><path d="M865,819H118c-10,0-19-9-19-19c0-3,1-7,2-10l26-35c3-6,10-9,17-9h748c10,0,19,9,19,19c0,3-1,7-2,10l-26,35C878,815,872,819,865,819z M451,285c0-8-6-14-14-14h-246c-8,0-14,6-14,14v246c0,8,6,14,14,14h246c8,0,14-6,14-14V285z M909,503c0-8-6-14-14-14H562c-8,0-14,6-14,14v25c0,8,6,14,14,14h333c8,0,14-6,14-14V503z" fill="{{bg1}}"></path></svg>';
|
||||||
// app.globalData.tabbarArr.push({
|
// app.globalData.tabbarArr.push({
|
||||||
// name: 'tabbar.cd',
|
// name: 'tabbar.cd',
|
||||||
// fullpath: '/pages/card',
|
// fullpath: '/pages/card',
|
||||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||||
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
// icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
||||||
// });
|
// });
|
||||||
var svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M706,460c64-38,107-104,107-179c0-118-106-213-237-213c-131,0-237,95-237,213c0,75,43,141,107,179c-181,51-311,206-311,385c0,39,35,70,78,70H938c43,0,78-32,78-70v-5C1017,661,886,511,706,460L706,460z" fill="{{bg1}}"/><path d="M580,472c64-42,107-115,107-197c0-131-106-237-237-237c-131,0-237,106-237,237c0,83,43,155,107,199c-181,57-311,228-311,427c0,43,14,76,57,76l745,1c43,0,78-35,78-78v-6C891,696,761,528,580,472L580,472z" fill="{{bg2}}"/></svg>';
|
svg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M706,460c64-38,107-104,107-179c0-118-106-213-237-213c-131,0-237,95-237,213c0,75,43,141,107,179c-181,51-311,206-311,385c0,39,35,70,78,70H938c43,0,78-32,78-70v-5C1017,661,886,511,706,460L706,460z" fill="{{bg1}}"/><path d="M580,472c64-42,107-115,107-197c0-131-106-237-237-237c-131,0-237,106-237,237c0,83,43,155,107,199c-181,57-311,228-311,427c0,43,14,76,57,76l745,1c43,0,78-35,78-78v-6C891,696,761,528,580,472L580,472z" fill="{{bg2}}"/></svg>';
|
||||||
app.globalData.tabbarArr.push({
|
app.globalData.tabbarArr.push({
|
||||||
name: 'tabbar.me',
|
name: 'tabbar.me',
|
||||||
fullpath: '/pages/main/me',
|
fullpath: '/pages/main/me',
|
||||||
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||||
icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
icon: svg.replaceAll(/{{bg1}}/g, bggray1).replaceAll(/{{bg2}}/g, bggray2)
|
||||||
});
|
});
|
||||||
|
|
||||||
app.globalData.errdata = app.getstorage('err');
|
|
||||||
if (!(app.globalData.errdata instanceof Array))
|
|
||||||
app.globalData.errdata = [];
|
|
||||||
|
|
||||||
app.globalData.srv = 't';
|
|
||||||
app.globalData.jsnajax = 'z/?func=ambap/';
|
|
||||||
app.globalData.jsnurl = {};
|
|
||||||
app.globalData.jsnurl.t = 'https://ciyon.ciy.cn/';
|
|
||||||
app.globalData.demourl = 'https://i.qiboc.cn/app.goc'; //原型图地址
|
|
||||||
app.globalData.tokenfield = "ciyap";
|
|
||||||
app.globalData.tokensalt = "ast34h$3";
|
|
||||||
app.globalData.mainpage = '/pages/main/index';
|
|
||||||
app.globalData.meid = 0;
|
|
||||||
app.globalData.dupsec = 60;
|
|
||||||
app.globalData.storselect = '/';
|
|
||||||
app.globalData.storlist = {
|
|
||||||
'/': 'https://ciyon.ciy.cn/ud/',
|
|
||||||
'A': 'https://cf5.xinquanyou.cn/ud/'
|
|
||||||
};
|
|
||||||
app.globalData.stortransfer = ['/'];
|
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'development') {
|
|
||||||
//#ifdef H5
|
|
||||||
app.globalData.jsnurl.t = 'https://ciyon.local.ciy.cn/';
|
|
||||||
app.globalData.storlist['/'] = 'https://ciyon.local.ciy.cn/ud/';
|
|
||||||
|
|
||||||
//golang
|
|
||||||
// app.globalData.jsnurl.t = 'http://ciyonhgo.local.ciy.cn/';
|
|
||||||
//#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
setInterval(() => {
|
|
||||||
if (app.globalData._restorage) {
|
|
||||||
app.callajax({
|
|
||||||
func: 'login.restorage',
|
|
||||||
data: {},
|
|
||||||
loadhide: true,
|
|
||||||
}).then(retjson => {
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return;
|
|
||||||
console.log('新字典已刷新', retjson);
|
|
||||||
var userdata = app.setuserstorage(retjson);
|
|
||||||
var ps = getCurrentPages();
|
|
||||||
userdata.g = app.getstorage('g', {});
|
|
||||||
for (var p = 0; p < ps.length; p++) {
|
|
||||||
for (var key in userdata) {
|
|
||||||
//#ifdef MP-WEIXIN
|
|
||||||
ps[p].$vm[key] = userdata[key];
|
|
||||||
//#endif
|
|
||||||
//#ifndef MP-WEIXIN
|
|
||||||
ps[p][key] = userdata[key];
|
|
||||||
//#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
app.globalData._restorage = false;
|
|
||||||
if (app.globalData.errdata.length > 0) {
|
|
||||||
app.callajax({
|
|
||||||
func: 'login.uperr',
|
|
||||||
data: {
|
|
||||||
meid: app.getme().id,
|
|
||||||
err: app.globalData.errdata
|
|
||||||
},
|
|
||||||
loadhide: true,
|
|
||||||
});
|
|
||||||
app.globalData.errdata = [];
|
|
||||||
app.removestorage('err');
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
getnewnotice();
|
getnewnotice();
|
||||||
}, 120000); //2分钟请求一次notice
|
}, 120000); //2分钟请求一次notice
|
||||||
|
|
@ -126,7 +88,7 @@
|
||||||
//lopn 结合me,将数据上传到平台
|
//lopn 结合me,将数据上传到平台
|
||||||
function getnewnotice() {
|
function getnewnotice() {
|
||||||
return;
|
return;
|
||||||
app.callajax({
|
app.callfunc({
|
||||||
func: 'me.notice_new',
|
func: 'me.notice_new',
|
||||||
showload: false,
|
showload: false,
|
||||||
success: json => {
|
success: json => {
|
||||||
|
|
@ -139,21 +101,24 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef MP-WEIXIN
|
|
||||||
const accountInfo = uni.getAccountInfoSync();
|
|
||||||
app.globalData._version = accountInfo.miniProgram.version;
|
|
||||||
if (!app.globalData._version)
|
|
||||||
app.globalData._version = accountInfo.miniProgram.envVersion;
|
|
||||||
//#endif
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
||||||
app.globalData._version = widgetInfo.version;
|
app.globalData._version = widgetInfo.version;
|
||||||
});
|
});
|
||||||
app.appupdate('app');
|
app.appupdate('app');
|
||||||
|
uni.getPushClientId({
|
||||||
|
success: (res) => {
|
||||||
|
console.log('客户端推送标识:', res);
|
||||||
|
app.globalData._appcid = res.cid;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
uni.onPushMessage((res) => {
|
||||||
|
this.alert(JSON.stringify(res));
|
||||||
|
})
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
var sysinfo = app.globalData._sysinfo;
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
|
var sysinfo = app.globalData._sysinfo;
|
||||||
if (sysinfo.model == 'k71v1_64_bsp') {
|
if (sysinfo.model == 'k71v1_64_bsp') {
|
||||||
app.device_rfid = uni.requireNativePlugin("UhfGModule"); // 133左/134枪/135右
|
app.device_rfid = uni.requireNativePlugin("UhfGModule"); // 133左/134枪/135右
|
||||||
app.device_rfid_gunkey = 134;
|
app.device_rfid_gunkey = 134;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="_voice" @touchstart="start" @touchend="stop">
|
<view class="_voice" @touchstart="start" @touchend="stop" v-if="benable">
|
||||||
<ciy-ani class="_txt" ref="ani">{{txt}}</ciy-ani>
|
<ciy-ani class="_txt" ref="ani">{{txt}}</ciy-ani>
|
||||||
<ciy-svgimg :src="svg" class="_img" :style="{filter:'hue-rotate('+deg+'deg)'}"></ciy-svgimg>
|
<ciy-svgimg :src="svg" class="_img" :style="{filter:'hue-rotate('+deg+'deg)'}"></ciy-svgimg>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
benable: true,
|
||||||
bst: false,
|
bst: false,
|
||||||
txt: '',
|
txt: '',
|
||||||
deg: 0, //150 红
|
deg: 0, //150 红
|
||||||
|
|
@ -26,36 +27,40 @@
|
||||||
computed: {},
|
computed: {},
|
||||||
mounted() {
|
mounted() {
|
||||||
var app = getApp();
|
var app = getApp();
|
||||||
app.globalData.plugin_wechatsi_manager.onStop = res => {
|
if (app.globalData.plugin_wechatsi_manager) {
|
||||||
this.$emit('change', {
|
app.globalData.plugin_wechatsi_manager.onStop = res => {
|
||||||
txt: res.result,
|
this.$emit('change', {
|
||||||
data: res
|
txt: res.result,
|
||||||
});
|
data: res
|
||||||
this.getrefsSync('ani', this).Doani('op0|op1,200');
|
});
|
||||||
this.txt = res.result;
|
this.getrefsSync('ani', this).Doani('op0|op1,200');
|
||||||
if (this._t)
|
this.txt = res.result;
|
||||||
clearTimeout(this._t);
|
if (this._t)
|
||||||
this._t = setTimeout(() => {
|
clearTimeout(this._t);
|
||||||
this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
|
this._t = setTimeout(() => {
|
||||||
}, 5000);
|
this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
app.globalData.plugin_wechatsi_manager.onStart = res => {
|
||||||
|
console.log("成功开始录音识别", res)
|
||||||
|
}
|
||||||
|
app.globalData.plugin_wechatsi_manager.onError = res => {
|
||||||
|
clearInterval(this._an);
|
||||||
|
this.deg = 150; //红
|
||||||
|
console.error("error msg", res.msg)
|
||||||
|
}
|
||||||
|
this._an = setInterval(() => {
|
||||||
|
this.deg += 10;
|
||||||
|
}, 100);
|
||||||
|
} else {
|
||||||
|
this.benable = false;
|
||||||
}
|
}
|
||||||
app.globalData.plugin_wechatsi_manager.onStart = res => {
|
|
||||||
console.log("成功开始录音识别", res)
|
|
||||||
}
|
|
||||||
app.globalData.plugin_wechatsi_manager.onError = res => {
|
|
||||||
clearInterval(this._an);
|
|
||||||
this.deg = 150; //红
|
|
||||||
console.error("error msg", res.msg)
|
|
||||||
}
|
|
||||||
this._an = setInterval(() => {
|
|
||||||
this.deg += 10;
|
|
||||||
}, 100);
|
|
||||||
},
|
},
|
||||||
unmounted() {
|
unmounted() {
|
||||||
clearInterval(this._an);
|
clearInterval(this._an);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
test(){
|
test() {
|
||||||
this.getrefsSync('ani', this).Doani('op0|op1,200');
|
this.getrefsSync('ani', this).Doani('op0|op1,200');
|
||||||
this.txt = 'res.result';
|
this.txt = 'res.result';
|
||||||
if (this._t)
|
if (this._t)
|
||||||
|
|
@ -63,7 +68,7 @@
|
||||||
this._t = setTimeout(() => {
|
this._t = setTimeout(() => {
|
||||||
this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
|
this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
|
||||||
},
|
},
|
||||||
start() {
|
start() {
|
||||||
this.bst = true;
|
this.bst = true;
|
||||||
|
|
@ -82,12 +87,6 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
._voice {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 3em;
|
|
||||||
left: calc(50vw - 1.5em);
|
|
||||||
}
|
|
||||||
|
|
||||||
._voice ._img {
|
._voice ._img {
|
||||||
width: 3em;
|
width: 3em;
|
||||||
height: 3em;
|
height: 3em;
|
||||||
|
|
|
||||||
|
|
@ -65,14 +65,13 @@
|
||||||
this.mastyle.display = 'block';
|
this.mastyle.display = 'block';
|
||||||
await this.$nextTick();
|
await this.$nextTick();
|
||||||
var rect = await this.getrect('._refani');
|
var rect = await this.getrect('._refani');
|
||||||
console.log('rect.height',rect.height,this.rect.height);
|
//console.log('rect.height',rect.height,this.rect.height);
|
||||||
if (rect.width != 0 && rect.height != 0)
|
if (rect.width != 0 && rect.height != 0)
|
||||||
this.rect = rect;
|
this.rect = rect;
|
||||||
if(this.rect.height)
|
if(this.rect.height)
|
||||||
opn = opn.replace('hhauto', 'hh' + this.rect.height);
|
opn = opn.replace('hhauto', 'hh' + this.rect.height);
|
||||||
else
|
else
|
||||||
opn = opn.replace('hhauto', 'hh0');
|
opn = opn.replace('hhauto', 'hh0');
|
||||||
console.log(opn);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._aniing = true;
|
this._aniing = true;
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,7 @@
|
||||||
scopes: 'auth_base',
|
scopes: 'auth_base',
|
||||||
onlyAuthorize: true
|
onlyAuthorize: true
|
||||||
});
|
});
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'login.wx_autouser',
|
func: 'login.wx_autouser',
|
||||||
loadhide: true,
|
loadhide: true,
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -293,15 +293,17 @@
|
||||||
if (!this.xieyi && await this.askmsg('是否阅读并同意协议?', '同意') != 'ok')
|
if (!this.xieyi && await this.askmsg('是否阅读并同意协议?', '同意') != 'ok')
|
||||||
return;
|
return;
|
||||||
post.auth = (new Date()).getTime();
|
post.auth = (new Date()).getTime();
|
||||||
|
post.appcid = app.globalData._appcid;
|
||||||
var epass = md5.md5(post.pass + app.globalData.tokensalt);
|
var epass = md5.md5(post.pass + app.globalData.tokensalt);
|
||||||
post.pass = md5.md5(epass + post.auth);
|
post.pass = md5.md5(epass + post.auth);
|
||||||
//._from = app.globalData._sysinfo;
|
//._from = app.globalData._sysinfo;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'login.login_mobile', // login.login
|
func: 'login.login_mobile', // login.login
|
||||||
data: post
|
data: post
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.toast(retjson.errmsg);
|
return this.toast(retjson.errmsg);
|
||||||
|
this.setstorage('_dbgs', retjson.dbgs);
|
||||||
this.tologin(retjson);
|
this.tologin(retjson);
|
||||||
},
|
},
|
||||||
async submitreg(e) {
|
async submitreg(e) {
|
||||||
|
|
@ -316,10 +318,11 @@
|
||||||
if (!this.xieyi && await this.askmsg('是否阅读并同意协议?', '同意') != 'ok')
|
if (!this.xieyi && await this.askmsg('是否阅读并同意协议?', '同意') != 'ok')
|
||||||
return;
|
return;
|
||||||
post.upid = app.getstorage('upid');
|
post.upid = app.getstorage('upid');
|
||||||
|
post.appcid = app.globalData._appcid;
|
||||||
post.pass = md5.md5(post.pass + app.globalData.tokensalt);
|
post.pass = md5.md5(post.pass + app.globalData.tokensalt);
|
||||||
post.pass2 = '';
|
post.pass2 = '';
|
||||||
//._from = app.globalData._sysinfo;
|
//._from = app.globalData._sysinfo;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'login.reg_mobile', // login.reg
|
func: 'login.reg_mobile', // login.reg
|
||||||
data: post
|
data: post
|
||||||
});
|
});
|
||||||
|
|
@ -341,7 +344,7 @@
|
||||||
if (post.pass != post.pass2)
|
if (post.pass != post.pass2)
|
||||||
return this.toast('两次密码输入不同');
|
return this.toast('两次密码输入不同');
|
||||||
post.pass = md5.md5(post.pass + app.globalData.tokensalt);
|
post.pass = md5.md5(post.pass + app.globalData.tokensalt);
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'login.forgetpass', // login.reg
|
func: 'login.forgetpass', // login.reg
|
||||||
data: post
|
data: post
|
||||||
});
|
});
|
||||||
|
|
@ -391,8 +394,10 @@
|
||||||
if (this.ver !== 0)
|
if (this.ver !== 0)
|
||||||
return;
|
return;
|
||||||
var app = getApp();
|
var app = getApp();
|
||||||
var retjson = await this.callajax({
|
if (app.globalData._wxenv == 'release')
|
||||||
func: 'login.debug',
|
return;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'login.debug_list',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
this.tusers = retjson.list;
|
this.tusers = retjson.list;
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
if(!this.account)
|
if(!this.account)
|
||||||
return this.toast(this.lang('capcode.noinput'));
|
return this.toast(this.lang('capcode.noinput'));
|
||||||
|
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: this.func,
|
func: this.func,
|
||||||
data:{account:this.account,length:this.codelength}
|
data:{account:this.account,length:this.codelength}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,11 @@
|
||||||
|
|
||||||
._gp._left {
|
._gp._left {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
._gp._left ._item {
|
||||||
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
._gp ._item {
|
._gp ._item {
|
||||||
|
|
@ -48,6 +53,7 @@
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
min-width: 7em;
|
min-width: 7em;
|
||||||
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
._gp._itemright ._item {
|
._gp._itemright ._item {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,164 @@
|
||||||
|
<template>
|
||||||
|
<view class="_dbg" :style="{left:left}" @tap.stop="showdbglist" v-if="bshow && me.id>0 && dbgs">
|
||||||
|
<view class="_dbgbg">
|
||||||
|
</view>
|
||||||
|
<view class="_dbgtxt">
|
||||||
|
{{me.id}}<br />
|
||||||
|
{{me.name}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
._dbg {
|
||||||
|
top: 25em;
|
||||||
|
position: fixed;
|
||||||
|
width: 4em;
|
||||||
|
height: 4em;
|
||||||
|
z-index: 10000000;
|
||||||
|
transition: left 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
._dbgbg {
|
||||||
|
position: relative;
|
||||||
|
background: #9412cc;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 50%;
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
._dbgtxt {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 0.3em;
|
||||||
|
line-height: 1.3em;
|
||||||
|
text-shadow: 1px 1px #ffffff, -1px -1px #ffffff, -1px 1px #ffffff, 1px -1px #ffffff;
|
||||||
|
top: 0.7em;
|
||||||
|
left: 0;
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
left: '0.3rem',
|
||||||
|
dbgs: null,
|
||||||
|
bshow: true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
computed: {},
|
||||||
|
mounted() {
|
||||||
|
this.me = this.getme();
|
||||||
|
this.dbgs = this.getstorage('_dbgs');
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async chguser(item) {
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'login.debug_chguser',
|
||||||
|
data: {
|
||||||
|
code: item.data.user
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.me = this.objdeepmerge(this.me, retjson.me);
|
||||||
|
getApp().setuserstorage(retjson);
|
||||||
|
var page = this.com_getpage();
|
||||||
|
page.me = this.me;
|
||||||
|
if (page.dbgcallback)
|
||||||
|
page.dbgcallback();
|
||||||
|
},
|
||||||
|
async mehide(item) {
|
||||||
|
this.bshow = false;
|
||||||
|
if (item.data > 0) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.bshow = true;
|
||||||
|
}, item.data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async meusr(item) {
|
||||||
|
var btn = await this.inputmsg({
|
||||||
|
title: '用户ID',
|
||||||
|
ele: 'input'
|
||||||
|
}, [{
|
||||||
|
name: '添加',
|
||||||
|
btn: 'add'
|
||||||
|
}, {
|
||||||
|
name: '删除',
|
||||||
|
btn: 'del',
|
||||||
|
cls: 'dag'
|
||||||
|
}, {
|
||||||
|
name: '取消',
|
||||||
|
btn: 'cancel',
|
||||||
|
cls: 'def'
|
||||||
|
}]);
|
||||||
|
if (btn.btn == 'cancel')
|
||||||
|
return;
|
||||||
|
if (!btn.text)
|
||||||
|
return this.toast('请填写用户ID');
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'login.debug_opuser',
|
||||||
|
data: btn
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
if (btn.btn == 'add') {
|
||||||
|
this.dbgs.push(retjson.data);
|
||||||
|
} else {
|
||||||
|
var idx = this.arrayfind(this.dbgs, btn.text, 'user');
|
||||||
|
if (idx > -1)
|
||||||
|
this.dbgs.splice(idx, 1);
|
||||||
|
}
|
||||||
|
this.setstorage('_dbgs', this.dbgs);
|
||||||
|
},
|
||||||
|
async showdbglist() {
|
||||||
|
var items = [];
|
||||||
|
for (var i = 0; i < this.dbgs.length; i++) {
|
||||||
|
items.push({
|
||||||
|
func: 'chguser',
|
||||||
|
name: this.dbgs[i].name,
|
||||||
|
sub: this.dbgs[i].user,
|
||||||
|
data: this.dbgs[i]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
items.push({
|
||||||
|
br: true
|
||||||
|
});
|
||||||
|
items.push({
|
||||||
|
func: 'mehide',
|
||||||
|
name: '消失5秒',
|
||||||
|
style: 'color:var(--warn6)',
|
||||||
|
data: 5000
|
||||||
|
});
|
||||||
|
items.push({
|
||||||
|
func: 'mehide',
|
||||||
|
name: '永久隐藏',
|
||||||
|
style: 'color:var(--dag6)',
|
||||||
|
data: 0
|
||||||
|
});
|
||||||
|
items.push({
|
||||||
|
func: 'meusr',
|
||||||
|
name: '增删用户',
|
||||||
|
style: 'color:var(--man6)',
|
||||||
|
data: 0
|
||||||
|
});
|
||||||
|
this.left = '-2rem';
|
||||||
|
this.popmenu({
|
||||||
|
rowcount: 3,
|
||||||
|
items,
|
||||||
|
closecb: () => {
|
||||||
|
this.left = '-0.3rem';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<view class="_bg" v-if="bshow">
|
<view class="_bg" v-if="bshow">
|
||||||
<view class="_dialog" :style="{top:top}">
|
<view class="_dialog" :style="{top:top}">
|
||||||
<view class="_title">{{title}}</view>
|
<view class="_title">{{title}}</view>
|
||||||
<view class="_close" @click="Close(true)"></view>
|
<view class="_close" @tap="Close(true)"></view>
|
||||||
<view class="_content" :style="{maxHeight:maxheight,height:height}">
|
<view class="_content" :style="{maxHeight:maxheight,height:height}">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
headerheight,
|
headerheight,
|
||||||
footerheight
|
footerheight
|
||||||
} = await this.com_gethdft();
|
} = await this.com_gethdft();
|
||||||
this.top = (headerheight + 40) + 'px';
|
this.top = (headerheight + 60) + 'px';
|
||||||
if (res.height) {
|
if (res.height) {
|
||||||
this.height = res.height;
|
this.height = res.height;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
virtualHost: true
|
virtualHost: true
|
||||||
},
|
},
|
||||||
behaviors: ['uni://form-field-group'],
|
behaviors: ['uni://form-field-group'],
|
||||||
emits: ['change', 'update:modelValue', 'focus', 'blur'],
|
emits: ['change', 'update:modelValue', 'focus', 'blur', 'input'],
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
type: String
|
type: String
|
||||||
|
|
@ -99,9 +99,8 @@
|
||||||
if (txt === undefined)
|
if (txt === undefined)
|
||||||
txt = e.data;
|
txt = e.data;
|
||||||
this.$emit('update:modelValue', txt);
|
this.$emit('update:modelValue', txt);
|
||||||
this.$emit('change', {
|
this.$emit('input', {
|
||||||
name: this.name,
|
name: this.name,
|
||||||
from: 'input',
|
|
||||||
value: txt
|
value: txt
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -136,6 +135,7 @@
|
||||||
._input._disabled {
|
._input._disabled {
|
||||||
color: var(--txt1);
|
color: var(--txt1);
|
||||||
}
|
}
|
||||||
|
|
||||||
._input._bb._disabled {
|
._input._bb._disabled {
|
||||||
background: var(--bg4);
|
background: var(--bg4);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,11 +134,11 @@
|
||||||
|
|
||||||
._btn {
|
._btn {
|
||||||
background: linear-gradient(100deg, var(--bg4), var(--bg6));
|
background: linear-gradient(100deg, var(--bg4), var(--bg6));
|
||||||
width: 2rem;
|
width: 1.5rem;
|
||||||
height: 2rem;
|
height: 1.5rem;
|
||||||
font-size: 1.5rem;
|
font-size: 1rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 2rem;
|
line-height: 1.5rem;
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<view v-else-if="item.type == 'audio'" style="padding:1em;">
|
<view v-else-if="item.type == 'audio'" style="padding:1em;">
|
||||||
<ciy-audio :src="file_stor(item.content)"></ciy-audio>
|
<ciy-audio :src="file_stor(item.content)"></ciy-audio>
|
||||||
</view>
|
</view>
|
||||||
<view v-else v-html="item.content" style="width:100%;position: relative;padding:0 1em;"></view>
|
<view v-else v-html="item.content" style="width:100%;position: relative;" :style="{padding:padding}"></view>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -19,6 +19,10 @@
|
||||||
md: {
|
md: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
padding: {
|
||||||
|
type: String,
|
||||||
|
default: '0 0.5em'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -47,74 +51,102 @@
|
||||||
var mds = markdown.split('\n');
|
var mds = markdown.split('\n');
|
||||||
var htmls = [];
|
var htmls = [];
|
||||||
var html = '';
|
var html = '';
|
||||||
|
var ispvs = 0; //0文本,1html,2表格
|
||||||
var isol = false;
|
var isol = false;
|
||||||
var titnum = [0, 0, 0, 0, 0];
|
var titnum = [0, 0, 0, 0, 0];
|
||||||
|
var tabalign = {};
|
||||||
for (var m in mds) {
|
for (var m in mds) {
|
||||||
if (mds[m].length == 0) {
|
var mdline = mds[m].trim();
|
||||||
continue;
|
if (mdline.length == 0) {
|
||||||
}
|
if (ispvs == 0)
|
||||||
if (mds[m].length > 0 && mds[m].trim() == '') {
|
html += '<br/>';
|
||||||
|
if (ispvs == 2) {
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 0;
|
||||||
|
}
|
||||||
if (isol) {
|
if (isol) {
|
||||||
isol = false;
|
isol = false;
|
||||||
html += '</ol>';
|
html += '</ol>';
|
||||||
}
|
}
|
||||||
html += '<br/>';
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (mds[m][0] == '#') { //标题1/2/3
|
if (mdline[0] == '#') { //标题1/2/3
|
||||||
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 0;
|
||||||
if (isol) {
|
if (isol) {
|
||||||
isol = false;
|
isol = false;
|
||||||
html += '</ol>';
|
html += '</ol>';
|
||||||
}
|
}
|
||||||
var cr = mds[m].substring(1, 2).toLowerCase();
|
var cr = mdline.substring(1, 2).toLowerCase();
|
||||||
if (mds[m].substring(0, 5) == '#####') {
|
if (mdline.substring(0, 5) == '#####') {
|
||||||
if (mds[m].substring(5, 6) == '1')
|
oladd(4, titnum);
|
||||||
html += '<h5 class="md-h5">' + olnum(4, titnum, '、') + convertcode(mds[m].substring(6)) + '</h5>';
|
if (mdline.substring(5, 6) == '.')
|
||||||
|
html += '<h5 class="md-h5">' + olnum(4, titnum, '、') + convertcode(mdline.substring(6)) + '</h5>';
|
||||||
|
else if (mdline.substring(5, 6) == ':')
|
||||||
|
html += '<div class="md-content">' + olnum(4, titnum, ' ') + convertcode(mdline.substring(6)) + '</div>';
|
||||||
else
|
else
|
||||||
html += '<h5 class="md-h5">' + convertcode(mds[m].substring(5)) + '</h5>';
|
html += '<h5 class="md-h5">' + convertcode(mdline.substring(5)) + '</h5>';
|
||||||
} else if (mds[m].substring(0, 4) == '####') {
|
} else if (mdline.substring(0, 4) == '####') {
|
||||||
if (mds[m].substring(4, 5) == '1')
|
oladd(3, titnum);
|
||||||
html += '<h4 class="md-h4">' + olnum(3, titnum, '、') + convertcode(mds[m].substring(5)) + '</h4>';
|
if (mdline.substring(4, 5) == '.')
|
||||||
|
html += '<h4 class="md-h4">' + olnum(3, titnum, '、') + convertcode(mdline.substring(5)) + '</h4>';
|
||||||
|
else if (mdline.substring(4, 5) == ':')
|
||||||
|
html += '<div class="md-content">' + olnum(3, titnum, ' ') + convertcode(mdline.substring(5)) + '</div>';
|
||||||
else
|
else
|
||||||
html += '<h4 class="md-h4">' + convertcode(mds[m].substring(4)) + '</h4>';
|
html += '<h4 class="md-h4">' + convertcode(mdline.substring(4)) + '</h4>';
|
||||||
} else if (mds[m].substring(0, 3) == '###') {
|
} else if (mdline.substring(0, 3) == '###') {
|
||||||
if (mds[m].substring(3, 4) == '1')
|
oladd(2, titnum);
|
||||||
html += '<h3 class="md-h3">' + olnum(2, titnum, '、') + convertcode(mds[m].substring(4)) + '</h3>';
|
if (mdline.substring(3, 4) == '.')
|
||||||
|
html += '<h3 class="md-h3">' + olnum(2, titnum, '、') + convertcode(mdline.substring(4)) + '</h3>';
|
||||||
|
else if (mdline.substring(3, 4) == ':')
|
||||||
|
html += '<div class="md-content">' + olnum(2, titnum, ' ') + convertcode(mdline.substring(4)) + '</div>';
|
||||||
else
|
else
|
||||||
html += '<h3 class="md-h3">' + convertcode(mds[m].substring(3)) + '</h3>';
|
html += '<h3 class="md-h3">' + convertcode(mdline.substring(3)) + '</h3>';
|
||||||
} else if (mds[m].substring(0, 2) == '##') {
|
} else if (mdline.substring(0, 2) == '##') {
|
||||||
if (mds[m].substring(2, 3) == '1')
|
oladd(1, titnum);
|
||||||
html += '<h2 class="md-h2">' + olnum(1, titnum, '、') + convertcode(mds[m].substring(3)) + '</h2>';
|
if (mdline.substring(2, 3) == '.')
|
||||||
|
html += '<h2 class="md-h2">' + olnum(1, titnum, '、') + convertcode(mdline.substring(3)) + '</h2>';
|
||||||
|
else if (mdline.substring(2, 3) == ':')
|
||||||
|
html += '<div class="md-content">' + olnum(1, titnum, ' ') + convertcode(mdline.substring(3)) + '</div>';
|
||||||
else
|
else
|
||||||
html += '<h2 class="md-h2">' + convertcode(mds[m].substring(2)) + '</h2>';
|
html += '<h2 class="md-h2">' + convertcode(mdline.substring(2)) + '</h2>';
|
||||||
} else if (cr == 'c')
|
} else {
|
||||||
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mds[m].substring(2)) +
|
oladd(0, titnum);
|
||||||
'</h1>';
|
if (cr == 'c')
|
||||||
else if (cr == 'r')
|
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mdline.substring(2)) + '</h1>';
|
||||||
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mds[m].substring(2)) +
|
else if (cr == 'r')
|
||||||
'</h1>';
|
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mdline.substring(2)) + '</h1>';
|
||||||
else if (cr == '1')
|
else if (cr == '.')
|
||||||
html += '<h1 class="md-h1">' + olnum(0, titnum, '、') + convertcode(mds[m].substring(2)) + '</h1>';
|
html += '<h1 class="md-h1">' + olnum(0, titnum, '、') + convertcode(mdline.substring(2)) + '</h1>';
|
||||||
else
|
else if (cr == ':')
|
||||||
html += '<h1 class="md-h1">' + convertcode(mds[m].substring(1)) + '</h1>';
|
html += '<div class="md-content">' + olnum(0, titnum, ' ') + convertcode(mdline.substring(2)) + '</div>';
|
||||||
|
else
|
||||||
} else if (mds[m][0] == '@') { //c居中,r靠右
|
html += '<h1 class="md-h1">' + convertcode(mdline.substring(1)) + '</h1>';
|
||||||
var cr = mds[m].substring(1, 2).toLowerCase();
|
}
|
||||||
|
} else if (mdline[0] == '@') { //c居中,r靠右
|
||||||
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 0;
|
||||||
|
var cr = mdline.substring(1, 2).toLowerCase();
|
||||||
if (cr == 'c')
|
if (cr == 'c')
|
||||||
html += '<div class="md-content" style="text-align:center;">' + convertcode(mds[m].substring(2)) + '</div>';
|
html += '<div class="md-content" style="text-align:center;">' + convertcode(mdline.substring(2)) + '</div>';
|
||||||
else if (cr == 'r')
|
else if (cr == 'r')
|
||||||
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(mds[m].substring(2)) + '</div>';
|
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(mdline.substring(2)) + '</div>';
|
||||||
else if (mds[m][1] == '1') {
|
else if (mdline[1] == '.') {
|
||||||
if (!isol) {
|
if (!isol) {
|
||||||
isol = true;
|
isol = true;
|
||||||
html += '<ol>';
|
html += '<ol>';
|
||||||
}
|
}
|
||||||
html += '<li style="line-height: 1.5em;padding: 0.5em 0;">' + convertcode(mds[m].substring(2)) + '</li>';
|
html += '<li style="line-height: 1.5em;padding: 0.5em 0;">' + convertcode(mdline.substring(2)) + '</li>';
|
||||||
} else
|
} else
|
||||||
html += '<div class="md-content">' + mds[m].substring(1) + '</div>';
|
html += '<div class="md-content">' + mdline.substring(1) + '</div>';
|
||||||
|
|
||||||
} else if (mds[m][0] == '!') { //图片、视频、音频
|
} else if (mdline[0] == '!') { //图片、视频、音频
|
||||||
var mis = mds[m].split('|');
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 0;
|
||||||
|
var mis = mdline.split('|');
|
||||||
var url = mis[0];
|
var url = mis[0];
|
||||||
url = this.file_stor(url.substring(1));
|
url = this.file_stor(url.substring(1));
|
||||||
var ind = url.indexOf('?');
|
var ind = url.indexOf('?');
|
||||||
|
|
@ -154,17 +186,46 @@
|
||||||
content: url
|
content: url
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (mds[m][0] == '<') { //原始HTML
|
} else if (mdline[0] == '|' && mdline.substring(mdline.length - 1) == '|') { //表格
|
||||||
html += mds[m];
|
var trs = mdline.substring(1, mdline.length - 1).split('|');
|
||||||
} else {
|
if (ispvs == 0) {
|
||||||
if (isol) {
|
html += '<div class="md-table-div"><table class="md-table"><tr style="font-weight:bold;">';
|
||||||
isol = false;
|
for (var i in trs) {
|
||||||
html += '</ol>';
|
var align = 'left';
|
||||||
|
if (trs[i].substring(trs[i].length - 1) == ':') {
|
||||||
|
align = 'right';
|
||||||
|
trs[i] = trs[i].substring(0, trs[i].length - 1);
|
||||||
|
}
|
||||||
|
if (trs[i].substring(0, 1) == ':') {
|
||||||
|
align = 'center';
|
||||||
|
trs[i] = trs[i].substring(1);
|
||||||
|
}
|
||||||
|
tabalign[i] = align;
|
||||||
|
html += '<td style="text-align:' + align + ';">' + convertcode(trs[i].trim()) + '</td>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
html += '<tr>';
|
||||||
|
for (var i in trs) {
|
||||||
|
html += '<td style="text-align:' + tabalign[i] + ';">' + convertcode(trs[i].trim()) + '</td>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
html += '<div class="md-content">' + convertcode(mds[m]) + '</div>';
|
html += '</tr>';
|
||||||
|
ispvs = 2;
|
||||||
|
} else if (mdline[0] == '<') { //原始HTML
|
||||||
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 1;
|
||||||
|
html += mdline;
|
||||||
|
} else {
|
||||||
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
|
ispvs = 0;
|
||||||
|
html += '<div class="md-content">' + convertcode(mdline) + '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (html) {
|
if (html) {
|
||||||
|
if (ispvs == 2)
|
||||||
|
html += '</table></div>';
|
||||||
if (isol) {
|
if (isol) {
|
||||||
isol = false;
|
isol = false;
|
||||||
html += '</ol>';
|
html += '</ol>';
|
||||||
|
|
@ -176,10 +237,13 @@
|
||||||
}
|
}
|
||||||
return htmls;
|
return htmls;
|
||||||
|
|
||||||
function olnum(idx, olnum, end) {
|
function oladd(idx, olnum) {
|
||||||
olnum[idx]++;
|
olnum[idx]++;
|
||||||
for (var i = idx + 1; i < olnum.length; i++)
|
for (var i = idx + 1; i < olnum.length; i++)
|
||||||
olnum[i] = 0;
|
olnum[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function olnum(idx, olnum, end) {
|
||||||
for (var i = 0; i <= idx; i++) {
|
for (var i = 0; i <= idx; i++) {
|
||||||
if (olnum[i] == 0)
|
if (olnum[i] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -294,70 +294,6 @@
|
||||||
, upimg: function(b) {
|
, upimg: function(b) {
|
||||||
if (this.Grunning)
|
if (this.Grunning)
|
||||||
return app.toast('上传中...');
|
return app.toast('上传中...');
|
||||||
//if (app.boi && app.boi.inboi()) {
|
|
||||||
var thos = this;
|
|
||||||
uni.chooseImage({
|
|
||||||
count: 9
|
|
||||||
, sizeType: ['original', 'compressed']
|
|
||||||
, success: res => {
|
|
||||||
console.log('choose', res);
|
|
||||||
var upcount = res.tempFilePaths.length;
|
|
||||||
thos.Grunning = true;
|
|
||||||
thos.imgtip = '上传 0/' + upcount;
|
|
||||||
var upidx = 0;
|
|
||||||
for (var u in res.tempFilePaths) {
|
|
||||||
(function(idx, img) {
|
|
||||||
var updata = {};
|
|
||||||
updata.imgact = thos.imgact;
|
|
||||||
uni.uploadFile({
|
|
||||||
url: thos.uploadurl
|
|
||||||
, filePath: img
|
|
||||||
, name: 'file'
|
|
||||||
, formData: updata
|
|
||||||
, header: {
|
|
||||||
'ciyauth': app.getstorage("_auth")
|
|
||||||
, 'ciyorg': app.getstorage("_org")
|
|
||||||
}
|
|
||||||
, success: res => {
|
|
||||||
var jsonup = app.json_parse(res.data);
|
|
||||||
if (jsonup === null)
|
|
||||||
jsonup = {
|
|
||||||
code: 0
|
|
||||||
, errmsg: 'JSON Parse ERROR:' + res.data.substr(0, 30)
|
|
||||||
}
|
|
||||||
upidx++;
|
|
||||||
if (jsonup.code != 1) {
|
|
||||||
thos.Grunning = false;
|
|
||||||
thos.imgtip = '';
|
|
||||||
if (jsonup.code == 2) {
|
|
||||||
app.askmsg('您尚未登录,请登录后上传\n立即前往登录?', () => {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: '/main/login'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else
|
|
||||||
thos.alert('上传失败:' + jsonup.errmsg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
thos.doedit('!', jsonup.url);
|
|
||||||
thos.$emit('change', {
|
|
||||||
name: thos.name
|
|
||||||
, from: 'upimg'
|
|
||||||
, url: jsonup.url
|
|
||||||
, value: thos.valuetxt
|
|
||||||
});
|
|
||||||
thos.imgtip = '上传 ' + upidx + '/' + upcount;
|
|
||||||
if (upidx == upcount) {
|
|
||||||
thos.Gvalue = true;
|
|
||||||
thos.imgtip = '';
|
|
||||||
thos.Grunning = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})(u, res.tempFilePaths[u]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<ciy-anipop v-model="popsh" maskbg="#00000055">
|
<ciy-anipop v-model="popsh" maskbg="#00000055" @change="popclose">
|
||||||
<view class="_menu">
|
<view class="_menu">
|
||||||
<view class="_title" v-if="title">{{title}}</view>
|
<view class="_title" v-if="title">{{title}}</view>
|
||||||
<slot name="list" :data="{items:items, rowcount:rowcount}">
|
<slot name="list" :data="{items:items, rowcount:rowcount}">
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
<view v-else class="_item" @tap="selitem(index)">
|
<view v-else class="_item" @tap="selitem(index)">
|
||||||
<view class="_icon" v-if="item.icon"><ciy-svgimg :src="item.icon"></ciy-svgimg></view>
|
<view class="_icon" v-if="item.icon"><ciy-svgimg :src="item.icon"></ciy-svgimg></view>
|
||||||
<view class="_name" :style="item.style" v-if="item.name">{{lang(item.name)}}</view>
|
<view class="_name" :style="item.style" v-if="item.name">{{lang(item.name)}}</view>
|
||||||
|
<view class="_sub" v-if="item.sub">{{item.sub}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -76,6 +77,11 @@
|
||||||
._list ._name {
|
._list ._name {
|
||||||
color: var(--txt7);
|
color: var(--txt7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
._list ._sub {
|
||||||
|
font-size:0.7em;
|
||||||
|
color: var(--txt1);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -112,7 +118,11 @@
|
||||||
selitem(idx) {
|
selitem(idx) {
|
||||||
this.popsh = false;
|
this.popsh = false;
|
||||||
this.resolvecb({...this.items[idx]});
|
this.resolvecb({...this.items[idx]});
|
||||||
}
|
},
|
||||||
|
popclose(e) {
|
||||||
|
if(!e.value)
|
||||||
|
this.resolvecb({close:true});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -201,6 +201,11 @@
|
||||||
|
|
||||||
._gp._left {
|
._gp._left {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
._gp._left ._item {
|
||||||
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
._gp ._item {
|
._gp ._item {
|
||||||
|
|
@ -210,6 +215,7 @@
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
min-width: 7em;
|
min-width: 7em;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
._gp._itemright ._item {
|
._gp._itemright ._item {
|
||||||
|
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
<template>
|
|
||||||
<view style="width:100%;">
|
|
||||||
<input type="hidden" :name="name" :value="tkv.id" style="display:none;" />
|
|
||||||
<template v-if="hasmore">
|
|
||||||
<input type="hidden" :name="name+'_name'" :value="tkv.name" style="display:none;" />
|
|
||||||
</template>
|
|
||||||
<radio-group class="_gp" :class="{'_line':line,'_left':left,'_itemright':itemright}">
|
|
||||||
<view @tap="chkitem(item)" class="_item" v-for="(item,index) in range" :key="index">
|
|
||||||
<ciy-checkitem style="pointer-events: none;" :disabled="disabled" :tag="item.id+''" :value="tkv.id == item.id"></ciy-checkitem>
|
|
||||||
<view :style="{color:disabled?'var(--txt1)':''}">{{item.name}}</view>
|
|
||||||
</view>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
behaviors: ['uni://form-field-group'],
|
|
||||||
emits: ['change', 'update:modelValue'],
|
|
||||||
props: {
|
|
||||||
name: {
|
|
||||||
type: String
|
|
||||||
},
|
|
||||||
modelValue: {
|
|
||||||
type: [String, Number],
|
|
||||||
default: ''
|
|
||||||
},
|
|
||||||
value: {
|
|
||||||
type: [String, Number],
|
|
||||||
default: ''
|
|
||||||
},
|
|
||||||
disabled: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
initevent: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
hasmore: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
range: {
|
|
||||||
type: Array,
|
|
||||||
default: []
|
|
||||||
},
|
|
||||||
left: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
itemright: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
line: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
byname: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
v: '',
|
|
||||||
valuearr: {
|
|
||||||
id: 0,
|
|
||||||
name: ''
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
tkv: {
|
|
||||||
handler(newD, oldD) {
|
|
||||||
if (this.from && newD.id == oldD.id)
|
|
||||||
return;
|
|
||||||
if (!this.from)
|
|
||||||
this.from = 'init';
|
|
||||||
else if (this.from == 'init') {
|
|
||||||
this.from = 'check';
|
|
||||||
}
|
|
||||||
if (this.from != 'init') {
|
|
||||||
if (this.byname)
|
|
||||||
this.$emit('update:modelValue', newD.name);
|
|
||||||
else
|
|
||||||
this.$emit('update:modelValue', newD.id);
|
|
||||||
}
|
|
||||||
if (this.from != 'init' || this.initevent) {
|
|
||||||
this.$emit('change', {
|
|
||||||
name: this.name,
|
|
||||||
from: this.from,
|
|
||||||
value: {
|
|
||||||
id: newD.id,
|
|
||||||
name: newD.name
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
},
|
|
||||||
value: {
|
|
||||||
handler(newD, oldD) {
|
|
||||||
if (newD || oldD)
|
|
||||||
this.v = 'value';
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
},
|
|
||||||
modelValue: {
|
|
||||||
handler(newD, oldD) {
|
|
||||||
if (newD || oldD)
|
|
||||||
this.v = 'modelValue';
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
tkv() {
|
|
||||||
var val = '';
|
|
||||||
if (this.v == 'modelValue') {
|
|
||||||
if (typeof(this.modelValue) == 'number')
|
|
||||||
val = this.modelValue;
|
|
||||||
else if (this.modelValue)
|
|
||||||
val = this.modelValue;
|
|
||||||
} else if (this.v == 'value') {
|
|
||||||
if (typeof(this.value) == 'number')
|
|
||||||
val = this.value;
|
|
||||||
else if (this.value)
|
|
||||||
val = this.value;
|
|
||||||
} else {
|
|
||||||
val = this.v;
|
|
||||||
}
|
|
||||||
if (this.byname) {
|
|
||||||
for (var i in this.range) {
|
|
||||||
if (this.range[i].name == val)
|
|
||||||
return {
|
|
||||||
...this.range[i]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (var i in this.range) {
|
|
||||||
if (this.range[i].id == val)
|
|
||||||
return {
|
|
||||||
...this.range[i]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
id: 0,
|
|
||||||
name: ''
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {},
|
|
||||||
methods: {
|
|
||||||
chkitem(itm) {
|
|
||||||
if (this.disabled)
|
|
||||||
return;
|
|
||||||
this.v = itm.id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
._gp {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
flex-direction: row-reverse;
|
|
||||||
}
|
|
||||||
|
|
||||||
._gp._left {
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
|
|
||||||
._gp ._item {
|
|
||||||
white-space: nowrap;
|
|
||||||
display: flex;
|
|
||||||
gap: 0.5em;
|
|
||||||
min-width: 7em;
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
._gp._itemright ._item {
|
|
||||||
justify-content: flex-start;
|
|
||||||
flex-direction: row-reverse;
|
|
||||||
}
|
|
||||||
|
|
||||||
._gp._line ._item {
|
|
||||||
width: 100%;
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -14,19 +14,19 @@
|
||||||
<view class="_btn" :class="{_disabled:disabled}" @tap="map_select">
|
<view class="_btn" :class="{_disabled:disabled}" @tap="map_select">
|
||||||
<view class="_icon _mapicon"></view>
|
<view class="_icon _mapicon"></view>
|
||||||
</view>
|
</view>
|
||||||
<slot name="show" :data="{value:tvalue, loc:loc}">
|
<slot name="show" :data="{value:tvalue, loc:loc, bet:innerbet}">
|
||||||
<view style="line-height:1.5em;font-size:0.9em;flex: 1; margin-left:0.5em;text-align:left;">
|
<view style="line-height:1.5em;font-size:0.9em;flex: 1; margin-left:0.5em;text-align:left;">
|
||||||
<view v-if="loc.name || loc.addr">{{loc.name}}<br />{{loc.addr}}</view>
|
<view v-if="loc.name || loc.addr">{{loc.name}}<br />{{loc.addr}}</view>
|
||||||
<view v-else-if="isfloat0(tvalue.lat)" style="padding-top:0.3em;display:inline-block;">{{lang('selmap.select')}}</view>
|
<view v-else-if="tvalue.lat == 0" style="padding-top:0.3em;display:inline-block;">{{lang('selmap.select')}}</view>
|
||||||
<view v-else style="padding-top:0.3em;display:inline-block;">{{lang('selmap.loced')}}</view>
|
<view v-else style="padding-top:0.3em;display:inline-block;">{{lang('selmap.loced')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</slot>
|
</slot>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<slot name="show" :data="{value:tvalue, loc:loc}">
|
<slot name="show" :data="{value:tvalue, loc:loc, bet:innerbet}">
|
||||||
<view style="line-height:1.5em;font-size:0.9em;flex: 1; margin-right:0.5em;">
|
<view style="line-height:1.5em;font-size:0.9em;flex: 1; margin-right:0.5em;">
|
||||||
<view v-if="loc.name || loc.addr">{{loc.name}}<br />{{loc.addr}}</view>
|
<view v-if="loc.name || loc.addr">{{loc.name}}<br />{{loc.addr}}</view>
|
||||||
<view v-else-if="isfloat0(tvalue.lat)" style="padding-top:0.3em;display:inline-block;">{{lang('selmap.select')}}</view>
|
<view v-else-if="tvalue.lat == 0" style="padding-top:0.3em;display:inline-block;">{{lang('selmap.select')}}</view>
|
||||||
<view v-else style="padding-top:0.3em;display:inline-block;">{{lang('selmap.loced')}}</view>
|
<view v-else style="padding-top:0.3em;display:inline-block;">{{lang('selmap.loced')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</slot>
|
</slot>
|
||||||
|
|
@ -64,6 +64,10 @@
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
bet: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: 10000000
|
||||||
|
},
|
||||||
lat: {
|
lat: {
|
||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
default: ''
|
default: ''
|
||||||
|
|
@ -110,6 +114,12 @@
|
||||||
ret.lng = this.tofloat(this.lng);
|
ret.lng = this.tofloat(this.lng);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
},
|
||||||
|
innerbet() {
|
||||||
|
var bet = this.bet;
|
||||||
|
if (bet <= 1)
|
||||||
|
return 1;
|
||||||
|
return this.toint(bet);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
|
|
@ -118,20 +128,23 @@
|
||||||
if (this.disabled)
|
if (this.disabled)
|
||||||
return;
|
return;
|
||||||
var result;
|
var result;
|
||||||
if (this.isfloat0(this.lat)) {
|
if (this.toint(this.lat) == 0) {
|
||||||
result = this.getstorage('_map');
|
result = this.getstorage('_map');
|
||||||
if (!result || result.length != 2) {
|
if (!result || result.length != 2) {
|
||||||
result = [116.4, 39.8];
|
result = [1164000000, 398000000];
|
||||||
} else {
|
} else {
|
||||||
result[0] += 0.005 * Math.random();
|
result[0] += 50000 * Math.random();
|
||||||
result[1] += 0.005 * Math.random();
|
result[1] += 50000 * Math.random();
|
||||||
}
|
}
|
||||||
} else
|
} else {
|
||||||
result = gcoord.transform([this.lng, this.lat], gcoord.WGS84, gcoord.GCJ02);
|
result = gcoord.transform([this.lng / this.innerbet, this.lat / this.innerbet], gcoord.WGS84, gcoord.GCJ02);
|
||||||
|
result[0] = this.caldectoint(result[0]);
|
||||||
|
result[1] = this.caldectoint(result[1]);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
var retchoose = await uni.chooseLocation({
|
var retchoose = await uni.chooseLocation({
|
||||||
longitude: result[0],
|
longitude: result[0] / this.innerbet,
|
||||||
latitude: result[1]
|
latitude: result[1] / this.innerbet
|
||||||
});
|
});
|
||||||
} catch (res) {
|
} catch (res) {
|
||||||
if (res.errMsg.indexOf('cancel') > -1)
|
if (res.errMsg.indexOf('cancel') > -1)
|
||||||
|
|
@ -142,6 +155,8 @@
|
||||||
if (!retchoose.longitude)
|
if (!retchoose.longitude)
|
||||||
return this.alert(this.lang('selmap.noselect'));
|
return this.alert(this.lang('selmap.noselect'));
|
||||||
var result = gcoord.transform([retchoose.longitude, retchoose.latitude], gcoord.GCJ02, gcoord.WGS84);
|
var result = gcoord.transform([retchoose.longitude, retchoose.latitude], gcoord.GCJ02, gcoord.WGS84);
|
||||||
|
result[0] = this.caldectoint(result[0]);
|
||||||
|
result[1] = this.caldectoint(result[1]);
|
||||||
this.setstorage('_map', result);
|
this.setstorage('_map', result);
|
||||||
this.loc.name = retchoose.name;
|
this.loc.name = retchoose.name;
|
||||||
this.loc.addr = retchoose.address;
|
this.loc.addr = retchoose.address;
|
||||||
|
|
@ -175,6 +190,11 @@
|
||||||
// gcoord.EPSG4326 [lng,lat] WGS-84坐标系别名,同WGS-84
|
// gcoord.EPSG4326 [lng,lat] WGS-84坐标系别名,同WGS-84
|
||||||
// gcoord.EPSG3857 [x,y] Web Mercator投影,同WebMercator,单位:米
|
// gcoord.EPSG3857 [x,y] Web Mercator投影,同WebMercator,单位:米
|
||||||
// gcoord.EPSG900913 [x,y] Web Mercator投影,同WebMercator,单位:米
|
// gcoord.EPSG900913 [x,y] Web Mercator投影,同WebMercator,单位:米
|
||||||
|
},
|
||||||
|
caldectoint(dec) {
|
||||||
|
if (this.innerbet <= 1)
|
||||||
|
return dec;
|
||||||
|
return this.toint(dec * this.innerbet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,9 @@
|
||||||
morevalue: {
|
morevalue: {
|
||||||
handler(newD, oldD) {
|
handler(newD, oldD) {
|
||||||
this.v = this.modelValue || this.value;
|
this.v = this.modelValue || this.value;
|
||||||
this.innermore = {...newD};
|
this.innermore = {
|
||||||
|
...newD
|
||||||
|
};
|
||||||
},
|
},
|
||||||
immediate: true
|
immediate: true
|
||||||
},
|
},
|
||||||
|
|
@ -100,7 +102,9 @@
|
||||||
computed: {
|
computed: {
|
||||||
tvalue() {
|
tvalue() {
|
||||||
var val = '';
|
var val = '';
|
||||||
var valmore = {...this.innermore};
|
var valmore = {
|
||||||
|
...this.innermore
|
||||||
|
};
|
||||||
if (this.v == 'modelValue') {
|
if (this.v == 'modelValue') {
|
||||||
if (typeof(this.modelValue) == 'number')
|
if (typeof(this.modelValue) == 'number')
|
||||||
val = this.modelValue;
|
val = this.modelValue;
|
||||||
|
|
@ -143,8 +147,12 @@
|
||||||
url: this.page + '?sel=true&id=' + this.tvalue.id,
|
url: this.page + '?sel=true&id=' + this.tvalue.id,
|
||||||
events: {
|
events: {
|
||||||
writedata: data => {
|
writedata: data => {
|
||||||
this.v = data;
|
this.v = {
|
||||||
this.innertext = data.name;
|
...data
|
||||||
|
};
|
||||||
|
this.innermore = {
|
||||||
|
...data
|
||||||
|
};
|
||||||
this.$emit('update:modelValue', data.id);
|
this.$emit('update:modelValue', data.id);
|
||||||
this.$emit('change', {
|
this.$emit('change', {
|
||||||
name: this.name,
|
name: this.name,
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
<view style="display:flex;">
|
<view style="display:flex;">
|
||||||
<view v-if="picarr.length > 0 && label" style="width: 1em;margin-right: 0.5em;line-height: 1.2em;color: #999999;">{{label}}</view>
|
<view v-if="picarr.length > 0 && label" style="width: 1em;margin-right: 0.5em;line-height: 1.2em;color: #999999;">{{label}}</view>
|
||||||
<view v-if="type == 'thumb'" style="flex:1;">
|
<view v-if="type == 'thumb'" style="flex:1;">
|
||||||
<video :id="'video' + index" v-for="(item,index) in videoarr" :key="index" :src="file_stor(item)" controls @click="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:width,height:height,margin:'0 0.5em 0 0'}"></video>
|
<video :id="'video' + index" v-for="(item,index) in videoarr" :key="index" :src="file_stor(item)" controls @tap="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:width,height:height,margin:'0 0.5em 0 0'}"></video>
|
||||||
<image lazy-load :lazy-load-margin="0" @tap.stop="preview(index)" :src="item" v-for="(item,index) in picarr" :key="index" :mode="mode" :style="{width:width,height:height,margin:'0 0.5em 0 0'}" style="border-radius:0.3em;" />
|
<image lazy-load :lazy-load-margin="0" @tap.stop="preview(index)" :src="item" v-for="(item,index) in picarr" :key="index" :mode="mode" :style="{width:width,height:height,margin:'0 0.5em 0 0'}" style="border-radius:0.3em;" />
|
||||||
<view @tap.stop="openfile(index)" v-for="(item,index) in pdfarr" :key="index" :style="{width:width,height:height,lineHeight: height}" style="margin:0 0.5em 0 0;border-radius:0.3em;display:inline-block;vertical-align: top;border: 1px solid #cccccc;text-align: center;color:#000000;background: #ffffff;">{{lang('showimgs.att')}}{{index+1}}</view>
|
<view @tap.stop="openfile(index)" v-for="(item,index) in pdfarr" :key="index" :style="{width:width,height:height,lineHeight: height}" style="margin:0 0.5em 0 0;border-radius:0.3em;display:inline-block;vertical-align: top;border: 1px solid #cccccc;text-align: center;color:#000000;background: #ffffff;">{{lang('showimgs.att')}}{{index+1}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else style="flex:1;">
|
<view v-else style="flex:1;">
|
||||||
<video :id="'video' + index" v-for="(item,index) in videoarr" :key="index" :src="file_stor(item)" controls @click="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:width,margin:'0 0 -2px 0;'}"></video>
|
<video :id="'video' + index" v-for="(item,index) in videoarr" :key="index" :src="file_stor(item)" controls @tap="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:width,margin:'0 0 -2px 0;'}"></video>
|
||||||
<image lazy-load :lazy-load-margin="0" @tap.stop="preview(index)" :src="item" v-for="(item,index) in picarr" :key="index" :mode="mode" :style="{width:width}" style="margin:0 0 -2px 0;" />
|
<image lazy-load :lazy-load-margin="0" @tap.stop="preview(index)" :src="item" v-for="(item,index) in picarr" :key="index" :mode="mode" :style="{width:width}" style="margin:0 0 -2px 0;" />
|
||||||
<view @tap.stop="openfile(index)" v-for="(item,index) in pdfarr" :key="index" :style="{width:width,height:height,lineHeight: height,margin:index==0?'0':'0 0.5em 0 0'}" style="border-radius:0.3em;display:inline-block;vertical-align: top;border: 1px solid #cccccc;text-align: center;color:#000000;background: #ffffff;">{{lang('showimgs.att')}}{{index+1}}</view>
|
<view @tap.stop="openfile(index)" v-for="(item,index) in pdfarr" :key="index" :style="{width:width,height:height,lineHeight: height,margin:index==0?'0':'0 0.5em 0 0'}" style="border-radius:0.3em;display:inline-block;vertical-align: top;border: 1px solid #cccccc;text-align: center;color:#000000;background: #ffffff;">{{lang('showimgs.att')}}{{index+1}}</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -41,10 +41,6 @@
|
||||||
type: String,
|
type: String,
|
||||||
default: 'aspectFill'
|
default: 'aspectFill'
|
||||||
},
|
},
|
||||||
whpre: {
|
|
||||||
type: String,
|
|
||||||
default: '?50'
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -73,7 +69,7 @@
|
||||||
continue;
|
continue;
|
||||||
var ind = ps[i].lastIndexOf('.');
|
var ind = ps[i].lastIndexOf('.');
|
||||||
var ext = ps[i].substring(ind + 1).toUpperCase();
|
var ext = ps[i].substring(ind + 1).toUpperCase();
|
||||||
if (ext == 'JPG' || ext == 'JPEG' || ext == 'GIF' || ext == 'PNG')
|
if (ext == 'JPG' || ext == 'JPEG' || ext == 'GIF' || ext == 'PNG' || ext == 'WEBP')
|
||||||
images.push(ps[i]);
|
images.push(ps[i]);
|
||||||
else if (ext == 'MP4')
|
else if (ext == 'MP4')
|
||||||
this.videoarr.push(ps[i]);
|
this.videoarr.push(ps[i]);
|
||||||
|
|
@ -81,19 +77,8 @@
|
||||||
this.pdfarr.push(ps[i]);
|
this.pdfarr.push(ps[i]);
|
||||||
}
|
}
|
||||||
for (var i in images) {
|
for (var i in images) {
|
||||||
var ind = images[i].indexOf('|');
|
this.picarr.push(this.file_stor(images[i], 'thumb'));
|
||||||
var psm = '';
|
this.picoriarr.push(this.file_stor(images[i]));
|
||||||
var pbig = '';
|
|
||||||
if (ind > -1) {
|
|
||||||
psm = images[i].substr(0, ind);
|
|
||||||
pbig = images[i].substr(ind + 1);
|
|
||||||
} else {
|
|
||||||
pbig = images[i];
|
|
||||||
}
|
|
||||||
if (psm == '')
|
|
||||||
psm = pbig;
|
|
||||||
this.picarr.push(this.file_stor(psm));
|
|
||||||
this.picoriarr.push(this.file_stor(pbig));
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
preview(idx) {
|
preview(idx) {
|
||||||
|
|
@ -106,9 +91,7 @@
|
||||||
openfile(idx) {
|
openfile(idx) {
|
||||||
var app = getApp();
|
var app = getApp();
|
||||||
app.toast('Downloading...');
|
app.toast('Downloading...');
|
||||||
var url = this.pdfarr[idx];
|
var url = this.file_stor(this.pdfarr[idx]);
|
||||||
if (url.substr(0, 1) == '/')
|
|
||||||
url = app.globalData.jsnurl[this.srv] + url;
|
|
||||||
uni.downloadFile({
|
uni.downloadFile({
|
||||||
url: url,
|
url: url,
|
||||||
success: res => {
|
success: res => {
|
||||||
|
|
|
||||||
|
|
@ -46,21 +46,14 @@
|
||||||
}
|
}
|
||||||
var ext = this.file_ext(newD);
|
var ext = this.file_ext(newD);
|
||||||
if (ext == 'SVG') {
|
if (ext == 'SVG') {
|
||||||
uni.request({
|
this.calltxt({
|
||||||
url: this.file_stor(newD),
|
url: this.file_stor(newD),
|
||||||
dataType: 'text',
|
}).then(res => {
|
||||||
method: 'GET',
|
this.type = 'svg';
|
||||||
fail: res => {
|
this.srcdata = this.svg2bg(res);
|
||||||
res._url = url;
|
}).catch(err => {
|
||||||
this.uperr("h5.loadsvg.fail", res);
|
err._url = url;
|
||||||
return reject({
|
this.uperr("h5.loadsvg.fail", err);
|
||||||
errmsg: res.errMsg
|
|
||||||
});
|
|
||||||
},
|
|
||||||
success: res => {
|
|
||||||
this.type = 'svg';
|
|
||||||
this.srcdata = this.svg2bg(res.data);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.type = 'img';
|
this.type = 'img';
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="_title">{{title}}</view>
|
<view class="_title">{{title}}</view>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<view class="_right" v-if="right" v-html="right"></view>
|
<view class="_right txt-wl" v-if="right" v-html="right"></view>
|
||||||
<view class="_reddot" v-if="reddot">{{reddot>99?'99+':reddot}}</view>
|
<view class="_reddot" v-if="reddot">{{reddot>99?'99+':reddot}}</view>
|
||||||
<view class="_more" v-if="more"></view>
|
<view class="_more" v-if="more"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -39,12 +39,13 @@
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
min-width: 7em; */
|
min-width: 7em; */
|
||||||
line-height: 1.1em;
|
line-height: 1.1em;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
._list>._right {
|
._list>._right {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 100;
|
|
||||||
margin: 0 1em;
|
margin: 0 1em;
|
||||||
line-height: 1.2em;
|
line-height: 1.2em;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
virtualHost: true
|
virtualHost: true
|
||||||
},
|
},
|
||||||
behaviors: ['uni://form-field-group'],
|
behaviors: ['uni://form-field-group'],
|
||||||
emits: ['change', 'update:modelValue', 'focus', 'blur', 'linechange'],
|
emits: ['change', 'update:modelValue', 'focus', 'blur', 'linechange', 'input'],
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
type: String
|
type: String
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
totaltxt: '0字',
|
totaltxt: '0字',
|
||||||
cursor:0
|
cursor: 0
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {},
|
watch: {},
|
||||||
|
|
@ -100,9 +100,8 @@
|
||||||
txt = e.data;
|
txt = e.data;
|
||||||
this.total(txt);
|
this.total(txt);
|
||||||
this.$emit('update:modelValue', txt);
|
this.$emit('update:modelValue', txt);
|
||||||
this.$emit('change', {
|
this.$emit('input', {
|
||||||
name: this.name,
|
name: this.name,
|
||||||
from: 'input',
|
|
||||||
value: txt
|
value: txt
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -133,7 +132,7 @@
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
max-height:80vh;
|
max-height: 50vh;
|
||||||
/* 解决微信覆盖bug */
|
/* 解决微信覆盖bug */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<template>
|
||||||
|
<view v-for="(item,index) in sem" :key="index" class="flex1" @tap="clkitem(index)">
|
||||||
|
<view :class="numclass">
|
||||||
|
<ciy-shownum :value="item.num" :unit="item.unit"></ciy-shownum>
|
||||||
|
</view>
|
||||||
|
<view :class="nameclass">{{item.name}}</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
emits: ['change', 'update:modelValue'],
|
||||||
|
props: {
|
||||||
|
sem: {
|
||||||
|
type: [Array],
|
||||||
|
default: []
|
||||||
|
},
|
||||||
|
numclass: {
|
||||||
|
type: [String],
|
||||||
|
default: 'txt-lgg'
|
||||||
|
},
|
||||||
|
nameclass: {
|
||||||
|
type: [String],
|
||||||
|
default: 'txt-sm py2'
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
computed: {},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
clkitem(idx) {
|
||||||
|
if (this.sem[idx].url)
|
||||||
|
this.gourl(this.sem[idx].url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
|
|
@ -5,13 +5,14 @@
|
||||||
<view class="_icon _photo"></view>
|
<view class="_icon _photo"></view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-gesture class="_pimg" v-for="(item,index) in tvalue.imgs" :key="index" :style="{'display':'block','width':showwh}" @toleft="toleft(index)" @toright="toright(index)">
|
<ciy-gesture class="_pimg" v-for="(item,index) in tvalue.imgs" :key="index" :style="{'display':'block','width':showwh}" @toleft="toleft(index)" @toright="toright(index)">
|
||||||
<view class="_del" :data-idx="index" @tap="photo_delone"></view>
|
<view v-if="!disabled" class="_del" :data-idx="index" @tap="photo_delone"></view>
|
||||||
<image v-if="isimg(item)" :src="file_stor(item, '?50')" @tap="preview(index)" mode="widthFix" style="display:block;"></image>
|
<image v-if="isimg(item)" :src="file_stor(item, '?50')" @tap="preview(index)" mode="widthFix" style="display:block;"></image>
|
||||||
<video v-else-if="isvideo(item)" :id="'video' + index" :src="file_stor(item)" controls @tap="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:showwh,height:showwh}"></video>
|
<video v-else-if="isvideo(item)" :id="'video' + index" :src="file_stor(item)" controls @tap="fullvideo('video' + index)" :show-fullscreen-btn="false" :style="{width:showwh,height:showwh}"></video>
|
||||||
<view v-else class="_file">{{file_ext(item)}}</view>
|
<view v-else class="_file">{{file_ext(item)}}</view>
|
||||||
</ciy-gesture>
|
</ciy-gesture>
|
||||||
<view class="_tip">{{tip}}</view>
|
<view class="_tip">{{tip}}</view>
|
||||||
<canvas type="2d" id="canvas" :style="{'width':cvwidth+'px','height':cvheight+'px','top':-cvheight+'px'}" style="position:fixed;z-index:-999;left:100vw;"></canvas>
|
<canvas type="2d" :canvas-id="cvid" :id="cvid" :style="{'width':cvwidth+'px','height':cvheight+'px','top':-cvheight + 'px'}" :width="cvwidth" :height="cvheight" style="position:fixed;z-index:-999;left:100vw;"></canvas>
|
||||||
|
<!-- <canvas type="2d" :canvas-id="cvid" :id="cvid" :style="{'width':cvwidth+'px','height':cvheight+'px','top':'2px'}" :width="cvwidth" :height="cvheight" style="position:fixed;z-index:999;left:2px;border:2px solid #ff0000"></canvas> -->
|
||||||
</view>
|
</view>
|
||||||
<view v-if="showrecam" :style="{top:header_height+'px'}" style="z-index:50005;position: fixed;left:0;right:0;bottom:0;background:linear-gradient(327deg,var(--bg1),var(--man3))">
|
<view v-if="showrecam" :style="{top:header_height+'px'}" style="z-index:50005;position: fixed;left:0;right:0;bottom:0;background:linear-gradient(327deg,var(--bg1),var(--man3))">
|
||||||
<image v-if="cammaskpng" :src="file_stor(cammaskpng)" class="abs t0 l0" :style="{pointerEvents: 'none',zIndex:50006,opacity:0.8,width: '100%', height: cameraheight + 'vw'}"></image>
|
<image v-if="cammaskpng" :src="file_stor(cammaskpng)" class="abs t0 l0" :style="{pointerEvents: 'none',zIndex:50006,opacity:0.8,width: '100%', height: cameraheight + 'vw'}"></image>
|
||||||
|
|
@ -103,7 +104,7 @@
|
||||||
},
|
},
|
||||||
stor: {
|
stor: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '/'
|
default: ''
|
||||||
},
|
},
|
||||||
imgwidth: {
|
imgwidth: {
|
||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
|
|
@ -119,7 +120,7 @@
|
||||||
},
|
},
|
||||||
zipjpg: {
|
zipjpg: {
|
||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
default: 0.7
|
default: 70
|
||||||
},
|
},
|
||||||
waterfont: {
|
waterfont: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -172,8 +173,9 @@
|
||||||
cameraheight: '141.4',
|
cameraheight: '141.4',
|
||||||
recamrange: [],
|
recamrange: [],
|
||||||
recamimgs: [],
|
recamimgs: [],
|
||||||
cvwidth: 0,
|
cvid: '',
|
||||||
cvheight: 0
|
cvwidth: 88,
|
||||||
|
cvheight: 88
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -242,6 +244,7 @@
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
var app = getApp();
|
var app = getApp();
|
||||||
|
this.cvid = 'offcanvas_' + parseInt(Math.random() * 1000000);
|
||||||
this.header_height = app.globalData._header_statusbar_height;
|
this.header_height = app.globalData._header_statusbar_height;
|
||||||
this.recamrange.push({
|
this.recamrange.push({
|
||||||
id: '100',
|
id: '100',
|
||||||
|
|
@ -455,9 +458,9 @@
|
||||||
this.showrecam = true;
|
this.showrecam = true;
|
||||||
},
|
},
|
||||||
async vcamera(b) {
|
async vcamera(b) {
|
||||||
if (!uni.chooseMedia) {
|
// #ifdef H5 || APP-PLUS
|
||||||
return this.vh5();
|
return this.vh5(b, ['camera']);
|
||||||
}
|
// #endif
|
||||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||||
|
|
@ -481,9 +484,9 @@
|
||||||
this.upfiles(retchoose.tempFiles, 'camera');
|
this.upfiles(retchoose.tempFiles, 'camera');
|
||||||
},
|
},
|
||||||
async valbum(b) {
|
async valbum(b) {
|
||||||
if (!uni.chooseMedia) {
|
// #ifdef H5 || APP-PLUS
|
||||||
return this.vh5();
|
return this.vh5(b, ['album']);
|
||||||
}
|
// #endif
|
||||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||||
|
|
@ -506,9 +509,9 @@
|
||||||
this.upfiles(retchoose.tempFiles, 'album');
|
this.upfiles(retchoose.tempFiles, 'album');
|
||||||
},
|
},
|
||||||
async vmessage(b) {
|
async vmessage(b) {
|
||||||
if (!uni.chooseMessageFile) {
|
// #ifdef H5 || APP-PLUS
|
||||||
return this.vh5();
|
return this.vh5(b, ['album']);
|
||||||
}
|
// #endif
|
||||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||||
|
|
@ -533,14 +536,14 @@
|
||||||
return console.warn('chooseMessageFile', err);
|
return console.warn('chooseMessageFile', err);
|
||||||
this.upfiles(retchoose.tempFiles, 'message');
|
this.upfiles(retchoose.tempFiles, 'message');
|
||||||
},
|
},
|
||||||
async vh5(b) {
|
async vh5(b, source) {
|
||||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||||
var opt = {};
|
var opt = {};
|
||||||
opt.count = count;
|
opt.count = count;
|
||||||
opt.sizeType = ['original', 'compressed'];
|
opt.sizeType = ['compressed']; //'original',
|
||||||
opt.sourceType = ['camera', 'album'];
|
opt.sourceType = source;
|
||||||
var [err, retchoose] = await this.go(uni.chooseImage(opt));
|
var [err, retchoose] = await this.go(uni.chooseImage(opt));
|
||||||
if (err)
|
if (err)
|
||||||
return console.warn('chooseImage', err);
|
return console.warn('chooseImage', err);
|
||||||
|
|
@ -553,18 +556,24 @@
|
||||||
this.tip = this.lang('upload.tip') + ' 0/' + this.upcount;
|
this.tip = this.lang('upload.tip') + ' 0/' + this.upcount;
|
||||||
this.upidx = 0;
|
this.upidx = 0;
|
||||||
var opn = {};
|
var opn = {};
|
||||||
//opn.canvasid = 'canvas';
|
opn.offcanvas = {
|
||||||
|
id: this.cvid,
|
||||||
|
dom: this
|
||||||
|
};
|
||||||
opn.post = {
|
opn.post = {
|
||||||
from: from
|
from: from
|
||||||
};
|
};
|
||||||
opn.basepath = this.path;
|
opn.basepath = this.path;
|
||||||
opn.saas = this.saas;
|
opn.saas = this.saas;
|
||||||
opn.stor = this.stor;
|
if (this.stor)
|
||||||
|
opn.stor = this.stor;
|
||||||
|
else
|
||||||
|
opn.stor = app.globalData.stordefault;
|
||||||
opn.action = this.action;
|
opn.action = this.action;
|
||||||
opn.maxkb = this.toint(this.maxkb);
|
opn.maxkb = this.toint(this.maxkb);
|
||||||
opn.imgwidth = this.toint(this.imgwidth);
|
opn.imgwidth = this.toint(this.imgwidth);
|
||||||
opn.imgheight = this.toint(this.imgheight);
|
opn.imgheight = this.toint(this.imgheight);
|
||||||
opn.zipjpg = this.tofloat(this.zipjpg);
|
opn.zipjpg = this.toint(this.zipjpg);
|
||||||
opn.watertext = this.watertext;
|
opn.watertext = this.watertext;
|
||||||
opn.watertype = this.watertype;
|
opn.watertype = this.watertype;
|
||||||
opn.waterpadding = this.toint(this.waterpadding);
|
opn.waterpadding = this.toint(this.waterpadding);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
<template>
|
||||||
|
<text :style="ciystyle" v-if="user>0">
|
||||||
|
<text style="font-size:0.7em;" v-if="!usrinfo" @tap.stop="getname">No.</text>
|
||||||
|
<text @tap.stop="getname">{{showtxt}}</text>
|
||||||
|
<button class="btn def smm" style="margin-left:1em;" @tap.stop="showinfo">成员详情</button>
|
||||||
|
</text>
|
||||||
|
<text :style="ciystyle" v-else>
|
||||||
|
<text style="color:var(--bg6)">暂无</text>
|
||||||
|
</text>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
//支持本地缓存,自动翻译
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
user: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: 0
|
||||||
|
},
|
||||||
|
ciystyle: {
|
||||||
|
type: [String, Object],
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
usrinfo: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
computed: {
|
||||||
|
showtxt() {
|
||||||
|
if (this.usrinfo)
|
||||||
|
return this.usrinfo.name;
|
||||||
|
return this.user;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.usrinfo = this.getstorage('d' + this.user);
|
||||||
|
if (!this.usrinfo)
|
||||||
|
this.getuserinfo();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getuserinfo() {
|
||||||
|
if (this.usrinfo) {
|
||||||
|
if (this.usrinfo._times > this.tostamp())
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const app = getApp();
|
||||||
|
app.globalData.mqfunc.push({
|
||||||
|
name: 'userinfo_' + this.user,
|
||||||
|
func: 'dao.userinfo_get',
|
||||||
|
data: {
|
||||||
|
id: this.user,
|
||||||
|
},
|
||||||
|
callback: retjson => {
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return;
|
||||||
|
retjson.user._times = this.tostamp() + 60;
|
||||||
|
this.setstorage('d' + this.user, retjson.user);
|
||||||
|
this.usrinfo = retjson.user;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async getname() {
|
||||||
|
this.getuserinfo();
|
||||||
|
},
|
||||||
|
async showinfo() {
|
||||||
|
await this.getuserinfo();
|
||||||
|
this.gourl('/pages/me/user_show', '', this.usrinfo, 'userinfo');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -27,5 +27,15 @@
|
||||||
"packages": ["pages/demo"],
|
"packages": ["pages/demo"],
|
||||||
"network": "all"
|
"network": "all"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"condition" : {
|
||||||
|
"current": 0,
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"name": "custompage",
|
||||||
|
"path": "/pages/demo/comform/upload",
|
||||||
|
"query": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -16,6 +16,12 @@
|
||||||
"autoclose" : true,
|
"autoclose" : true,
|
||||||
"delay" : 0
|
"delay" : 0
|
||||||
},
|
},
|
||||||
|
"permissions" : {
|
||||||
|
"plus" : {
|
||||||
|
"description" : "访问系统文件",
|
||||||
|
"features" : [ "io" ]
|
||||||
|
}
|
||||||
|
},
|
||||||
/* 模块配置 */
|
/* 模块配置 */
|
||||||
"modules" : {
|
"modules" : {
|
||||||
"Bluetooth" : {},
|
"Bluetooth" : {},
|
||||||
|
|
@ -40,6 +46,8 @@
|
||||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||||
|
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -12,102 +12,21 @@
|
||||||
"enablePullDownRefresh": true
|
"enablePullDownRefresh": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash_bank"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash_charge"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash_ie",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash_in",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_cash_out",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_info"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_invoice"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_invoicetitle"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_invoice_history",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_passchange"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_pnt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_pnt_buy",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_pnt_record",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_problechat"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_problem",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_qrcode"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_real"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_shipaddr"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/me_suggest"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/paper"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/part"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/main/psection",
|
|
||||||
"style": {
|
|
||||||
"enablePullDownRefresh": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "pages/pub/camera"
|
"path": "pages/pub/camera"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/pub/paper"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/pub/part"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/pub/psection",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/pub/web",
|
"path": "pages/pub/web",
|
||||||
"style": {
|
"style": {
|
||||||
|
|
@ -251,6 +170,9 @@
|
||||||
{
|
{
|
||||||
"path": "comview/ani"
|
"path": "comview/ani"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "comview/aniheight"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "comview/anipop"
|
"path": "comview/anipop"
|
||||||
},
|
},
|
||||||
|
|
@ -293,6 +215,9 @@
|
||||||
{
|
{
|
||||||
"path": "comview/segment"
|
"path": "comview/segment"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "comview/showemoney"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "comview/showimgs"
|
"path": "comview/showimgs"
|
||||||
},
|
},
|
||||||
|
|
@ -375,6 +300,107 @@
|
||||||
"path": "test"
|
"path": "test"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pages/me",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "cashie_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "cashin_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "cashoe_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "cashout_cash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "cashout_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "cash_charge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "invoicetitle"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "invoice_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "invoicing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "me_bank_info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pnt_buylst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pnt_buynow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pnt_lst",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "problem_chat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "problem_pub",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "safe_ccub"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "safe_password"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "safe_real"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "share_qrcode"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "suggest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "user_bank"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "user_info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "user_shipaddr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "user_show"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<ciy-header title="组件生命周期事件"></ciy-header>
|
<ciy-header title="组件生命周期事件"></ciy-header>
|
||||||
<ciy-test></ciy-test>
|
<ciy-test></ciy-test>
|
||||||
<view class="txt-lggg txt-center py4">
|
<view class="txt-lggg txt-center py4">
|
||||||
<view @tap="gourl" data-url="/pages/main/paper?id=1">跳转测试</view>
|
<view @tap="gourl" data-url="/pages/pub/paper?id=1">跳转测试</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-card">
|
<view class="ciy-card">
|
||||||
<view class="title">H5页面</view>
|
<view class="title">H5页面</view>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
<view>
|
<view>
|
||||||
<ciy-selmap v-model:lat="lat" v-model:lng="lng" name="ciy4" @change="chglog('change', $event)">
|
<ciy-selmap v-model:lat="lat" v-model:lng="lng" name="ciy4" @change="chglog('change', $event)">
|
||||||
<template v-slot:show="{data}">
|
<template v-slot:show="{data}">
|
||||||
{{data.value.lat}},{{data.value.lng}}
|
{{data.value.lat/data.bet}},{{data.value.lng/data.bet}}
|
||||||
</template>
|
</template>
|
||||||
</ciy-selmap>
|
</ciy-selmap>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,13 @@
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>v-model绑定</label>
|
<label>v-model绑定</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selpage name="ciy1" page="/pages/main/me_shipaddr" :morevalue="formmore" v-model="formvalue" @change="chglog('change', $event)"></ciy-selpage>
|
<ciy-selpage name="ciy1" page="/pages/me/user_shipaddr" :morevalue="formmore" v-model="formvalue" @change="chglog('change', $event)"></ciy-selpage>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>value绑定</label>
|
<label>value绑定</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selpage left hasmore initevent page="/pages/main/me_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy2" @change="chglog('change', $event)"></ciy-selpage>
|
<ciy-selpage left hasmore initevent page="/pages/me/user_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy2" @change="chglog('change', $event)"></ciy-selpage>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
|
|
@ -32,13 +32,13 @@
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>显示样式</label>
|
<label>显示样式</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selpage :ciystyle="{color:'#cc0000'}" page="/pages/main/me_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy4" @change="chglog('change', $event)"></ciy-selpage>
|
<ciy-selpage :ciystyle="{color:'#cc0000'}" page="/pages/me/user_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy4" @change="chglog('change', $event)"></ciy-selpage>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>自定义</label>
|
<label>自定义</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selpage page="/pages/main/me_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy5" @change="chglog('change', $event)">
|
<ciy-selpage page="/pages/me/user_shipaddr" :morevalue="formmore" :value="formvalue" name="ciy5" @change="chglog('change', $event)">
|
||||||
<template v-slot:default="{data}">
|
<template v-slot:default="{data}">
|
||||||
{{data.name}}<br/>
|
{{data.name}}<br/>
|
||||||
{{data.addr}}<br/>
|
{{data.addr}}<br/>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
<view class="content">
|
<view class="content">
|
||||||
自由指定文件来源拍摄、相册、会话。<br/>
|
自由指定文件来源拍摄、相册、会话。<br/>
|
||||||
支持文件大小限制、尺寸压缩、水印、指定云、指定API。<br />
|
支持文件大小限制、尺寸压缩、水印、指定云、指定API。<br />
|
||||||
|
支持S3协议,亚马逊、Cloudflare、腾讯COS、阿里云OSS等。<br />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<form @submit="submitlog">
|
<form @submit="submitlog">
|
||||||
|
|
@ -48,33 +49,52 @@
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>图像压缩</label>
|
<label>图像压缩</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload name="ciy7" path="demo" zipjpg="0.6" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload name="ciy7" path="demo" zipjpg="60" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>右下文字</label>
|
<label>右下文字</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload name="ciy8" path="demo" zipjpg="0.6" watertext="水电费|第二行" waterfont="36px Arial" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload name="ciy8" path="demo" zipjpg="60" watertext="水电费|第二行" waterfont="36px Arial" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>满屏水印</label>
|
<label>满屏水印</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload name="ciy9" path="demo" zipjpg="0.6" watertext="众产(杭州)科技有限公司" waterfont="36px Arial" watertype="full" waterpadding="10" waterangle="20" wateralpha="0.8" watercolors="#ff0000,#00ff00" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload name="ciy9" path="demo" zipjpg="60" watertext="众产(杭州)科技有限公司" waterfont="36px Arial" watertype="full" waterpadding="10" waterangle="20" wateralpha="0.8" watercolors="#ff0000,#00ff00" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>上传到云</label>
|
<label>上传到云存储 A</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload name="ciy10" path="demo" stor="A" zipjpg="0.6" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload left name="ciy10a" path="demo" stor="A" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>SaaS上传</label>
|
<label>上传到云存储 B</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload left name="ciy11" saas="s10224" path="demo" stor="/" zipjpg="0.6" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload left name="ciy10b" path="demo" stor="B" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>上传到云存储 C</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left name="ciy10c" path="demo" stor="C" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>上传到云存储 Z</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left name="ciy10z" path="demo" stor="Z" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>指定上传到本地</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left name="ciy11" saas="s10224" path="demo" stor="/" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>固定比例拍照</label>
|
<label>固定比例拍照</label>
|
||||||
<view>
|
<view>
|
||||||
|
|
@ -87,6 +107,7 @@
|
||||||
<ciy-upload name="ciy13" path="demo" imgwidth="1000" sourcetype="rehcam,album" @change="chglog('change', $event)"></ciy-upload>
|
<ciy-upload name="ciy13" path="demo" imgwidth="1000" sourcetype="rehcam,album" @change="chglog('change', $event)"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>禁用</label>
|
<label>禁用</label>
|
||||||
<view>
|
<view>
|
||||||
|
|
@ -130,9 +151,8 @@
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
<view class="prp">action</view>
|
<view class="prp">action</view>
|
||||||
<view class="tip">
|
<view class="tip">
|
||||||
http开头,指向绝对API。<br />
|
http开头,指向绝对API,点结尾。<br />
|
||||||
upload类路径[.微服务码],指向本服务器API。<br />
|
例如: https://xxx/upload.
|
||||||
jsnurl + 'z/?func=' + upload类路径 + '/upload.';
|
|
||||||
</view>
|
</view>
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
<view class="prp">sourcetype</view>
|
<view class="prp">sourcetype</view>
|
||||||
|
|
@ -142,7 +162,7 @@
|
||||||
camera 拍摄<br />
|
camera 拍摄<br />
|
||||||
album 从相册选择<br />
|
album 从相册选择<br />
|
||||||
message 从会话选择<br />
|
message 从会话选择<br />
|
||||||
rehcam 比例相机。<br />
|
rehcam 比例相机 (仅微信小程序)<br />
|
||||||
默认 camera,album,message
|
默认 camera,album,message
|
||||||
</view>
|
</view>
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,15 @@
|
||||||
自动微信登录注册,未登录则打开界面
|
自动微信登录注册,未登录则打开界面
|
||||||
</view>
|
</view>
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
<view class="fun">this.getauth(bmust)</view>
|
<view class="fun">this.getauth(type)</view>
|
||||||
<view class="tip">
|
<view class="tip">
|
||||||
调取登录状态<br />
|
调取登录状态<br />
|
||||||
bmust: true 强制打开登录界面(换号登录)
|
type: 空 静默登录(默认)
|
||||||
|
type: relogin 强制打开登录界面(换号登录)
|
||||||
|
type: info 需填写个人信息
|
||||||
|
type: real 需实名认证。前提info
|
||||||
|
type: bank 需填写银行。前提real
|
||||||
|
type: cciy 需有全球众识码。前提real
|
||||||
</view>
|
</view>
|
||||||
<button class="btn sm" @tap="demo">调用</button>
|
<button class="btn sm" @tap="demo">调用</button>
|
||||||
<button class="btn sm def" @tap="logout">登出</button>
|
<button class="btn sm def" @tap="logout">登出</button>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<ciy-showimgs :src="props.src" :label="props.label" :width="props.width" :height="props.height" :type="props.type" :mode="props.mode" :whpre="props.whpre"></ciy-showimgs>
|
<ciy-showimgs :src="props.src" :label="props.label" :width="props.width" :height="props.height" :type="props.type" :mode="props.mode"></ciy-showimgs>
|
||||||
<view class="ciy-card">
|
<view class="ciy-card">
|
||||||
<view class="title">属性</view>
|
<view class="title">属性</view>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
|
|
@ -52,12 +52,6 @@
|
||||||
,{id:'heightFix',name:'高度自适应'}
|
,{id:'heightFix',name:'高度自适应'}
|
||||||
,{id:'scaleToFill',name:'失真全显示'}
|
,{id:'scaleToFill',name:'失真全显示'}
|
||||||
]"></ciy-radio>
|
]"></ciy-radio>
|
||||||
<view class="hr"></view>
|
|
||||||
<view class="prp">whpre</view>
|
|
||||||
<view class="tip">
|
|
||||||
缩略图尺寸,?开始px。<br />
|
|
||||||
</view>
|
|
||||||
<ciy-input bb v-model="props.whpre" style="width:6em;"></ciy-input>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-card">
|
<view class="ciy-card">
|
||||||
|
|
@ -92,7 +86,6 @@
|
||||||
height: '5em',
|
height: '5em',
|
||||||
type: 'thumb',
|
type: 'thumb',
|
||||||
mode: 'aspectFill',
|
mode: 'aspectFill',
|
||||||
whpre: '?50',
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -10,131 +10,130 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-form-group">
|
<view class="ciy-form-group">
|
||||||
<input type="hidden" name="id" :value="pagedata.demo.id" style="display:none;" />
|
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label class="imp">默认标题</label>
|
<label class="imp">默认标题</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-input name="name" v-model="pagedata.demo.name"></ciy-input>
|
<ciy-input v-model="editdata.name"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>所属菜单</label>
|
<label>所属菜单</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-select :range="g.zc_menu" name="menuid" v-model="pagedata.demo.menuid"></ciy-select>
|
<ciy-select :range="g.zc_menu" v-model="editdata.menuid"></ciy-select>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>文件大小</label>
|
<label>文件大小</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="1024" unit="KB" name="filesize" v-model="pagedata.demo.filesize"></ciy-inputbet>
|
<ciy-inputbet bet="1024" unit="KB" v-model="editdata.filesize"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>长度</label>
|
<label>长度</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" name="metre" v-model="pagedata.demo.metre"></ciy-inputbet>
|
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" v-model="editdata.metre"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>贷款金额</label>
|
<label>贷款金额</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="1000000" unit="万元" name="bankmoney" v-model="pagedata.demo.bankmoney"></ciy-inputbet>
|
<ciy-inputbet bet="1000000" unit="万元" v-model="editdata.bankmoney"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>设置日期</label>
|
<label>设置日期</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputdatetime name="setdate" v-model="pagedata.demo.setdate"></ciy-inputdatetime>
|
<ciy-inputdatetime v-model="editdata.setdate"></ciy-inputdatetime>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>设置时间</label>
|
<label>设置时间</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputdatetime btime name="settimes" v-model="pagedata.demo.settimes"></ciy-inputdatetime>
|
<ciy-inputdatetime btime v-model="editdata.settimes"></ciy-inputdatetime>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>营业时间</label>
|
<label>营业时间</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputtimepoint bsec name="dayclock" v-model="pagedata.demo.dayclock"></ciy-inputtimepoint>
|
<ciy-inputtimepoint bsec v-model="editdata.dayclock"></ciy-inputtimepoint>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>文档</label>
|
<label>文档</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload num="5" filetype="all" imgwidth="1000" sourcetype="album,message" path="demo" name="downurl" v-model="pagedata.demo.downurl"></ciy-upload>
|
<ciy-upload num="5" filetype="all" imgwidth="1000" sourcetype="album,message" path="demo" v-model="editdata.downurl"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>头像</label>
|
<label>头像</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload imgwidth="600" imgheight="600" path="demo" name="avar" v-model="pagedata.demo.avar"></ciy-upload>
|
<ciy-upload imgwidth="600" imgheight="600" path="demo" v-model="editdata.avar"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>是否使用</label>
|
<label>是否使用</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selbool name="isuse" v-model="pagedata.demo.isuse"></ciy-selbool>
|
<ciy-selbool v-model="editdata.isuse"></ciy-selbool>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>是否开启</label>
|
<label>是否开启</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selbool y="开启" n="关闭" name="isopen" v-model="pagedata.demo.isopen"></ciy-selbool>
|
<ciy-selbool y="开启" n="关闭" v-model="editdata.isopen"></ciy-selbool>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>库存单位</label>
|
<label>库存单位</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputunitedit name="unit" v-model="pagedata.demo.unit"></ciy-inputunitedit>
|
<ciy-inputunitedit v-model="editdata.unit"></ciy-inputunitedit>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>单选状态</label>
|
<label>单选状态</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-radio left :range="g.auditstatus" name="sigstatus" v-model="pagedata.demo.sigstatus"></ciy-radio>
|
<ciy-radio left :range="g.auditstatus" v-model="editdata.sigstatus"></ciy-radio>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>多选状态</label>
|
<label>多选状态</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-checkbox itemright line :range="g.auditstatus" name="mauditstatus" v-model="pagedata.demo.mauditstatus"></ciy-checkbox>
|
<ciy-checkbox itemright line :range="g.auditstatus" v-model="editdata.mauditstatus"></ciy-checkbox>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>组织结构</label>
|
<label>组织结构</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selcas :range="g.zc_depart" name="prodcata" v-model="pagedata.demo.prodcata"></ciy-selcas>
|
<ciy-selcas :range="g.zc_depart" v-model="editdata.prodcata"></ciy-selcas>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>所在地区</label>
|
<label>所在地区</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selcas :range="g.ciy_arearpc" name="areacode" v-model="pagedata.demo.areacode"></ciy-selcas>
|
<ciy-selcas :range="g.ciy_arearpc" v-model="editdata.areacode"></ciy-selcas>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>认证情况</label>
|
<label>认证情况</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-checkbox bin left line :range="g.renzheng" name="renzheng" v-model="pagedata.demo.renzheng"></ciy-checkbox>
|
<ciy-checkbox bin left line :range="g.renzheng" v-model="editdata.renzheng"></ciy-checkbox>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>临时字典</label>
|
<label>临时字典</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-select :range="g.ppint" name="ppint" v-model="pagedata.demo.ppint"></ciy-select>
|
<ciy-select :range="g.ppint" v-model="editdata.ppint"></ciy-select>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>执行周期</label>
|
<label>执行周期</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputcyc name="npcyc" v-model="pagedata.demo.npcyc"></ciy-inputcyc>
|
<ciy-inputcyc v-model="editdata.npcyc"></ciy-inputcyc>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>执行用时</label>
|
<label>执行用时</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-input name="runsec" v-model="pagedata.demo.runsec"></ciy-input>
|
<ciy-input v-model="editdata.runsec"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view style="flex:none;">秒</view>
|
<view style="flex:none;">秒</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -142,80 +141,74 @@
|
||||||
<label>活动期数</label>
|
<label>活动期数</label>
|
||||||
<view class="flex flex-center" style="justify-content: flex-end;">
|
<view class="flex flex-center" style="justify-content: flex-end;">
|
||||||
第
|
第
|
||||||
<ciy-input :ciystyle="{width:'3em',margin:'0 0.5em',textAlign:'center',display:'inline-block'}" name="acttm" v-model="pagedata.demo.acttm"></ciy-input>
|
<ciy-input :ciystyle="{width:'3em',margin:'0 0.5em',textAlign:'center',display:'inline-block'}" v-model="editdata.acttm"></ciy-input>
|
||||||
期
|
期
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>活动花絮</label>
|
<label>活动花絮</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-upload num="9" imgwidth="1920" zipjpg="0.8" path="demo" name="imgs" v-model="pagedata.demo.imgs"></ciy-upload>
|
<ciy-upload num="9" imgwidth="1920" zipjpg="80" path="demo" v-model="editdata.imgs"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>吨位</label>
|
<label>吨位</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" name="ton" v-model="pagedata.demo.ton"></ciy-inputbet>
|
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" v-model="editdata.ton"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>单价</label>
|
<label>单价</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="100" unit="元" name="price" v-model="pagedata.demo.price"></ciy-inputbet>
|
<ciy-inputbet bet="100" unit="元" v-model="editdata.price"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>位置</label>
|
<label>位置</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-selmap name="loc" v-model:lng="pagedata.demo.lng" v-model:lat="pagedata.demo.lat"></ciy-selmap>
|
<ciy-selmap v-model:lng="editdata.lng" v-model:lat="editdata.lat"></ciy-selmap>
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>监管数量</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="nums" v-model="pagedata.demo.nums"></ciy-input>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>百分比</label>
|
<label>百分比</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="100" unit="%" name="pct" v-model="pagedata.demo.pct"></ciy-inputbet>
|
<ciy-inputbet bet="100" unit="%" v-model="editdata.pct"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>链接</label>
|
<label>链接</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-input name="url" v-model="pagedata.demo.url"></ciy-input>
|
<ciy-input v-model="editdata.url"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>体重</label>
|
<label>体重</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="1000" unit="公斤" name="weightg" v-model="pagedata.demo.weightg"></ciy-inputbet>
|
<ciy-inputbet bet="1000" unit="公斤" v-model="editdata.weightg"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>耳温</label>
|
<label>耳温</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-inputbet bet="1000" unit="℃" name="eartmpr" v-model="pagedata.demo.eartmpr"></ciy-inputbet>
|
<ciy-inputbet bet="1000" unit="℃" v-model="editdata.eartmpr"></ciy-inputbet>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>身份证号</label>
|
<label>身份证号</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-input name="idcard" v-model="pagedata.demo.idcard"></ciy-input>
|
<ciy-input v-model="editdata.idcard"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
<view class="ciy-form">
|
||||||
<label>介绍</label>
|
<label>介绍</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-textarea name="content" v-model="pagedata.demo.content"></ciy-textarea>
|
<ciy-textarea v-model="editdata.content"></ciy-textarea>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="ciy-form v">
|
<!-- <view class="ciy-form v">
|
||||||
<label>富文本</label>
|
<label>富文本</label>
|
||||||
<view>
|
<view>
|
||||||
<ciy-mdedit name="md" v-model="pagedata.demo.md"></ciy-mdedit>
|
<ciy-mdedit v-model="editdata.md"></ciy-mdedit>
|
||||||
</view>
|
</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -236,47 +229,36 @@
|
||||||
return {}
|
return {}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
if (!this.pagedata.demo)
|
console.log(this.pagedata); //gourl函数可带出来该行数据
|
||||||
return this.alert('不能直接访问,请重新进入'); //独立进入写后端函数获取数据
|
|
||||||
this.getdata();
|
this.getdata();
|
||||||
},
|
},
|
||||||
watch: {},
|
watch: {},
|
||||||
computed: {},
|
computed: {},
|
||||||
methods: {
|
methods: {
|
||||||
async getdata() {
|
async getdata() {
|
||||||
var act = 'edit';
|
|
||||||
var page = getApp().getpage(1);
|
|
||||||
if (page && page.init._editonce)
|
|
||||||
act = '';
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'demo/demo.getdata',
|
func: 'demo/demo.getdata',
|
||||||
data: {
|
//data: this.opn //callfunc会自动带上opn数据
|
||||||
...this.opn,
|
|
||||||
act: act
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.init = retjson;
|
return this.init = retjson;
|
||||||
if (act == 'edit') {
|
this.g.zc_menu = retjson.zc_menu; //因列表增量加载,需要全量获取列表字典
|
||||||
page.init._editonce = true;
|
// this.g.ppint = retjson.ppint; //字典从列表全量获得,如果为从列表进入,则需后台获取
|
||||||
page.g.zc_menu = retjson.zc_menu;
|
// this.g.renzheng = retjson.renzheng; //字典从列表全量获得,如果为从列表进入,则需后台获取
|
||||||
this.g.zc_menu = retjson.zc_menu;
|
this.editdata = retjson.data;
|
||||||
}
|
|
||||||
this.init = this.objdeepmerge(this.init, retjson);
|
this.init = this.objdeepmerge(this.init, retjson);
|
||||||
},
|
},
|
||||||
async edited() {
|
async edited() {
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'demo/demo.update',
|
func: 'demo/demo.update',
|
||||||
data: {
|
data: this.editdata
|
||||||
...this.pagedata.demo
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -284,6 +266,7 @@
|
||||||
var page = getApp().getpage(1);
|
var page = getApp().getpage(1);
|
||||||
if (page?.init?.list)
|
if (page?.init?.list)
|
||||||
this.objtolist(page.init.list, retjson.data);
|
this.objtolist(page.init.list, retjson.data);
|
||||||
|
await this.toast('提交成功');
|
||||||
// const eventChannel = this.getOpenerEventChannel();
|
// const eventChannel = this.getOpenerEventChannel();
|
||||||
// eventChannel.emit('writedata', retjson.data);
|
// eventChannel.emit('writedata', retjson.data);
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
<ciy-segment :lis="init.once.lis" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
<ciy-segment :lis="init.lis" all="全部" @change="segment_change"></ciy-segment>
|
||||||
<ciy-query ref="query" :gdict="g" :qry="init.once.input" @confirm="query_confirm">
|
<ciy-query ref="query" :gdict="g" :qry="init.searchinput" @confirm="query_confirm">
|
||||||
<template v-slot="{itm}">
|
<template v-slot="{itm}">
|
||||||
<ciy-input :name="itm.item.form" v-model="itm.data[itm.item.form]"></ciy-input>
|
<ciy-input :name="itm.item.form" v-model="itm.data[itm.item.form]"></ciy-input>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -65,7 +65,8 @@
|
||||||
<view>{{totimepoint(item.dayclock, true)}}</view>
|
<view>{{totimepoint(item.dayclock, true)}}</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-showimgs label="文档" :src="item.downurl"></ciy-showimgs>
|
<ciy-showimgs label="文档" :src="item.downurl"></ciy-showimgs>
|
||||||
<ciy-showimgs :src="item.avar" width="20em" mode="widthFix"></ciy-showimgs>
|
<ciy-showimgs :src="item.avar" width="5em" mode="widthFix"></ciy-showimgs>
|
||||||
|
<ciy-svgimg v-if="item.avar" :src="item.avar"></ciy-svgimg>
|
||||||
|
|
||||||
<view class="l2">
|
<view class="l2">
|
||||||
<label>是否使用</label>
|
<label>是否使用</label>
|
||||||
|
|
@ -137,10 +138,6 @@
|
||||||
<view><text style="text-decoration: underline;" @tap.stop="goloc(item.lat, item.lng)">查看位置</text>
|
<view><text style="text-decoration: underline;" @tap.stop="goloc(item.lat, item.lng)">查看位置</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="l2">
|
|
||||||
<label>监管数量</label>
|
|
||||||
<view>{{tofix(item.nums)}}</view>
|
|
||||||
</view>
|
|
||||||
<view class="l2">
|
<view class="l2">
|
||||||
<label>百分比</label>
|
<label>百分比</label>
|
||||||
<view>{{tofix(item.pct/100, 2)}}%</view>
|
<view>{{tofix(item.pct/100, 2)}}%</view>
|
||||||
|
|
@ -167,7 +164,12 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
||||||
<view class="ciy-add" @tap="edit()"></view>
|
<view class="ciy-add" @tap="edit({
|
||||||
|
data: {
|
||||||
|
id: 0,
|
||||||
|
_idx: -1
|
||||||
|
}
|
||||||
|
})"></view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -177,10 +179,7 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.load_ciydict(this.file_stor('/dict/ciy_arearpc.js')).then(json => {
|
this.load_ciydict(this.file_stor('/dict/ciy_arearpc.js')).then(json => {
|
||||||
|
|
@ -206,18 +205,14 @@
|
||||||
computed: {},
|
computed: {},
|
||||||
methods: {
|
methods: {
|
||||||
async getlist() {
|
async getlist() {
|
||||||
//await this.getauth();
|
|
||||||
if(this.me.id == 0)
|
|
||||||
return uni.navigateBack();
|
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
this.pagepost.once = !this.init.once;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
|
this.pagepost.once = !this.init.once;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'demo/demo.list',
|
func: 'demo/demo.list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
|
|
@ -229,9 +224,10 @@
|
||||||
this.init.list = [];
|
this.init.list = [];
|
||||||
this.init = this.objdeepmerge(this.init, retjson);
|
this.init = this.objdeepmerge(this.init, retjson);
|
||||||
if (retjson.once) {
|
if (retjson.once) {
|
||||||
this.init.once.lis = [...this.g.auditstatus];
|
this.init.lis = [...this.g.auditstatus];
|
||||||
this.g.zc_depart = retjson.once.zc_depart;
|
this.g.zc_depart = retjson.zc_depart;
|
||||||
this.g.ppint = retjson.once.ppint;
|
this.g.ppint = retjson.ppint;
|
||||||
|
this.g.renzheng = retjson.renzheng;
|
||||||
}
|
}
|
||||||
this.getrefs('query').then(ref => {
|
this.getrefs('query').then(ref => {
|
||||||
ref.setdata(retjson.where);
|
ref.setdata(retjson.where);
|
||||||
|
|
@ -239,7 +235,8 @@
|
||||||
if (retjson.list.length < retjson.pagecount)
|
if (retjson.list.length < retjson.pagecount)
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
segment_change() {
|
segment_change(e) {
|
||||||
|
this.pagepost.liid = e.value.id;
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
uni.pageScrollTo({
|
uni.pageScrollTo({
|
||||||
|
|
@ -257,19 +254,12 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async edit(item) {
|
async edit(item) {
|
||||||
item = item || {
|
|
||||||
url: '',
|
|
||||||
data: {
|
|
||||||
id: 0,
|
|
||||||
_idx: -1
|
|
||||||
}
|
|
||||||
};
|
|
||||||
this.gourl('demo_edit?id=' + item.data.id, 'navigate', item.data, 'demo');
|
this.gourl('demo_edit?id=' + item.data.id, 'navigate', item.data, 'demo');
|
||||||
},
|
},
|
||||||
async del(item) {
|
async del(item) {
|
||||||
if (await this.askmsg('是否删除?', '删除') != 'ok')
|
if (await this.askmsg('是否删除?', '删除') != 'ok')
|
||||||
return;
|
return;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'demo/demo.del',
|
func: 'demo/demo.del',
|
||||||
data: {
|
data: {
|
||||||
id: item.data.id
|
id: item.data.id
|
||||||
|
|
@ -300,7 +290,7 @@
|
||||||
}]);
|
}]);
|
||||||
if (msg.btn == 'cancel')
|
if (msg.btn == 'cancel')
|
||||||
return;
|
return;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'demo/demo.audit',
|
func: 'demo/demo.audit',
|
||||||
data: {
|
data: {
|
||||||
id: item.data.id,
|
id: item.data.id,
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<view class="maincard" style="margin-top: -2.5em;">
|
<view class="maincard" style="margin-top: -2.5em;">
|
||||||
<view class="flex flex-center">
|
<view class="flex flex-center">
|
||||||
<view class="nick" @tap="gourl" data-url="$/pages/main/me_info">{{me.name?me.name:'登录/注册'}}</view>
|
<view class="nick" @tap="gourl" data-url="$/pages/me/user_info">{{me.name?me.name:'登录/注册'}}</view>
|
||||||
<view class="icon zy" style="margin-left:1em;" v-if="showbalance" @tap="getbalance(2)"></view>
|
<view class="icon zy" style="margin-left:1em;" v-if="showbalance" @tap="getbalance(2)"></view>
|
||||||
<view class="icon by" style="margin-left:1em;" v-else @tap="getbalance(1)"></view>
|
<view class="icon by" style="margin-left:1em;" v-else @tap="getbalance(1)"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -168,11 +168,15 @@
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
version: '',
|
||||||
showbalance: false,
|
showbalance: false,
|
||||||
ciysvg: '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M987.136 384.512C919.552 131.584 668.16-22.528 415.232 27.136c219.648-41.984 434.176 79.36 488.96 283.136 57.344 214.016-82.944 437.76-313.344 499.2-49.664 13.312-78.848 64-65.536 113.152 13.312 49.664 64 78.848 113.152 65.536 263.168-70.144 418.816-340.48 348.672-603.648zM116.224 713.216C58.88 499.2 199.68 275.456 430.08 214.016c49.664-13.312 78.848-64 65.536-113.152C482.816 51.2 432.128 21.504 382.464 34.816c-263.68 70.656-419.84 340.992-349.184 604.16 67.584 252.928 319.488 407.04 571.392 356.864-219.648 42.496-433.664-78.848-488.448-282.624z m93.184-203.776L291.84 449.536c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z m516.096-60.416L808.96 509.952l-149.504-229.888-149.504 229.376 82.432-59.904c44.544-32.256 90.112-32.256 133.12-0.512z m-366.08 291.84L441.856 680.96c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z" fill="#56a4ef"></path></svg>',
|
ciysvg: '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M987.136 384.512C919.552 131.584 668.16-22.528 415.232 27.136c219.648-41.984 434.176 79.36 488.96 283.136 57.344 214.016-82.944 437.76-313.344 499.2-49.664 13.312-78.848 64-65.536 113.152 13.312 49.664 64 78.848 113.152 65.536 263.168-70.144 418.816-340.48 348.672-603.648zM116.224 713.216C58.88 499.2 199.68 275.456 430.08 214.016c49.664-13.312 78.848-64 65.536-113.152C482.816 51.2 432.128 21.504 382.464 34.816c-263.68 70.656-419.84 340.992-349.184 604.16 67.584 252.928 319.488 407.04 571.392 356.864-219.648 42.496-433.664-78.848-488.448-282.624z m93.184-203.776L291.84 449.536c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z m516.096-60.416L808.96 509.952l-149.504-229.888-149.504 229.376 82.432-59.904c44.544-32.256 90.112-32.256 133.12-0.512z m-366.08 291.84L441.856 680.96c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z" fill="#56a4ef"></path></svg>',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {},
|
onLoad() {
|
||||||
|
var app = getApp();
|
||||||
|
this.version = app.globalData._version;
|
||||||
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.getinit();
|
this.getinit();
|
||||||
},
|
},
|
||||||
|
|
@ -184,7 +188,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.balance_get',
|
func: 'me.balance_get',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
|
|
@ -202,7 +206,7 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
relogin() {
|
relogin() {
|
||||||
this.getauth(true);
|
this.getauth('relogin');
|
||||||
},
|
},
|
||||||
logout() {
|
logout() {
|
||||||
this.removestorage('me');
|
this.removestorage('me');
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
}, {
|
}, {
|
||||||
ok: true,
|
ok: true,
|
||||||
url: 'comform/upload',
|
url: 'comform/upload',
|
||||||
title: '图片多选器'
|
title: '多文件上传选择器'
|
||||||
}, {
|
}, {
|
||||||
ok: true,
|
ok: true,
|
||||||
url: 'comform/selmap',
|
url: 'comform/selmap',
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
未登录返回{me:0}。<br />
|
未登录返回{me:0}。<br />
|
||||||
</view>
|
</view>
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
<view class="fun">async callajax({srv, func, cache, cachekey, loadhide, loadtxt, data})</view>
|
<view class="fun">async callfunc({srv, func, cache, cachekey, loadhide, loadtxt, data})</view>
|
||||||
<view class="tip">
|
<view class="tip">
|
||||||
服务端Ajax API请求,header带上token。<br />
|
服务端Ajax API请求,header带上token。<br />
|
||||||
自动保存新token,无感续期。<br />
|
自动保存新token,无感续期。<br />
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
func: 调用函数。<br />
|
func: 调用函数。<br />
|
||||||
http开头,指向到外部位置。<br />
|
http开头,指向到外部位置。<br />
|
||||||
包含?,jsnurl本地服务器下任意位置。<br />
|
包含?,jsnurl本地服务器下任意位置。<br />
|
||||||
否则,jsnurl+jsnajax+[类名.函数名]。<br />
|
否则,jsnurl+[类名.函数名]。<br />
|
||||||
cache: 0不缓存 >0 超过秒数请求<br />
|
cache: 0不缓存 >0 超过秒数请求<br />
|
||||||
cachekey: 指定缓存名,一般参数区分用。默认f_[func]<br />
|
cachekey: 指定缓存名,一般参数区分用。默认f_[func]<br />
|
||||||
loadhide: true隐藏加载中显示<br />
|
loadhide: true隐藏加载中显示<br />
|
||||||
|
|
@ -288,6 +288,7 @@
|
||||||
<view class="fun">isfloat0(num)</view>
|
<view class="fun">isfloat0(num)</view>
|
||||||
<view class="tip">
|
<view class="tip">
|
||||||
判断是否为0,防止浮点数问题。<br />
|
判断是否为0,防止浮点数问题。<br />
|
||||||
|
尽量不要使用浮点数。<br />
|
||||||
</view>
|
</view>
|
||||||
<view class="hr"></view>
|
<view class="hr"></view>
|
||||||
<view class="fun">isarray(val)</view>
|
<view class="fun">isarray(val)</view>
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-card">
|
<view class="ciy-card">
|
||||||
<view class="title">系统参数</view>
|
<view class="title">系统参数</view>
|
||||||
<view class="right">this.sysinfo</view>
|
<view class="right">app.globalData._sysinfo</view>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view v-for="(item,index) in _sysinfo" :key="index">
|
<view v-for="(item,index) in _sysinfo" :key="index">
|
||||||
<view v-if="index == 'safeArea' || index == 'safeAreaInsets'">
|
<view v-if="index == 'safeArea' || index == 'safeAreaInsets'">
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
this.glbdata[i] = app.json_string(app.globalData[i]);
|
this.glbdata[i] = app.json_string(app.globalData[i]);
|
||||||
}
|
}
|
||||||
this._sysinfo = {};
|
this._sysinfo = {};
|
||||||
for (var i in this.sysinfo) {
|
for (var i in app.globalData._sysinfo) {
|
||||||
this._sysinfo[i] = app.json_string(this.sysinfo[i]);
|
this._sysinfo[i] = app.json_string(this.sysinfo[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async chktest(dt) {
|
async chktest(dt) {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'app.test',
|
func: 'app.test',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,38 +2,27 @@
|
||||||
<ciy-header title="广场" mode="scroll"></ciy-header>
|
<ciy-header title="广场" mode="scroll"></ciy-header>
|
||||||
<view v-if="init.code != 1">
|
<view v-if="init.code != 1">
|
||||||
<view class="px4 py4">
|
<view class="px4 py4">
|
||||||
<view style="height:12em;width:100%;" class="ciy-skeleton"></view>
|
<view style="height:12rem;width:100%;" class="ciy-skeleton"></view>
|
||||||
<view style="height:2em;width:60%;" class="ciy-skeleton"></view>
|
<view style="height:2rem;width:60%;" class="ciy-skeleton"></view>
|
||||||
<view style="height:1em;width:40%;margin-left:1em;" class="ciy-skeleton"></view>
|
<view style="height:1rem;width:40%;margin-left:1rem;" class="ciy-skeleton"></view>
|
||||||
<view style="height:3em;width:70%;" class="ciy-skeleton"></view>
|
<view style="height:3rem;width:70%;" class="ciy-skeleton"></view>
|
||||||
<view style="height:3em;width:70%;" class="ciy-skeleton"></view>
|
<view style="height:3rem;width:70%;" class="ciy-skeleton"></view>
|
||||||
<view style="height:3em;width:70%;" class="ciy-skeleton"></view>
|
<view style="height:3rem;width:70%;" class="ciy-skeleton"></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view style="min-height:80vw;background: linear-gradient(354deg, #f3fcff, #ffffff);">
|
<ciy-swiper :banner="init.banner" height="60vw"></ciy-swiper>
|
||||||
<swiper v-if="init.once.banner && init.once.banner.length > 0" :indicator-dots="init.once.banner.length > 1" :autoplay="false" interval="3000" style="height:80vw;">
|
|
||||||
<swiper-item v-for="(item,index) in init.once.banner" :key="item.id">
|
|
||||||
<view v-if="isvideo(item.img)">
|
|
||||||
<cover-image v-if="vmuted" @tap="vmute" class="cmute" :style="{opacity: vop}" :src="file_stor('/img/wav2.png')"></cover-image>
|
|
||||||
<cover-image v-else @tap="vmute" class="cmute" :style="{opacity: vop}" :src="file_stor('/img/wav1.png')"></cover-image>
|
|
||||||
<video id="swipervideo" @tap="showop" object-fit="cover" :poster="file_stor(item.img + '.jpg')" :src="file_stor(item.img)" controls autoplay loop show-mute-btn :muted="vmuted" :enable-progress-gesture="false" style="width:100%;height:80vw;"></video>
|
|
||||||
</view>
|
|
||||||
<image v-else @tap="gourl" :data-url="item.url" :src="file_stor(item.img)" style="width:100%;height:100%;" />
|
|
||||||
</swiper-item>
|
|
||||||
</swiper>
|
|
||||||
</view>
|
|
||||||
<view class="bg1">
|
<view class="bg1">
|
||||||
<view class="ciy-grid">
|
<view class="ciy-grid">
|
||||||
<view class="grid" @tap="gourl" data-url="/pages/demo/index">
|
<view class="grid" @tap="gourl" data-url="/pages/demo/index">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ctg)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.ctg)}"></view>
|
||||||
<view class="name">Demo</view>
|
<view class="name">Demo</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid" @tap="gourl" data-url="/pages/main/paper?id=1">
|
<view class="grid" @tap="gourl" data-url="/pages/pub/paper?id=1">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.cqd)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.cqd)}"></view>
|
||||||
<view class="name">游客页面</view>
|
<view class="name">游客页面</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid" @tap="gourl" data-url="$/pages/main/me_suggest">
|
<view class="grid" @tap="gourl" data-url="$/pages/me/suggest">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.cjf)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.cjf)}"></view>
|
||||||
<view class="name">用户页面</view>
|
<view class="name">用户页面</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -56,28 +45,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.cmute {
|
|
||||||
position: absolute;
|
|
||||||
right: 0.5em;
|
|
||||||
top: 0.5em;
|
|
||||||
z-index: 100;
|
|
||||||
height: 1.5em;
|
|
||||||
width: 1.5em;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
vmuted: false,
|
svg: {},
|
||||||
vop: 0.2,
|
|
||||||
svg: {
|
|
||||||
cqd: '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M546.334118 258.198588V106.315294h288.527058V57.825882c0-31.924706-25.840941-57.825882-57.825882-57.825882H103.002353a57.825882 57.825882 0 0 0-57.825882 57.825882v886.66353C45.176471 976.414118 71.077647 1002.315294 103.002353 1002.315294H777.035294a57.765647 57.765647 0 0 0 57.795765-57.825882v-63.668706H121.133176v-151.853177H834.861176v-55.717647H121.133176v-151.823058H834.861176v-55.717648h-288.527058v-151.823058h288.527058v-55.717647h-288.527058z" fill="#A267F8"></path><path d="M834.861176 465.679059h121.494589V313.825882H834.861176z" fill="#F9D11F"></path><path d="M546.334118 465.679059h288.527058V313.825882h-288.527058z" fill="#7E42B9"></path><path d="M834.861176 673.249882h121.494589v-151.853176H834.861176z" fill="#F9D11F"></path><path d="M121.103059 673.249882h713.728v-151.853176H121.103059z" fill="#7E42B9"></path><path d="M834.861176 258.168471h121.494589V106.315294H834.861176z" fill="#F9D11F"></path><path d="M546.334118 258.168471h288.527058V106.315294h-288.527058z" fill="#7E42B9"></path><path d="M834.861176 880.790588h121.494589v-151.853176H834.861176z" fill="#F9D11F"></path><path d="M121.103059 880.790588h713.728v-151.853176H121.103059z" fill="#7E42B9"></path><path d="M485.586824 465.709176H121.103059v-81.799529a70.053647 70.053647 0 0 1 70.053647-70.053647h224.37647a70.053647 70.053647 0 0 1 70.053648 70.053647v81.799529zM386.891294 189.831529a83.516235 83.516235 0 1 1-167.03247 0 83.516235 83.516235 0 0 1 167.03247 0" fill="#FFFFFF"></path></svg>',
|
|
||||||
cjf: '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M902.384941 257.114353H245.338353a98.454588 98.454588 0 0 0-98.454588 98.424471V746.315294a98.484706 98.484706 0 0 0 98.484706 98.454588h57.675294v141.914353c0 13.914353 16.745412 20.841412 26.593882 11.023059l152.937412-152.937412h419.84a98.484706 98.484706 0 0 0 98.42447-98.484706V355.568941a98.454588 98.454588 0 0 0-98.454588-98.42447" fill="#FF7E50"></path><path d="M98.424471 0h657.046588a98.454588 98.454588 0 0 1 98.484706 98.424471v390.806588a98.424471 98.424471 0 0 1-98.484706 98.42447H697.825882v141.914353a15.570824 15.570824 0 0 1-26.593882 11.023059l-152.997647-152.937412H98.424471A98.454588 98.454588 0 0 1 0 489.231059V98.424471A98.484706 98.484706 0 0 1 98.484706 0" fill="#F9D11F"></path><path d="M671.232 740.592941a15.600941 15.600941 0 0 0 26.624-11.023059v-141.94447h57.645176a98.394353 98.394353 0 0 0 98.424471-98.424471V257.084235H245.338353a98.424471 98.424471 0 0 0-98.424471 98.424471v232.116706h371.350589l152.967529 152.997647z" fill="#ED4042"></path><path d="M303.043765 468.269176h394.812235V358.098824H303.043765z" fill="#FFFFFF"></path></svg>',
|
|
||||||
cmh: '<svg viewBox="0 0 1355 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M663.491765 1002.315294c-162.454588 0-294.159059-131.734588-294.159059-294.189176V109.236706A109.236706 109.236706 0 0 1 478.569412 0h369.844706a109.236706 109.236706 0 0 1 109.236706 109.236706v598.889412c0 162.454588-131.704471 294.159059-294.159059 294.159058" fill="#31EC7C"></path><path d="M871.484235 916.148706c-114.868706 114.868706-301.116235 114.868706-416.015059 0L32.015059 492.634353a109.206588 109.206588 0 0 1 0-154.443294l261.511529-261.541647a109.206588 109.206588 0 0 1 154.443294 0l423.514353 423.454117c114.868706 114.928941 114.868706 301.176471 0 416.045177" fill="#A267F8"></path><path d="M455.499294 916.148706c-114.868706-114.868706-114.868706-301.116235 0-416.015059L879.013647 76.649412a109.206588 109.206588 0 0 1 154.443294 0l261.541647 261.541647a109.206588 109.206588 0 0 1 0 154.443294L871.514353 916.148706c-114.898824 114.868706-301.176471 114.868706-416.015059 0" fill="#F83CB6"></path><path d="M871.484235 500.133647L663.491765 292.141176l-208.022589 207.992471c-114.838588 114.868706-114.838588 301.116235 0 416.015059 114.898824 114.868706 301.176471 114.868706 416.015059 0 114.868706-114.898824 114.868706-301.146353 0-416.015059" fill="#7E42B9"></path><path d="M740.532706 636.235294a101.707294 101.707294 0 0 1-143.811765 143.811765 101.707294 101.707294 0 0 1 143.811765-143.811765" fill="#FFFFFF"></path></svg>',
|
|
||||||
ctg: '<svg viewBox="0 0 1114 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M801.039059 672.677647l-198.415059 198.415059-198.415059-198.415059-155.888941-155.888941 198.415059-198.415059 155.888941 155.888941 220.16-220.129882V133.150118a133.150118 133.150118 0 0 0-133.150118-133.12H118.211765C44.664471 0 0 59.632941 0 133.12v735.954824C0 942.682353 44.664471 1002.315294 118.211765 1002.315294h571.422117a133.12 133.12 0 0 0 133.12-133.180235v-218.172235l-21.714823 21.744941z" fill="#F9D11F"></path><path d="M1105.92 367.766588l-198.384941-198.415059-84.751059 84.781177v396.8z" fill="#3193FF"></path><path d="M446.735059 318.403765L248.32 516.818824l155.888941 155.888941 198.415059 198.415059 198.415059-198.415059 21.744941-21.744941V254.132706l-220.16 220.16z" fill="#006FD9"></path><path d="M119.657412 239.344941h583.439059v-134.625882H119.657412zM119.687529 882.627765h179.501177v-134.625883h-179.501177z" fill="#FFFFFF"></path></svg>',
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -89,13 +63,29 @@
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.executepnt(1);
|
this.executepnt(1);
|
||||||
}, 3000);
|
}, 3000);
|
||||||
|
this.getauth().then(auth => {
|
||||||
|
if (auth.me.id == 0)
|
||||||
|
return;
|
||||||
|
this.pageno = 0;
|
||||||
|
this.getinit();
|
||||||
|
});
|
||||||
|
this.load_svgicon(this.file_stor('/svgicon/index.txt')).then(svgs => {
|
||||||
|
this.svg = svgs;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
if (this._meid === this.me.id)
|
||||||
|
return;
|
||||||
|
this._meid = this.me.id;
|
||||||
|
this.pageno = 0;
|
||||||
|
this.init.members = [];
|
||||||
this.getinit();
|
this.getinit();
|
||||||
},
|
},
|
||||||
onShareAppMessage(res) {
|
onShareAppMessage(res) {
|
||||||
return this.shareparam({
|
return this.shareparam({
|
||||||
type: 'message',
|
type: 'message',
|
||||||
title: this.init.sharename,
|
title: this.init.sharename,
|
||||||
//img: this.file_stor(''),
|
img: this.file_stor(this.init.shareicon),
|
||||||
path: this.getroute(),
|
path: this.getroute(),
|
||||||
query: {
|
query: {
|
||||||
...this.opn
|
...this.opn
|
||||||
|
|
@ -106,7 +96,7 @@
|
||||||
return this.shareparam({
|
return this.shareparam({
|
||||||
type: 'timeline',
|
type: 'timeline',
|
||||||
title: this.init.sharename,
|
title: this.init.sharename,
|
||||||
//img: this.file_stor(''),
|
img: this.file_stor(this.init.shareicon),
|
||||||
path: this.getroute(),
|
path: this.getroute(),
|
||||||
query: {
|
query: {
|
||||||
...this.opn
|
...this.opn
|
||||||
|
|
@ -119,19 +109,13 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'index.init'
|
func: 'main.index_init'
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
this.init = retjson;
|
this.init = retjson;
|
||||||
},
|
},
|
||||||
showop() {
|
|
||||||
this.vop = 2;
|
|
||||||
},
|
|
||||||
vmute() {
|
|
||||||
this.vmuted = !this.vmuted;
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -2,34 +2,40 @@
|
||||||
<ciy-header title="我的" mode="scroll"></ciy-header>
|
<ciy-header title="我的" mode="scroll"></ciy-header>
|
||||||
<view class="topbg"></view>
|
<view class="topbg"></view>
|
||||||
<view :style="{height:header_statusbar_height+'px'}"></view>
|
<view :style="{height:header_statusbar_height+'px'}"></view>
|
||||||
<view style="padding-top:1em;">
|
<view style="padding-top:1rem;">
|
||||||
<view class="avartop">
|
<view class="avartop">
|
||||||
<image :src="file_stor(me.icon?me.icon:'/img/face.png')" mode="scaleToFill" />
|
<image :src="file_stor(me.icon?me.icon:'/img/face.png')" mode="scaleToFill" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="maincard" style="margin-top: -2.5em;">
|
<view class="maincard" style="margin-top: -2.5rem;">
|
||||||
<view class="flex flex-center">
|
<view class="flex flex-center">
|
||||||
<view class="nick" @tap="gourl" data-url="$/pages/main/me_info">{{me.name?me.name:'登录/注册'}}</view>
|
<view class="nick" @tap="gourl" data-url="$/pages/me/user_info">{{me.id>0?(me.name?me.name:'游客'):'登录/注册'}}</view>
|
||||||
<view class="icon zy" style="margin-left:1em;" v-if="showbalance" @tap="getbalance(2)"></view>
|
<view class="icon zy" style="margin-left:1rem;" v-if="showbalance" @tap="getbalance(2)"></view>
|
||||||
<view class="icon by" style="margin-left:1em;" v-else @tap="getbalance(1)"></view>
|
<view class="icon by" style="margin-left:1rem;" v-else @tap="getbalance(1)"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="abs r0 t0" style="opacity: 0;" @tap="gourl" data-url="/pages/demo/index">Demo</view>
|
<view class="abs r0 t0" style="opacity: 0;" @tap="gourl" data-url="/pages/demo/index">Demo</view>
|
||||||
<view class="abs r1 b1 txt-smmm" @tap="copyboard('E' + me.eid)" v-if="me.id>0">E{{me.eid}}</view>
|
<view class="abs r1 b1 txt-smmm" @tap="copyboard('E' + me.eid)" v-if="me.id>0">E{{me.eid}}</view>
|
||||||
<view class="usrnum">
|
<view class="usrnum">
|
||||||
<view>
|
<view>
|
||||||
<view class="num" v-if="showbalance">
|
<view class="num" v-if="showbalance">
|
||||||
<ciy-shownum speed="80" :value="me.mycashmoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
<ciy-shownum speed="80" :value="me.mymoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
||||||
</view>
|
</view>
|
||||||
<view class="num" v-else>---</view>
|
<view class="num" v-else>---</view>
|
||||||
<view class="tit" @tap="gourl" data-url="$/pages/main/me_cash">提现</view>
|
<view class="tit">可消费余额</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<view class="num" v-if="showbalance">
|
||||||
|
<ciy-shownum :value="me.mycashmoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
||||||
|
</view>
|
||||||
|
<view class="num" v-else>---</view>
|
||||||
|
<view class="tit">可提现余额</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view>
|
<view>
|
||||||
<view class="num" v-if="showbalance">
|
<view class="num" v-if="showbalance">
|
||||||
<ciy-shownum :value="me.mypnt" unit=",1,0|万,10000,2|亿,100000000,2"></ciy-shownum>
|
<ciy-shownum :value="me.mypnt" unit=",1,0|万,10000,2|亿,100000000,2"></ciy-shownum>
|
||||||
</view>
|
</view>
|
||||||
<view class="num" v-else>---</view>
|
<view class="num" v-else>---</view>
|
||||||
<view class="tit" @tap="gourl" data-url="$/pages/main/me_pnt">积分</view>
|
<view class="tit" @tap="gourl" data-url="$/pages/me/pnt_lst">积分</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -64,23 +70,23 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="maincard" style="min-height:9em;">
|
<view class="maincard">
|
||||||
<view class="ciy-grid">
|
<view class="ciy-grid">
|
||||||
<view class="grid">
|
<view class="grid" data-url="$/pages/me/cash_charge" @tap="gourl">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.v1)}"></view>
|
||||||
<view class="name">图标名称</view>
|
<view class="name">充值</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid">
|
<view class="grid" data-url="$/pages/me/cashie_lst" @tap="gourl">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.v3)}"></view>
|
||||||
<view class="name">图标名称</view>
|
<view class="name">收支明细</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid">
|
<view class="grid" data-url="$/pages/me/cashout_cash" @tap="gourl">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.v2)}"></view>
|
||||||
<view class="name">图标名称</view>
|
<view class="name">提现</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid">
|
<view class="grid" data-url="$/pages/me/cashoe_lst" @tap="gourl">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.v3)}"></view>
|
||||||
<view class="name">图标名称</view>
|
<view class="name">收益明细</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-grid">
|
<view class="ciy-grid">
|
||||||
|
|
@ -102,26 +108,26 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-swipelist v-if="me.id>0" :icon="svg.ciy" title="实名认证" data-url="$/pages/main/me_real" @tap="gourl" :right="tomsk(me.truename, '#***')" more></ciy-swipelist>
|
<view class="bg5" style="height:0.3rem;"></view>
|
||||||
<view class="bg5" style="height:0.3em;" v-if="me.id>0"></view>
|
<ciy-swipelist v-if="me.id>0" title="众识码" data-url="$/pages/me/safe_ccub" @tap="gourl" :right="tocciy(me.cciy)" more></ciy-swipelist>
|
||||||
<ciy-swipelist title="收入明细" v-if="me.id>0" @tap="gourl" data-url="$/pages/main/me_cash_in" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="实名认证" data-url="$/pages/me/safe_real" @tap="gourl" :right="tomsk(me.truename, '#***')" more></ciy-swipelist>
|
||||||
|
<view class="bg5" style="height:0.3rem;"></view>
|
||||||
<view class="bg5" style="height:0.3em;"></view>
|
<ciy-swipelist v-if="me.id>0" title="个人信息" @tap="gourl" data-url="$/pages/me/user_info" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="个人信息" @tap="gourl" data-url="$/pages/main/me_info" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="收款银行" @tap="gourl" data-url="$/pages/me/user_bank" :right="me.bankaccount?'已设置':'未设置'" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="收货地址" @tap="gourl" data-url="$/pages/main/me_shipaddr" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="收货地址" @tap="gourl" data-url="$/pages/me/user_shipaddr" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="我要开票" @tap="gourl" data-url="$/pages/main/me_invoice" :right="me.myinvmoney>=100?'可开票金额 ' + me.myinvmoney/100 + '元':'未达开票金额'" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="我要开票" @tap="gourl" data-url="$/pages/me/invoicing" :right="me.myinvmoney>=1000?'可开票':'未达开票金额'" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="分享二维码" @tap="gourl" data-url="$/pages/main/me_qrcode" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="分享二维码" @tap="gourl" data-url="$/pages/me/share_qrcode" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.mobile" :title="me.needpass?'设置密码':'修改密码'" @tap="gourl" data-url="$/pages/main/me_passchange" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.mobile" :title="me.needpass?'设置密码':'修改密码'" @tap="gourl" data-url="$/pages/me/safe_password" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="意见建议" @tap="gourl" data-url="$/pages/main/me_suggest" right="留下您的宝贵建议" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="意见建议" @tap="gourl" data-url="$/pages/me/suggest" right="留下您的宝贵建议" more></ciy-swipelist>
|
||||||
<ciy-swipelist title="帮助中心" @tap="gourl" data-url="/pages/main/psection?id=1" right="FAQ" more></ciy-swipelist>
|
<ciy-swipelist title="帮助中心" @tap="gourl" data-url="/pages/pub/psection?id=1" right="FAQ" more></ciy-swipelist>
|
||||||
<ciy-swipelist v-if="me.id>0" title="工单提问" @tap="gourl" data-url="$/pages/main/me_problem" right="提交您的问题" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="工单提问" @tap="gourl" data-url="$/pages/me/problem_pub" right="提交您的问题" more></ciy-swipelist>
|
||||||
|
|
||||||
<ciy-swipelist title="联系客服" more>
|
<ciy-swipelist title="联系客服" more>
|
||||||
<button open-type="contact" plain class="btn tran" style="color:var(--txt5)">在线客服</button>
|
<button open-type="contact" plain class="btn tran" style="color:var(--txt5)">在线客服</button>
|
||||||
</ciy-swipelist>
|
</ciy-swipelist>
|
||||||
<ciy-swipelist title="关于我们" @tap="gourl" data-url="/pages/main/paper?id=1" right="众产" more></ciy-swipelist>
|
<ciy-swipelist title="关于我们" @tap="gourl" data-url="/pages/pub/paper?id=1" right="众产" more></ciy-swipelist>
|
||||||
<ciy-swipelist title="软件版本" @tap="upver" :right="version" more></ciy-swipelist>
|
<ciy-swipelist title="软件版本" @tap="upver" :right="version" more></ciy-swipelist>
|
||||||
<view class="bg5" v-if="me.id>0" style="height:0.5em;"></view>
|
<view class="bg5" v-if="me.id>0" style="height:0.5rem;"></view>
|
||||||
<ciy-swipelist v-if="me.id>0" title="重新登录" @tap="relogin" more></ciy-swipelist>
|
<ciy-swipelist v-if="me.id>0" title="重新登录" @tap="relogin" more></ciy-swipelist>
|
||||||
<ciy-tabbar ref="tabbar"></ciy-tabbar>
|
<ciy-tabbar ref="tabbar"></ciy-tabbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -130,14 +136,17 @@
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
svg: {},
|
||||||
|
version:'',
|
||||||
showbalance: false,
|
showbalance: false,
|
||||||
svg: {
|
|
||||||
ciy: '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M987.136 384.512C919.552 131.584 668.16-22.528 415.232 27.136c219.648-41.984 434.176 79.36 488.96 283.136 57.344 214.016-82.944 437.76-313.344 499.2-49.664 13.312-78.848 64-65.536 113.152 13.312 49.664 64 78.848 113.152 65.536 263.168-70.144 418.816-340.48 348.672-603.648zM116.224 713.216C58.88 499.2 199.68 275.456 430.08 214.016c49.664-13.312 78.848-64 65.536-113.152C482.816 51.2 432.128 21.504 382.464 34.816c-263.68 70.656-419.84 340.992-349.184 604.16 67.584 252.928 319.488 407.04 571.392 356.864-219.648 42.496-433.664-78.848-488.448-282.624z m93.184-203.776L291.84 449.536c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z m516.096-60.416L808.96 509.952l-149.504-229.888-149.504 229.376 82.432-59.904c44.544-32.256 90.112-32.256 133.12-0.512z m-366.08 291.84L441.856 680.96c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z" fill="#56a4ef"></path></svg>',
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {},
|
onLoad() {
|
||||||
onShow() {
|
var app = getApp();
|
||||||
|
this.version = app.globalData._version;
|
||||||
|
this.load_svgicon(this.file_stor('/svgicon/me.txt')).then(svgs => {
|
||||||
|
this.svg = svgs;
|
||||||
|
});
|
||||||
this.getinit();
|
this.getinit();
|
||||||
},
|
},
|
||||||
onPullDownRefresh(b) {
|
onPullDownRefresh(b) {
|
||||||
|
|
@ -147,26 +156,28 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
this.getauth();
|
await this.getauth();
|
||||||
var retjson = this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.usrbuy_get',
|
func: 'main.me_init',
|
||||||
cache: 86400,
|
//cache: 86400,
|
||||||
data: {}
|
|
||||||
}).then(json => {
|
|
||||||
this.init = json;
|
|
||||||
});
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init = retjson;
|
||||||
},
|
},
|
||||||
async getbalance(act) {
|
async getbalance(act) {
|
||||||
var auth = await this.getauth();
|
if (this._loading)
|
||||||
if(auth.me.id == 0)
|
return;
|
||||||
|
await this.getauth();
|
||||||
|
if (this.me.id == 0)
|
||||||
return;
|
return;
|
||||||
if (act == 2) {
|
if (act == 2) {
|
||||||
this.showbalance = false;
|
this.showbalance = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.balance_get',
|
func: 'me.me_balance_get',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -184,8 +195,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.buy_usernow',
|
func: 'me.me_userbuy_create',
|
||||||
data: {
|
data: {
|
||||||
id: item.id
|
id: item.id
|
||||||
}
|
}
|
||||||
|
|
@ -198,8 +209,8 @@
|
||||||
try {
|
try {
|
||||||
var retpay = await uni.requestPayment(retjson);
|
var retpay = await uni.requestPayment(retjson);
|
||||||
await this.sleep(1000);
|
await this.sleep(1000);
|
||||||
var retjson2 = await this.callajax({
|
var retjson2 = await this.callfunc({
|
||||||
func: 'me.buy_userchk',
|
func: 'me.me_userbuy_chk',
|
||||||
data: {
|
data: {
|
||||||
orderid: retjson.orderid
|
orderid: retjson.orderid
|
||||||
}
|
}
|
||||||
|
|
@ -214,20 +225,20 @@
|
||||||
},
|
},
|
||||||
relogin() {
|
relogin() {
|
||||||
this.clearstorage();
|
this.clearstorage();
|
||||||
this.getauth(true);
|
this.getauth('relogin');
|
||||||
},
|
},
|
||||||
upver() {
|
upver() {
|
||||||
var app = getApp();
|
var app = getApp();
|
||||||
app.appupdate('all', async verinfo => {
|
app.appupdate('all', async verinfo => {
|
||||||
return await this.askmsg(verinfo, '更新') == 'ok';
|
return await this.askmsg(verinfo, '更新') == 'ok';
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.topbg {
|
.topbg {
|
||||||
height: 10em;
|
height: 10rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
@ -237,8 +248,8 @@
|
||||||
|
|
||||||
.topbg::before {
|
.topbg::before {
|
||||||
content: '';
|
content: '';
|
||||||
left: -5em;
|
left: -5rem;
|
||||||
right: -5em;
|
right: -5rem;
|
||||||
border-radius: 0 0 100vw 100vw;
|
border-radius: 0 0 100vw 100vw;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: linear-gradient(60deg, var(--e-userbg1), var(--e-userbg2));
|
background: linear-gradient(60deg, var(--e-userbg1), var(--e-userbg2));
|
||||||
|
|
@ -251,9 +262,9 @@
|
||||||
.avartop {
|
.avartop {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 0 0 0 1.5em;
|
margin: 0 0 0 1.5rem;
|
||||||
width: 5em;
|
width: 5rem;
|
||||||
height: 5em;
|
height: 5rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: var(--bg2);
|
background: var(--bg2);
|
||||||
border: 2px solid var(--bg1);
|
border: 2px solid var(--bg1);
|
||||||
|
|
@ -270,30 +281,29 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--bg1);
|
background: var(--bg1);
|
||||||
color: var(--txt6);
|
color: var(--txt6);
|
||||||
min-height: 7em;
|
padding: 0.5rem;
|
||||||
padding: 0.5em;
|
margin: 0 1rem 1rem 1rem;
|
||||||
margin: 0 1em 1em 1em;
|
border-radius: 0.3rem;
|
||||||
border-radius: 0.3em;
|
|
||||||
box-shadow: 0 4px 8px var(--bg6);
|
box-shadow: 0 4px 8px var(--bg6);
|
||||||
}
|
}
|
||||||
|
|
||||||
.maincard .nick {
|
.maincard .nick {
|
||||||
font-size: 1.2em;
|
font-size: 1.2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding-left: 4.5em;
|
padding-left: 4.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.expdate {
|
.expdate {
|
||||||
display: block;
|
display: block;
|
||||||
padding-left: 1em;
|
padding-left: 1rem;
|
||||||
margin-top: -1em;
|
margin-top: -1rem;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1rem;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
color: var(--succ5);
|
color: var(--succ5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.caption {
|
.caption {
|
||||||
font-size: 1.2em;
|
font-size: 1.2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding: 1em 0;
|
padding: 1em 0;
|
||||||
}
|
}
|
||||||
|
|
@ -310,12 +320,12 @@
|
||||||
padding: 1em 0;
|
padding: 1em 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: 1px solid var(--bg4);
|
border: 1px solid var(--bg4);
|
||||||
border-radius: 1em;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.userpay>.item>.price {
|
.userpay>.item>.price {
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 1.2em;
|
font-size: 1.2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: var(--man5);
|
color: var(--man5);
|
||||||
}
|
}
|
||||||
|
|
@ -327,13 +337,13 @@
|
||||||
|
|
||||||
.userpay>.item>.recommend {
|
.userpay>.item>.recommend {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -0.5em;
|
top: -0.5rem;
|
||||||
right: 0.5em;
|
right: 0.5rem;
|
||||||
padding: 0.2em 0.8em;
|
padding: 0.2rem 0.8rem;
|
||||||
font-size: 0.8em;
|
font-size: 0.8rem;
|
||||||
color: var(--dagt);
|
color: var(--dagt);
|
||||||
background: var(--dag5);
|
background: var(--dag5);
|
||||||
border-radius: 1em;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cgrid {
|
.cgrid {
|
||||||
|
|
@ -344,30 +354,30 @@
|
||||||
|
|
||||||
.cgrid .item {
|
.cgrid .item {
|
||||||
width: 48%;
|
width: 48%;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1rem;
|
||||||
padding: 1em;
|
padding: 1rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: var(--bg3);
|
background: var(--bg3);
|
||||||
border-radius: 1em;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cgrid .icon {
|
.cgrid .icon {
|
||||||
width: 2em;
|
width: 2rem;
|
||||||
height: 2em;
|
height: 2rem;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: linear-gradient(-25deg, #1890ff, #c0e1ff);
|
background: linear-gradient(-25deg, #1890ff, #c0e1ff);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 1.5em;
|
font-size: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: 1.5em;
|
width: 1.5rem;
|
||||||
height: 1.5em;
|
height: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon.by {
|
.icon.by {
|
||||||
|
|
@ -379,8 +389,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.usrnum {
|
.usrnum {
|
||||||
padding-top: 1em;
|
padding-top: 1rem;
|
||||||
padding-bottom: 0.5em;
|
padding-bottom: 0.5rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -392,10 +402,10 @@
|
||||||
.usrnum .num {
|
.usrnum .num {
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
padding-top: 0.2rem;
|
padding-top: 0.2rem;
|
||||||
font-size: 1.3em;
|
font-size: 1.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.usrnum .tit {
|
.usrnum .tit {
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,137 +0,0 @@
|
||||||
<template>
|
|
||||||
<ciy-header title="提现"></ciy-header>
|
|
||||||
<view v-if="init.code != 1">
|
|
||||||
<view class="px4 py4">
|
|
||||||
<view style="height:2em;width:60%;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:1em;width:40%;margin-left:1em;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:1em;width:50%;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view v-else>
|
|
||||||
<form @submit="submit" class="char3">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content">
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>余额</label>
|
|
||||||
<view style="text-align: left;">
|
|
||||||
{{init.user.mycashmoney/100}}元
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>可提现</label>
|
|
||||||
<view style="text-align: left;">
|
|
||||||
{{init.user.cash}}元
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>提现流向</label>
|
|
||||||
<view style="text-align: left;">
|
|
||||||
<ciy-selbool name="cashtype" v-model="me.cashtype" y="银行" n="微信"></ciy-selbool>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">申请提现</button>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-tip">
|
|
||||||
每天可提交1次,以元为单位申请。
|
|
||||||
</view>
|
|
||||||
<view class="ciy-tip">
|
|
||||||
由于微信支付限制,申请提现平台审核通过后,还需手动点击收款操作。
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-list" v-for="(item,index) in init.cash" :key="item.id">
|
|
||||||
<view class="l2">
|
|
||||||
<text class="kbd" :class="ccode(g.cashstatus, item.cashstatus,'clas')">{{ccode(g.cashstatus, item.cashstatus)}}</text>
|
|
||||||
</view>
|
|
||||||
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
|
||||||
<view class="rb">
|
|
||||||
<text class="txt-lgg txt-wb px2">{{item.cashmoney/10000}}</text>
|
|
||||||
<text class="txt-smm">元</text>
|
|
||||||
</view>
|
|
||||||
<view class="txt-right" v-if="item.cashtype==2">
|
|
||||||
<button class="btn" @tap="wxrecvpay(index)">立即收款</button>
|
|
||||||
</view>
|
|
||||||
<view class="txt-right" v-if="item.cashtype==1">
|
|
||||||
<button class="btn">上传发票</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<ciy-swipelist title="设置提现账户" @tap="gourl" data-url="$/pages/main/me_cash_bank" more></ciy-swipelist>
|
|
||||||
<ciy-swipelist title="提现历史记录" @tap="gourl" data-url="$/pages/main/me_cash_out" more></ciy-swipelist>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.getinit();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async getinit() {
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.cash_get',
|
|
||||||
data: {}
|
|
||||||
});
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.init = retjson;
|
|
||||||
this.init.user.cash = Math.floor(this.init.user.mycashmoney / 100);
|
|
||||||
if (this.init.user.cash < 0)
|
|
||||||
this.init.user.cash = 0;
|
|
||||||
},
|
|
||||||
async submit(e) {
|
|
||||||
if (this.init.user.cash <= 0)
|
|
||||||
return this.toast('不可提现');
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.cash',
|
|
||||||
data: {
|
|
||||||
cash: this.init.user.cash
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.init.user.mycashmoney -= this.init.user.cash * 100;
|
|
||||||
this.init.user.cash = 0;
|
|
||||||
this.toast('申请成功');
|
|
||||||
},
|
|
||||||
async wxrecvpay(idx) {
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.wxrecvpay',
|
|
||||||
data: {
|
|
||||||
id: this.init.cash[idx].id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.init.cash.splice(idx, 1);
|
|
||||||
wx.requestMerchant({
|
|
||||||
mchId: retjson.transfer.mchid,
|
|
||||||
appId: retjson.transfer.appid,
|
|
||||||
package: retjson.transfer.package_info,
|
|
||||||
success: (res) => {
|
|
||||||
console.log('success Transfer:', res);
|
|
||||||
},
|
|
||||||
fail: (res) => {
|
|
||||||
console.log('fail Transfer:', res);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
<template>
|
|
||||||
<ciy-header title="设置提现账号"></ciy-header>
|
|
||||||
<form @submit="submit" class="char3">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content char4">
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label class="imp">提现方案</label>
|
|
||||||
<view style="text-align: left;">
|
|
||||||
<ciy-selbool name="cashtype" v-model="me.cashtype" y="独立纳税" n="个人微信"></ciy-selbool>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form" v-if="me.cashtype == 1">
|
|
||||||
<label class="imp">银行卡号</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="bankno" v-model="me.bankno" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form" v-if="me.cashtype == 1">
|
|
||||||
<label class="imp">开户银行</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="bankname" v-model="me.bankname" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form" v-if="me.cashtype == 1">
|
|
||||||
<label class="imp">账户名称</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="bankaccount" v-model="me.bankaccount" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">设置</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
<view class="ciy-tip">
|
|
||||||
个人微信提现<br />
|
|
||||||
每次最低提现金额为1元。<br />
|
|
||||||
统一代扣缴20%个税,每月汇总申报个税。<br />
|
|
||||||
以实名认证姓名、身份证号及手机号为准。<br />
|
|
||||||
<br />
|
|
||||||
独立纳税提现<br />
|
|
||||||
每次最低提现金额为1000元。<br />
|
|
||||||
申请提现后,平台收到电子发票后打款。<br />
|
|
||||||
注意: 电子发票抬头与账户名称一致。<br />
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onLoad() {},
|
|
||||||
methods: {
|
|
||||||
async submit(e) {
|
|
||||||
if (e.detail.value.cashtype == 1) {
|
|
||||||
e.detail.value.bankno = e.detail.value.bankno.trim();
|
|
||||||
if (e.detail.value.bankno.length < 6)
|
|
||||||
return this.toast('请输入银行卡号');
|
|
||||||
if (e.detail.value.bankname.length == 0)
|
|
||||||
return this.toast('请输入开户行');
|
|
||||||
if (e.detail.value.bankaccount.length == 0)
|
|
||||||
return this.toast('请输入账户名称');
|
|
||||||
}
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.userbank_change',
|
|
||||||
data: e.detail.value
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.me.cashtype = e.detail.value.cashtype;
|
|
||||||
this.me.bankno = e.detail.value.bankno;
|
|
||||||
this.me.bankname = e.detail.value.bankname;
|
|
||||||
this.me.bankaccount = e.detail.value.bankaccount;
|
|
||||||
this.setstorage('me', this.me);
|
|
||||||
await this.toast('修改成功');
|
|
||||||
uni.navigateBack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
<template>
|
|
||||||
<ciy-header title="本人信息"></ciy-header>
|
|
||||||
<form @submit="submit" class="char3">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content char4">
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label class="imp">姓名称呼</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="name" v-model="me.name" type="nickname" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>头像</label>
|
|
||||||
<view>
|
|
||||||
<ciy-upload left v-model="me.icon" path="icon" name="icon" imgwidth="400" imgheight="400" camheight="100" sourcetype="rehcam,album,message"></ciy-upload>
|
|
||||||
</view>
|
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
|
||||||
<view>
|
|
||||||
<button class="btn sm" open-type="chooseAvatar" @chooseavatar="wxavar">从微信获取</button>
|
|
||||||
</view>
|
|
||||||
<!-- #endif -->
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label class="imp">手机号</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="mobile" v-model="me.mobile" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>微信</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="wxno" v-model="me.wxno" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>电子信箱</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="email" v-model="me.email" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">更新个人信息</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
setTimeout(() => {
|
|
||||||
if (this.me.neednick)
|
|
||||||
this.me.name = '';
|
|
||||||
}, 100);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async wxavar(e) {
|
|
||||||
var app = getApp();
|
|
||||||
var opn = {};
|
|
||||||
opn.post = {
|
|
||||||
from: 'avar'
|
|
||||||
};
|
|
||||||
opn.path = 'icon';
|
|
||||||
opn.stor = app.globalData.storselect;
|
|
||||||
opn.maxkb = 0;
|
|
||||||
opn.imgwidth = 400;
|
|
||||||
opn.imgheight = 400;
|
|
||||||
opn.zipjpg = 0.7;
|
|
||||||
this.me.icon = await this.file_upload1(e.detail.avatarUrl, opn);
|
|
||||||
},
|
|
||||||
async submit(e) {
|
|
||||||
if (!e.detail.value.name)
|
|
||||||
return this.toast('请输入姓名称呼');
|
|
||||||
if (!e.detail.value.mobile)
|
|
||||||
return this.toast('请输入手机号');
|
|
||||||
if (e.detail.value.name[0] == ':')
|
|
||||||
return this.toast('姓名称呼不能以:开头');
|
|
||||||
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.userinfo_change',
|
|
||||||
data: e.detail.value
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.me.name = e.detail.value.name;
|
|
||||||
this.me.neednick = false;
|
|
||||||
this.me.icon = e.detail.value.icon;
|
|
||||||
this.me.mobile = e.detail.value.mobile;
|
|
||||||
this.me.wxno = e.detail.value.wxno;
|
|
||||||
this.me.email = e.detail.value.email;
|
|
||||||
this.setstorage('me', this.me);
|
|
||||||
await this.toast('修改成功');
|
|
||||||
uni.navigateBack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
<template>
|
|
||||||
<ciy-header title="我要开票"></ciy-header>
|
|
||||||
<view v-if="init.code != 1">
|
|
||||||
<view class="px4 py4">
|
|
||||||
<view style="height:2em;width:60%;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:1em;width:40%;margin-left:1em;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:1em;width:50%;" class="ciy-skeleton"></view>
|
|
||||||
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view v-else>
|
|
||||||
<form @submit="submit" class="char3">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content">
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>可开票金额</label>
|
|
||||||
<view style="text-align: left;">
|
|
||||||
{{toint(init.user.myinvmoney/100)}}元
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>开票金额</label>
|
|
||||||
<view>
|
|
||||||
<ciy-inputbet name="money" :value="toint(init.user.myinvmoney/100)*100" bb unit="元" bet="100"></ciy-inputbet>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>发票抬头</label>
|
|
||||||
<view>
|
|
||||||
<ciy-selpage name="invtit" page="me_invoicetitle">
|
|
||||||
<template v-slot:default="{data}">
|
|
||||||
<view>{{data.name}}</view>
|
|
||||||
<view class="txt1">{{data.taxnumber}}</view>
|
|
||||||
</template>
|
|
||||||
</ciy-selpage>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">申请开票</button>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-tip">
|
|
||||||
开具增值税普通电子发票。<br />
|
|
||||||
开票科目: 技术服务费。<br />
|
|
||||||
联系客服签订技术服务合同。
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</view>
|
|
||||||
<ciy-swipelist title="开票历史" @tap="gourl" data-url="$/pages/main/me_invoice_history" more></ciy-swipelist>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.getinit();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async getinit() {
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.balance_get',
|
|
||||||
data: {}
|
|
||||||
});
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.init = retjson;
|
|
||||||
},
|
|
||||||
async submit(e) {
|
|
||||||
if (e.detail.value.money < 100)
|
|
||||||
return;
|
|
||||||
if (this.init.user.myinvmoney < e.detail.value.money)
|
|
||||||
return this.toast('开票金额不足');
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.invoicing',
|
|
||||||
data: e.detail.value
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.init.user.myinvmoney -= retjson.money;
|
|
||||||
this.toast('申请成功');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
<template>
|
|
||||||
<ciy-header title="修改密码"></ciy-header>
|
|
||||||
<view>
|
|
||||||
<form @submit="submit" class="char4">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content">
|
|
||||||
<view class="ciy-form" v-if="!me.needpass">
|
|
||||||
<label class="imp">旧密码</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="oldpass" type="password" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label class="imp">新密码</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="newpass" type="password" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label class="imp">再次输入</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="repass" type="password" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">修改密码</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
, onLoad() {
|
|
||||||
}
|
|
||||||
, methods: {
|
|
||||||
async submit(e) {
|
|
||||||
if (e.detail.value.newpass.length < 1)
|
|
||||||
return this.toast('请输入新密码');
|
|
||||||
if (e.detail.value.newpass != e.detail.value.repass)
|
|
||||||
return this.toast('两次输入的新密码不同');
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.pass_change',
|
|
||||||
data: e.detail.value
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
if(retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
this.me.needpass = false;
|
|
||||||
this.setstorage('me', this.me);
|
|
||||||
await this.toast('修改成功');
|
|
||||||
uni.navigateBack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
<view class="ciy-card">
|
<view class="ciy-card">
|
||||||
<view class="content char4">
|
<view class="content char4">
|
||||||
<view class="flex flex-wrap" style="gap:1em;">
|
<view class="flex flex-wrap" style="gap:1em;">
|
||||||
<view class="fpay" v-for="(item,index) in init.charges" :key="item" @tap="currbuy=index;money=item" :class="{select:currbuy==index}">
|
<view class="fpay" v-for="(item,index) in init.charges" :key="item" @tap="currbuy=index;money=item.chargemoney" :class="{select:currbuy==index}">
|
||||||
<view class="money">
|
<view class="money">
|
||||||
<text>{{item/100}}</text>元
|
<text>{{item.chargemoney/100}}</text>元
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -25,9 +25,10 @@
|
||||||
<view class="ciy-form-bottom">
|
<view class="ciy-form-bottom">
|
||||||
<button class="btn lg cc" @tap="paynow">立即充值</button>
|
<button class="btn lg cc" @tap="paynow">立即充值</button>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="ciy-tip">充值资金仅可用于本平台指定服务,不可提现、不可转让,平台不提供资金保管或理财服务。</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-hr"></view>
|
<view class="ciy-hr"></view>
|
||||||
<ciy-swipelist title="充值记录" @tap="gourl" data-url="$/pages/main/me_cash_in" more></ciy-swipelist>
|
<ciy-swipelist title="充值记录" @tap="gourl" data-url="cashin_lst" more></ciy-swipelist>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -72,12 +73,13 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
this.init.charges = [];
|
var retjson = await this.callfunc({
|
||||||
this.init.charges.push(10000);
|
func: 'me.cash_charge_init',
|
||||||
this.init.charges.push(50000);
|
data: this.pagepost
|
||||||
this.init.charges.push(100000);
|
});
|
||||||
this.init.charges.push(500000);
|
if (retjson.code != 1)
|
||||||
this.init.code = 1;
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init = retjson;
|
||||||
this.money = this.toint(this.opn.pay);
|
this.money = this.toint(this.opn.pay);
|
||||||
if(this.money > 0)
|
if(this.money > 0)
|
||||||
this.paynow();
|
this.paynow();
|
||||||
|
|
@ -88,8 +90,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.charge_paynow',
|
func: 'me.cash_charge_pay',
|
||||||
data: {
|
data: {
|
||||||
money: this.money
|
money: this.money
|
||||||
}
|
}
|
||||||
|
|
@ -102,8 +104,8 @@
|
||||||
try {
|
try {
|
||||||
var retpay = await uni.requestPayment(retjson);
|
var retpay = await uni.requestPayment(retjson);
|
||||||
await this.sleep(1000);
|
await this.sleep(1000);
|
||||||
var retjson2 = await this.callajax({
|
var retjson2 = await this.callfunc({
|
||||||
func: 'me.charge_paychk',
|
func: 'me.cash_charge_chk',
|
||||||
data: {
|
data: {
|
||||||
orderid: retjson.orderid
|
orderid: retjson.orderid
|
||||||
}
|
}
|
||||||
|
|
@ -9,11 +9,11 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
<ciy-segment lis="1:收入,2:支出" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
<ciy-segment lis="1:充退费,2:消费" all="全部" @change="segment_change"></ciy-segment>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="l2" style="margin-right: 4em;">{{item.name}}</view>
|
<view class="l2" style="margin-right: 4em;">{{item.name}}</view>
|
||||||
<view class="rt"><text class="code">{{ccode(g.cashietype, item.cashietype)}}</text></view>
|
<view class="rt"><text class="code">{{ccode(g.cashtype, item.cashtype)}}</text></view>
|
||||||
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
<view class="rb txt-lgg txt-wb">{{item.iemoney/100}}</view>
|
<view class="rb txt-lgg txt-wb">{{item.iemoney/100}}</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -27,12 +27,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.liid = this.opn.liid;
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -51,13 +48,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.cashie_get',
|
func: 'me.cashie_lst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -70,16 +66,8 @@
|
||||||
if (retjson.list.length < retjson.pagecount)
|
if (retjson.list.length < retjson.pagecount)
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
segment_change() {
|
segment_change(e) {
|
||||||
this.pageno = 0;
|
this.pagepost.liid = e.value.id;
|
||||||
this.getlist();
|
|
||||||
uni.pageScrollTo({
|
|
||||||
scrollTop: 0,
|
|
||||||
duration: 800
|
|
||||||
});
|
|
||||||
},
|
|
||||||
search_change(e) {
|
|
||||||
this.pagepost.query.key = e.value;
|
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
uni.pageScrollTo({
|
uni.pageScrollTo({
|
||||||
|
|
@ -9,7 +9,9 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="l2"><ciy-showmoney :value="item.inmoney" ciystyle="text-align:left;font-size:1.5em;"></ciy-showmoney></view>
|
<view class="l2">支付流水</view>
|
||||||
|
<view class="l3">{{item.name}}</view>
|
||||||
|
<view class="rt"><ciy-showmoney :value="item.inmoney" ciystyle="font-size:1.5em;"></ciy-showmoney>元</view>
|
||||||
<view class="rb">{{todatetime(item.addtimes)}}</view>
|
<view class="rb">{{todatetime(item.addtimes)}}</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
||||||
|
|
@ -22,12 +24,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.liid = this.opn.liid;
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -46,13 +45,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.cashin_get',
|
func: 'me.cashin_lst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<ciy-header title="提现历史记录" ref="header"></ciy-header>
|
<ciy-header title="收益明细" ref="header"></ciy-header>
|
||||||
<view v-if="init.code != 1">
|
<view v-if="init.code != 1">
|
||||||
<view class="px4 py4">
|
<view class="px4 py4">
|
||||||
<view style="height:2em;width:100%;" class="ciy-skeleton"></view>
|
<view style="height:2em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
|
@ -9,13 +9,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
<ciy-segment all="全部" :lis="init.lis" v-model="liid" @change="segment_change"></ciy-segment>
|
<ciy-segment lis="1:收益,2:提现" all="全部" @change="segment_change"></ciy-segment>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="l2" style="margin-right: 4em;">{{item.cashtype==1?'银行收款 (开具发票独立纳税)':'微信打款 (代扣缴个税)'}}</view>
|
<view class="l2" style="margin-right: 4em;">{{item.name}}</view>
|
||||||
<view class="rt"><text class="kbd" :class="ccode(g.cashstatus, item.cashstatus,'clas')">{{ccode(g.cashstatus, item.cashstatus)}}</text></view>
|
<view class="rt"><text class="code">{{ccode(g.cashtype, item.cashtype)}}</text></view>
|
||||||
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
<view class="rb txt-lgg txt-wb">{{item.cashmoney/100}}</view>
|
<view class="rb txt-lgg txt-wb">{{item.oemoney/100}}</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -27,16 +27,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.liid = this.opn.liid;
|
|
||||||
this.init.lis = [...this.g.cashstatus];
|
|
||||||
var ind = this.arrayfind(this.init.lis, 21, 'id');
|
|
||||||
this.init.lis.splice(ind, 1);
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -55,13 +48,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.cashout_get',
|
func: 'me.cashoe_lst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -74,14 +66,15 @@
|
||||||
if (retjson.list.length < retjson.pagecount)
|
if (retjson.list.length < retjson.pagecount)
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
segment_change() {
|
segment_change(e) {
|
||||||
|
this.pagepost.liid = e.value.id;
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
uni.pageScrollTo({
|
uni.pageScrollTo({
|
||||||
scrollTop: 0,
|
scrollTop: 0,
|
||||||
duration: 800
|
duration: 800
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -0,0 +1,196 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="提现"></ciy-header>
|
||||||
|
<view v-if="init.code != 1">
|
||||||
|
<view class="px4 py4">
|
||||||
|
<view style="height:2em;width:60%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:1em;width:40%;margin-left:1em;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:1em;width:50%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view class="ciy-list" v-for="(item,index) in init.cashs" :key="item.id">
|
||||||
|
<view class="l2">
|
||||||
|
<text class="kbd">{{cashtype==1?'银行':'微信'}}</text>
|
||||||
|
{{item.taxmoney==-1?'企业开具发票':'代缴个税 ' + (item.taxmoney/100)+' 元'}}
|
||||||
|
</view>
|
||||||
|
<ciy-showimgs label="发票" :src="item.invfile"></ciy-showimgs>
|
||||||
|
<view class="l2" v-if="item.invcode">发票号码 {{item.invcode}}</view>
|
||||||
|
<view class="l2" v-if="item.cashtimes>0">操作时间 {{todatetime(item.cashtimes)}}</view>
|
||||||
|
<view class="l2" v-if="item.cashno">支付编号 {{item.cashno}}</view>
|
||||||
|
<view class="l2" v-if="item.auditmsg">拒绝原因 {{item.auditmsg}}</view>
|
||||||
|
<view class="l2" v-if="item.bankaccount">账户名称 {{item.bankaccount}}</view>
|
||||||
|
<view class="l2" v-if="item.bankno">银行卡号 {{item.bankno}}</view>
|
||||||
|
<view class="l2" v-if="item.bankname">开户银行 {{item.bankname}}</view>
|
||||||
|
<view class="l2" v-if="item.bankcode">联行号 {{item.bankcode}}</view>
|
||||||
|
|
||||||
|
<view v-if="item.cashstatus==20 && item.cashtype==2">
|
||||||
|
<button class="btn" @tap="wxrecvpay(index)">立即收款</button>
|
||||||
|
</view>
|
||||||
|
<view v-if="item.cashstatus==20 && item.cashtype==1">
|
||||||
|
<button class="btn" @tap="showinv(index)">上传发票</button>
|
||||||
|
</view>
|
||||||
|
<view class="rt"><text class="kbd" :class="ccode(g.cashstatus, item.cashstatus,'clas')">{{ccode(g.cashstatus, item.cashstatus)}}</text></view>
|
||||||
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
|
<view class="rb txt-lgg txt-wb">{{item.cashmoney/100}}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="ciy-card char3" v-if="init.cashs.length==0">
|
||||||
|
<view class="content">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>余额</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
{{init.user.mycashmoney/100}}元
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>可提现</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
<ciy-inputbet left bb v-model="editdata.cash" unit="元" bet="100"></ciy-inputbet>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>提现流向</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
<ciy-selbool v-model="editdata.cashtype" y="银行" n="微信"></ciy-selbool>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>税务方案</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
{{editdata.cashtype==2?'代扣缴个税':(me.truename == me.bankaccount?'代扣缴个税':'对公开具发票')}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form" v-if="editdata.cashtype==1">
|
||||||
|
<label>银行账户</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
{{me.bankaccount}}<br />
|
||||||
|
{{me.bankname}}<br />
|
||||||
|
{{me.bankno}}<br />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="cashsubmit">申请提现</button>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-tip"><ciy-markdown :md="init.tip"></ciy-markdown></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<ciy-swipelist v-else title="可提现余额" :right="init.user.mycashmoney/100+'元'"></ciy-swipelist>
|
||||||
|
</view>
|
||||||
|
<ciy-swipelist title="提现历史记录" @tap="gourl" data-url="$/pages/me/cashout_lst" more></ciy-swipelist>
|
||||||
|
|
||||||
|
<ciy-anipop v-model="popinv" :zindex="991" maskbg="#00000077" title="上传发票">
|
||||||
|
<view class="bg1 pop">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">发票编号</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="invedit.invcode" type="text"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">上传发票</label>
|
||||||
|
<view style="height:10em;">
|
||||||
|
<ciy-upload left num="1" path="cashinv" v-model="invedit.invfile" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="px4 py4 txt-center">
|
||||||
|
<button class="btn lg" @tap="invsubmit">提交</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</ciy-anipop>
|
||||||
|
<view :style="{height:header_statusbar_height+'px'}"></view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
popinv: false,
|
||||||
|
invedit: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getinit();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getinit() {
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.cashout_cash_init',
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init = retjson;
|
||||||
|
this.editdata.cashtype = 2;
|
||||||
|
this.editdata.cash = Math.floor(this.init.user.mycashmoney / 100) * 100;
|
||||||
|
if (this.editdata.cash < 0)
|
||||||
|
this.editdata.cash = 0;
|
||||||
|
},
|
||||||
|
async cashsubmit() {
|
||||||
|
await this.getauth('bank');
|
||||||
|
if (this.editdata.cash <= 0)
|
||||||
|
return this.toast('不可提现');
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.cashout_cash_submit',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init.user.mycashmoney -= this.editdata.cash;
|
||||||
|
this.editdata.cash = 0;
|
||||||
|
this.toast('申请成功');
|
||||||
|
},
|
||||||
|
async wxrecvpay(idx) {
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.cashout_cash_wxrecvpay',
|
||||||
|
data: {
|
||||||
|
id: this.init.cashs[idx].id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
wx.requestMerchantTransfer({
|
||||||
|
mchId: retjson.transfer.mchid,
|
||||||
|
appId: retjson.transfer.appid,
|
||||||
|
package: retjson.transfer.package_info,
|
||||||
|
success: res => {
|
||||||
|
this.init.cashs.splice(idx, 1);
|
||||||
|
console.log('success Transfer:', res);
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
console.log('fail Transfer:', res);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showinv(idx) {
|
||||||
|
this.invedit.id = this.init.cashs[idx].id;
|
||||||
|
this.popinv = true;
|
||||||
|
},
|
||||||
|
async invsubmit(e) {
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.cashout_cash_inv',
|
||||||
|
data: this.invedit
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.objtolist(this.init.cashs, retjson.data);
|
||||||
|
this.toast('上传发票成功');
|
||||||
|
this.popinv = false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="提现历史记录" ref="header"></ciy-header>
|
||||||
|
<view v-if="init.code != 1">
|
||||||
|
<view class="px4 py4">
|
||||||
|
<view style="height:2em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
|
<ciy-segment lis="90:已拒绝,100:已完成" all="全部" @change="segment_change"></ciy-segment>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
|
<view class="l2">
|
||||||
|
<text class="kbd">{{cashtype==1?'银行':'微信'}}</text>
|
||||||
|
{{item.taxmoney==-1?'企业开具发票':'代缴个税 ' + (item.taxmoney/100)+' 元'}}
|
||||||
|
</view>
|
||||||
|
<ciy-showimgs label="发票" :src="item.invfile"></ciy-showimgs>
|
||||||
|
<view class="l2" v-if="item.invcode">发票号码 {{item.invcode}}</view>
|
||||||
|
<view class="l2" v-if="item.cashtimes>0">操作时间 {{todatetime(item.cashtimes)}}</view>
|
||||||
|
<view class="l2" v-if="item.cashno">支付编号 {{item.cashno}}</view>
|
||||||
|
<view class="l2" v-if="item.auditmsg">拒绝原因 {{item.auditmsg}}</view>
|
||||||
|
<view class="l2" v-if="item.bankaccount">账户名称 {{item.bankaccount}}</view>
|
||||||
|
<view class="l2" v-if="item.bankno">银行卡号 {{item.bankno}}</view>
|
||||||
|
<view class="l2" v-if="item.bankname">开户银行 {{item.bankname}}</view>
|
||||||
|
<view class="l2" v-if="item.bankcode">联行号 {{item.bankcode}}</view>
|
||||||
|
|
||||||
|
<view class="rt"><text class="kbd" :class="ccode(g.cashstatus, item.cashstatus,'clas')">{{ccode(g.cashstatus, item.cashstatus)}}</text></view>
|
||||||
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
|
<view class="rb txt-lgg txt-wb">{{item.cashmoney/100}}</view>
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getlist();
|
||||||
|
},
|
||||||
|
onReachBottom(b) {
|
||||||
|
if (this.init.code != 1)
|
||||||
|
return;
|
||||||
|
this.getlist();
|
||||||
|
},
|
||||||
|
onPullDownRefresh(b) {
|
||||||
|
this.pageno = 0;
|
||||||
|
this._stopPullDown = true;
|
||||||
|
this.getlist();
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
async getlist() {
|
||||||
|
if (this.pageno < 0)
|
||||||
|
return;
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.cashout_lst_list',
|
||||||
|
data: this.pagepost
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.pageno++;
|
||||||
|
if (this.pageno == 1)
|
||||||
|
this.init.list = [];
|
||||||
|
this.init = this.objdeepmerge(this.init, retjson);
|
||||||
|
if (retjson.list.length < retjson.pagecount)
|
||||||
|
this.pageno = -1;
|
||||||
|
},
|
||||||
|
segment_change(e) {
|
||||||
|
this.pagepost.liid = e.value.id;
|
||||||
|
this.pageno = 0;
|
||||||
|
this.getlist();
|
||||||
|
uni.pageScrollTo({
|
||||||
|
scrollTop: 0,
|
||||||
|
duration: 800
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -7,13 +7,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
<ciy-segment :lis="init.lis" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
<ciy-segment lis="20:待开票,100:已开票,90:已拒开" all="全部" @change="segment_change"></ciy-segment>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="rt">
|
<view class="rt">
|
||||||
<text class="code" v-if="item.invtimes>0">已开票</text>
|
<text class="kbd" :class="ccode(g.auditstatus, item.auditstatus,'clas')">{{ccode(g.auditstatus,item.auditstatus)}}</text>
|
||||||
<text class="code" v-else style="color:var(--txt1);">未开票</text>
|
|
||||||
</view>
|
</view>
|
||||||
|
<view class="l2 txt-wb">{{ccode(init.ap_invoicedetail,item.invoicedetailid)}}</view>
|
||||||
<view class="l2">{{item.name}}</view>
|
<view class="l2">{{item.name}}</view>
|
||||||
<view class="l3" v-if="item.taxnumber">税号 {{item.taxnumber}}</view>
|
<view class="l3" v-if="item.taxnumber">税号 {{item.taxnumber}}</view>
|
||||||
<view class="l3" v-if="item.addr">地址 {{item.addr}}</view>
|
<view class="l3" v-if="item.addr">地址 {{item.addr}}</view>
|
||||||
|
|
@ -21,6 +21,13 @@
|
||||||
<view class="l3" v-if="item.bankname">银行 {{item.bankname}}</view>
|
<view class="l3" v-if="item.bankname">银行 {{item.bankname}}</view>
|
||||||
<view class="l3" v-if="bankaccount">账号 {{item.bankaccount}}</view>
|
<view class="l3" v-if="bankaccount">账号 {{item.bankaccount}}</view>
|
||||||
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
|
<template v-if="item.audittimes>20">
|
||||||
|
<view class="ciy-hr"></view>
|
||||||
|
<view class="l2" v-if="item.invcode">发票号码 <text class="txt-lgg px2" @tap="copyboard(item.invcode)">{{item.invcode}}</text></view>
|
||||||
|
<ciy-showimgs label="发票附件" :src="item.invfile"></ciy-showimgs>
|
||||||
|
<view class="l2">操作时间 {{todatetime(item.audittimes)}}</view>
|
||||||
|
<view class="l2" v-if="item.auditmsg">拒开原因 {{item.auditmsg}}</view>
|
||||||
|
</template>
|
||||||
<view class="rb">
|
<view class="rb">
|
||||||
<text class="txt-lgg txt-wb px2">{{item.invoicemoney/100}}</text>
|
<text class="txt-lgg txt-wb px2">{{item.invoicemoney/100}}</text>
|
||||||
<text class="txt-smm">元</text>
|
<text class="txt-smm">元</text>
|
||||||
|
|
@ -36,22 +43,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.liid = this.opn.liid;
|
|
||||||
this.init.lis = [];
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 2,
|
|
||||||
name: '待开票'
|
|
||||||
});
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 3,
|
|
||||||
name: '已开票'
|
|
||||||
});
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -70,13 +64,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.invoicing_get',
|
func: 'me.invoice_lst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -89,7 +82,8 @@
|
||||||
if (retjson.list.length < retjson.pagecount)
|
if (retjson.list.length < retjson.pagecount)
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
segment_change() {
|
segment_change(e) {
|
||||||
|
this.pagepost.liid = e.value.id;
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
uni.pageScrollTo({
|
uni.pageScrollTo({
|
||||||
|
|
@ -6,70 +6,68 @@
|
||||||
<view style="height:8em;width:100%;" class="ciy-skeleton"></view>
|
<view style="height:8em;width:100%;" class="ciy-skeleton"></view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-list" :class="{selected:opn.sel&&item.id==opn.id,del:item._clas=='del'}" v-for="(item,index) in init.list" :key="item.id" @click="select(item.id)">
|
<view class="ciy-list" :class="{selected:opn.sel&&item.id==opn.id,del:item._del}" v-for="(item,index) in init.list" :key="item.id" @tap="select(item.id)">
|
||||||
<view class="l2">名称 {{item.name}}</view>
|
<view class="l2">名称 {{item.name}}</view>
|
||||||
<view class="l2" v-if="item.taxnumber">税号 {{item.taxnumber}}</view>
|
<view class="l2" v-if="item.taxnumber">税号 {{item.taxnumber}}</view>
|
||||||
<view class="l2" v-if="item.addr">单位地址 {{item.addr}}</view>
|
<view class="l2" v-if="item.addr">单位地址 {{item.addr}}</view>
|
||||||
<view class="l2" v-if="item.phone">电话号码 {{item.phone}}</view>
|
<view class="l2" v-if="item.phone">电话号码 {{item.phone}}</view>
|
||||||
<view class="l2" v-if="item.bankname">银行名称 {{item.bankname}}</view>
|
<view class="l2" v-if="item.bankname">银行名称 {{item.bankname}}</view>
|
||||||
<view class="l2" v-if="item.bankaccount">银行账号 {{item.bankaccount}}</view>
|
<view class="l2" v-if="item.bankaccount">银行账号 {{item.bankaccount}}</view>
|
||||||
<view class="dot" @click="showmenu(index)"></view>
|
<view class="dot" @tap.stop="showmenu(index)"></view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height:5em;"></view>
|
<view style="height:5em;"></view>
|
||||||
<view class="ciy-add" style="z-index:41;" @tap="editshow(null)"></view>
|
<view class="ciy-add" style="z-index:41;bottom:6em;" @tap="editshow(null)"></view>
|
||||||
<view v-if="opn.sel">
|
<view v-if="opn.sel">
|
||||||
<view class="bg1 txt-center py4 ciy-bottom">
|
<view class="bg1 txt-center py4 ciy-bottom">
|
||||||
<button class="btn lg" @click="selectok">选定</button>
|
<button class="btn lg" @tap="selectok">选定</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-anipop v-model="popedit" :zindex="998" maskbg="#00000077" :title="edit.id>0?'更新抬头':'新建抬头'">
|
<ciy-anipop v-model="popedit" :zindex="998" maskbg="#00000077" :title="editdata.id>0?'更新抬头':'新建抬头'">
|
||||||
<view class="bg1 pop">
|
<view class="bg1 pop char5">
|
||||||
<form @submit="submit_edit" class="char5">
|
<view class="ciy-form">
|
||||||
<view class="ciy-form">
|
<label class="imp">抬头名称</label>
|
||||||
<label class="imp">抬头名称</label>
|
<view>
|
||||||
<view>
|
<ciy-input bb v-model="editdata.name"></ciy-input>
|
||||||
<ciy-input name="name" v-model="edit.name" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label class="imp">税号</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>税号</label>
|
||||||
<ciy-input name="taxnumber" v-model="edit.taxnumber" bb></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.taxnumber"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>单位地址</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>单位地址</label>
|
||||||
<ciy-input name="addr" v-model="edit.addr" bb></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.addr"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>电话号码</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>电话号码</label>
|
||||||
<ciy-input name="phone" v-model="edit.phone" bb ciystyle="width:9em;"></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.phone" ciystyle="width:9em;"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>银行名称</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>银行名称</label>
|
||||||
<ciy-input name="bankname" v-model="edit.bankname" bb></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.bankname"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>银行账号</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>银行账号</label>
|
||||||
<ciy-input name="bankaccount" v-model="edit.bankaccount" bb></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.bankaccount"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="rel px4 py4 txt-center">
|
</view>
|
||||||
<button class="btn lg" form-type="submit">提交</button>
|
<view class="rel px4 py4 txt-center">
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
<button class="btn lg" @tap="submit_edit">提交</button>
|
||||||
<view class="abs t1 r1">
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
<button class="btn sm" @tap="chooseinvoice">从微信同步</button>
|
<view class="abs t1 r1">
|
||||||
</view>
|
<button class="btn sm" @tap="chooseinvoice">从微信同步</button>
|
||||||
<!-- #endif -->
|
|
||||||
</view>
|
</view>
|
||||||
</form>
|
<!-- #endif -->
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</ciy-anipop>
|
</ciy-anipop>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -95,9 +93,6 @@
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
popedit: false,
|
popedit: false,
|
||||||
edit: {
|
|
||||||
id: -1
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -110,8 +105,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.invoicetitle_get'
|
func: 'me.invoicetitle_list'
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -146,41 +141,35 @@
|
||||||
editshow(item) {
|
editshow(item) {
|
||||||
item = item || {
|
item = item || {
|
||||||
data: {
|
data: {
|
||||||
_idx: -1
|
id: 0
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.edit = {
|
this.editdata = {
|
||||||
...item.data
|
...item.data
|
||||||
};
|
};
|
||||||
this.popedit = true;
|
this.popedit = true;
|
||||||
},
|
},
|
||||||
async submit_edit(e) {
|
async submit_edit() {
|
||||||
if (!e.detail.value.name)
|
if (!this.editdata.name)
|
||||||
return this.alert('请输入抬头名称');
|
return this.alert('请输入抬头名称');
|
||||||
if (!e.detail.value.taxnumber)
|
|
||||||
return this.alert('请输入税号');
|
|
||||||
e.detail.value.id = this.edit.id;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.invoicetitle_edit',
|
func: 'me.invoicetitle_edit',
|
||||||
data: e.detail.value
|
data: this.editdata
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
if (this.edit._idx == -1)
|
this.objtolist(this.init.list, retjson.data);
|
||||||
this.init.list.unshift(retjson.data);
|
|
||||||
else
|
|
||||||
this.init.list[this.edit._idx] = this.objdeepmerge(this.init.list[this.edit._idx], retjson.data);
|
|
||||||
this.popedit = false;
|
this.popedit = false;
|
||||||
this.toast('更新成功');
|
this.toast('更新成功');
|
||||||
},
|
},
|
||||||
async del(item) {
|
async del(item) {
|
||||||
if (await this.askmsg('是否删除?') != 'ok')
|
if (await this.askmsg('是否删除?') != 'ok')
|
||||||
return;
|
return;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.invoicetitle_del',
|
func: 'me.invoicetitle_del',
|
||||||
data: {
|
data: {
|
||||||
id: item.data.id
|
id: item.data.id
|
||||||
|
|
@ -188,7 +177,7 @@
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
this.init.list[item.data._idx]._clas = 'del';
|
this.init.list[item.data._idx]._del = true;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.init.list.splice(item.data._idx, 1);
|
this.init.list.splice(item.data._idx, 1);
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="我要开票"></ciy-header>
|
||||||
|
<view v-if="init.code != 1">
|
||||||
|
<view class="px4 py4">
|
||||||
|
<view style="height:2em;width:60%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:1em;width:40%;margin-left:1em;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:1em;width:50%;" class="ciy-skeleton"></view>
|
||||||
|
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view class="ciy-card char3">
|
||||||
|
<view class="content">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>可开票金额</label>
|
||||||
|
<view style="text-align: left;">
|
||||||
|
{{init.user.myinvmoney/100}}元
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>开票金额</label>
|
||||||
|
<view>
|
||||||
|
<ciy-inputbet bb v-model="editdata.money" unit="元" bet="100"></ciy-inputbet>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form" v-if="init.details.length>0">
|
||||||
|
<label>开票明细</label>
|
||||||
|
<view>
|
||||||
|
<ciy-select v-model="editdata.invoicedetailid" :range="init.details"></ciy-select>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>发票抬头</label>
|
||||||
|
<view>
|
||||||
|
<ciy-selpage v-model="editdata.invoicetitleid" page="invoicetitle">
|
||||||
|
<template v-slot:default="{data}">
|
||||||
|
<view>{{data.name}}</view>
|
||||||
|
<view class="txt1">{{data.taxnumber}}</view>
|
||||||
|
</template>
|
||||||
|
</ciy-selpage>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">申请开票</button>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-tip"><ciy-markdown :md="init.tip"></ciy-markdown></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<ciy-swipelist title="开票历史" @tap="gourl" data-url="invoice_lst" more></ciy-swipelist>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getinit();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getinit() {
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.invoicing_init',
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init = retjson;
|
||||||
|
this.editdata.money = retjson.user.myinvmoney;
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
if (this.editdata.money < 1000)
|
||||||
|
return this.toast('开票金额10元');
|
||||||
|
if (this.init.user.myinvmoney < this.editdata.money)
|
||||||
|
return this.toast('开票金额不足');
|
||||||
|
if (!this.editdata.invoicetitleid)
|
||||||
|
return this.toast('请选择发票抬头');
|
||||||
|
if (this.init.details.length > 0) {
|
||||||
|
if (!this.editdata.invoicedetailid)
|
||||||
|
return this.toast('请选择发票明细');
|
||||||
|
}
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.invoicing_submit',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init.user.myinvmoney -= this.editdata.money;
|
||||||
|
this.me.myinvmoney = this.init.user.myinvmoney;
|
||||||
|
this.setstorage('me', this.me);
|
||||||
|
this.toast('申请成功');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
return this.toast('请输入开户银行');
|
return this.toast('请输入开户银行');
|
||||||
|
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.me_bank_info_change',
|
func: 'me.me_bank_info_change',
|
||||||
data: e.detail.value
|
data: e.detail.value
|
||||||
});
|
});
|
||||||
|
|
@ -6,9 +6,6 @@
|
||||||
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
<view style="height:6em;width:100%;" class="ciy-skeleton"></view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
|
||||||
<ciy-segment :lis="init.lis" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="rt">
|
<view class="rt">
|
||||||
<text class="code" v-if="item.paytimes>0">已支付</text>
|
<text class="code" v-if="item.paytimes>0">已支付</text>
|
||||||
|
|
@ -18,6 +15,8 @@
|
||||||
<text class="txt-lgg txt-wb px2">{{item.pnt}}</text>
|
<text class="txt-lgg txt-wb px2">{{item.pnt}}</text>
|
||||||
<text class="txt-smm">金币</text>
|
<text class="txt-smm">金币</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="l2">支付流水</view>
|
||||||
|
<view class="l3">{{item.name}}</view>
|
||||||
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
<view class="lb">{{todatetime(item.addtimes)}}</view>
|
||||||
<view class="rb">
|
<view class="rb">
|
||||||
<text class="txt-lgg txt-wb px2">{{item.buypntmoney/100}}</text>
|
<text class="txt-lgg txt-wb px2">{{item.buypntmoney/100}}</text>
|
||||||
|
|
@ -34,22 +33,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.liid = this.opn.liid;
|
|
||||||
this.init.lis = [];
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 2,
|
|
||||||
name: '未支付'
|
|
||||||
});
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 3,
|
|
||||||
name: '已支付'
|
|
||||||
});
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -68,13 +54,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.pntbuy_get',
|
func: 'me.pnt_buylst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -87,14 +72,6 @@
|
||||||
if (retjson.list.length < retjson.pagecount)
|
if (retjson.list.length < retjson.pagecount)
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
segment_change() {
|
|
||||||
this.pageno = 0;
|
|
||||||
this.getlist();
|
|
||||||
uni.pageScrollTo({
|
|
||||||
scrollTop: 0,
|
|
||||||
duration: 800
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-grid">
|
<view class="ciy-grid">
|
||||||
<view class="grid" style="width:50%" @tap="gourl" data-url="$/pages/main/me_pnt_buy">
|
<view class="grid" style="width:50%" @tap="gourl" data-url="pnt_buylst">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.buy)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.buy)}"></view>
|
||||||
<view class="name">购买记录</view>
|
<view class="name">购买记录</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="grid" style="width:50%" @tap="gourl" data-url="/pages/main/me_pnt_record">
|
<view class="grid" style="width:50%" @tap="gourl" data-url="pnt_lst">
|
||||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.record)}"></view>
|
<view class="icon" :style="{backgroundImage:svg2bg(svg.record)}"></view>
|
||||||
<view class="name">金币流水</view>
|
<view class="name">金币流水</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<text>{{tonumtho(item.buypnt)}}</text>金币
|
<text>{{tonumtho(item.buypnt)}}</text>金币
|
||||||
</view>
|
</view>
|
||||||
<view class="money">
|
<view class="money">
|
||||||
<text>{{item.buymoney/100}}</text>元
|
<text class="txt-wl">{{item.buymoney/100}}</text>元
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -72,7 +72,6 @@
|
||||||
.fpay .money>text {
|
.fpay .money>text {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
padding: 0 0.3em;
|
padding: 0 0.3em;
|
||||||
font-weight: 100;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
@ -92,8 +91,8 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.buy_init',
|
func: 'me.pnt_buynow_init',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -104,8 +103,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.buy_paynow',
|
func: 'me.pnt_buynow_pay',
|
||||||
data: {
|
data: {
|
||||||
id: this.init.buys[this.currbuy].id
|
id: this.init.buys[this.currbuy].id
|
||||||
}
|
}
|
||||||
|
|
@ -118,8 +117,8 @@
|
||||||
try {
|
try {
|
||||||
var retpay = await uni.requestPayment(retjson);
|
var retpay = await uni.requestPayment(retjson);
|
||||||
await this.sleep(1000);
|
await this.sleep(1000);
|
||||||
var retjson2 = await this.callajax({
|
var retjson2 = await this.callfunc({
|
||||||
func: 'me.buy_paychk',
|
func: 'me.pnt_buynow_chk',
|
||||||
data: {
|
data: {
|
||||||
orderid: retjson.orderid
|
orderid: retjson.orderid
|
||||||
}
|
}
|
||||||
|
|
@ -24,9 +24,7 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getlist();
|
this.getlist();
|
||||||
|
|
@ -47,12 +45,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.pntrecord_get',
|
func: 'me.pnt_lst_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -9,12 +9,9 @@
|
||||||
<view v-else class="flex flexcol" :style="'height:calc(100vh - ' + (header_statusbar_height+header_title_height) + 'px);'">
|
<view v-else class="flex flexcol" :style="'height:calc(100vh - ' + (header_statusbar_height+header_title_height) + 'px);'">
|
||||||
<scroll-view @scrolltoupper="chgupper" :scroll-top="top" id="id_chats" class="flex1" style="overflow: auto;" scroll-y>
|
<scroll-view @scrolltoupper="chgupper" :scroll-top="top" id="id_chats" class="flex1" style="overflow: auto;" scroll-y>
|
||||||
<view class="ciy-list">
|
<view class="ciy-list">
|
||||||
<view class="l2" v-html="tobr(init.once.data.content)"></view>
|
<view class="l2" v-html="tobr(init.problem.content)"></view>
|
||||||
<ciy-showimgs :src="init.once.data.imgs" label="图片截图"></ciy-showimgs>
|
<ciy-showimgs :src="init.problem.imgs" label="图片截图"></ciy-showimgs>
|
||||||
<view class="rt">
|
<view class="rb">{{todatetime(init.problem.addtimes)}} 提交</view>
|
||||||
<button class="btn smm" @tap="closechat">关闭工单</button>
|
|
||||||
</view>
|
|
||||||
<view class="rb">{{todatetime(init.once.data.addtimes)}} 提交</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view :class="item._od" class="vchat" v-for="(item,index) in init.list" :key="item.id">
|
<view :class="item._od" class="vchat" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="nick" v-if="item.nick">{{item.nick}}</view>
|
<view class="nick" v-if="item.nick">{{item.nick}}</view>
|
||||||
|
|
@ -22,11 +19,11 @@
|
||||||
<view class="time">{{todatetime(item.addtimes,'st')}}</view>
|
<view class="time">{{todatetime(item.addtimes,'st')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<form @submit="submitsend" v-if="init.once.data.closetimes==0">
|
<form v-if="init.problem.closetimes==0">
|
||||||
<view class="bg2 vchatsend">
|
<view class="bg2 vchatsend">
|
||||||
<!-- <view><button class="btn def" @tap="sendimg">图片</button></view> -->
|
<!-- <view><button class="btn def" @tap="sendimg">图片</button></view> -->
|
||||||
<view style="flex:1;"><ciy-textarea name="content" v-model="content"></ciy-textarea></view>
|
<view style="flex:1;"><ciy-textarea v-model="editdata.content"></ciy-textarea></view>
|
||||||
<view><button form-type="submit" class="btn">发送</button></view>
|
<view><button @tap="submitsend" class="btn">发送</button></view>
|
||||||
</view>
|
</view>
|
||||||
</form>
|
</form>
|
||||||
<view class="bg2 txt-center px4 py4" v-else>
|
<view class="bg2 txt-center px4 py4" v-else>
|
||||||
|
|
@ -67,6 +64,7 @@
|
||||||
|
|
||||||
.vchat.me .chat {
|
.vchat.me .chat {
|
||||||
background: var(--succ4);
|
background: var(--succ4);
|
||||||
|
color: var(--txt9);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
clear: both;
|
clear: both;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
|
|
@ -89,8 +87,7 @@
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
top: 0,
|
top: 999999999,
|
||||||
content: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -114,8 +111,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.problechat_get',
|
func: 'me.problem_chat_get',
|
||||||
data: {
|
data: {
|
||||||
mid: this.minid,
|
mid: this.minid,
|
||||||
op: 'min',
|
op: 'min',
|
||||||
|
|
@ -130,8 +127,8 @@
|
||||||
this.minid = 0;
|
this.minid = 0;
|
||||||
},
|
},
|
||||||
async getnew(blong) {
|
async getnew(blong) {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.problechat_get',
|
func: 'me.problem_chat_get',
|
||||||
data: {
|
data: {
|
||||||
mid: this.maxid,
|
mid: this.maxid,
|
||||||
op: 'max',
|
op: 'max',
|
||||||
|
|
@ -168,19 +165,20 @@
|
||||||
chgupper(e) {
|
chgupper(e) {
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
async submitsend(e) {
|
async submitsend() {
|
||||||
if (!e.detail.value.content)
|
if (!this.editdata.content)
|
||||||
return this.toast('请输入内容');
|
return this.toast('请输入内容');
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
e.detail.value.id = this.opn.id;
|
var retjson = await this.callfunc({
|
||||||
var retjson = await this.callajax({
|
func: 'me.problem_chat_send',
|
||||||
func: 'me.problechat_send',
|
data: this.editdata
|
||||||
data: e.detail.value
|
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
this.content = '';
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.editdata.content = '';
|
||||||
retjson.list = [retjson.data];
|
retjson.list = [retjson.data];
|
||||||
this.callist(retjson.list);
|
this.callist(retjson.list);
|
||||||
this.init = this.objdeepmerge(this.init, retjson);
|
this.init = this.objdeepmerge(this.init, retjson);
|
||||||
|
|
@ -188,21 +186,6 @@
|
||||||
this.top = 999999999 + this.maxid;
|
this.top = 999999999 + this.maxid;
|
||||||
}, 300);
|
}, 300);
|
||||||
},
|
},
|
||||||
async closechat(e) {
|
|
||||||
if (await this.askmsg('是否关闭工单?', '关闭') != 'ok')
|
|
||||||
return;
|
|
||||||
if (this._loading)
|
|
||||||
return;
|
|
||||||
this._loading = true;
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'me.problechat_close',
|
|
||||||
data: {
|
|
||||||
id: this.opn.id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this._loading = false;
|
|
||||||
uni.navigateBack();
|
|
||||||
},
|
|
||||||
sendimg() {}
|
sendimg() {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||||
<ciy-segment :lis="init.lis" v-model="liid" @change="segment_change"></ciy-segment>
|
<ciy-segment lis=":等待中,3:有回复,9:已关闭" v-model="liid" @change="segment_change"></ciy-segment>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id" @tap="showmenu(index)">
|
||||||
<view class="l2" v-html="tobr(item.content)" @tap="gourl" :data-url="'me_problechat?id=' + item.id"></view>
|
<view class="l2" v-html="tobr(item.content)"></view>
|
||||||
<ciy-showimgs :src="item.imgs" label="图片截图"></ciy-showimgs>
|
<ciy-showimgs :src="item.imgs" label="图片截图"></ciy-showimgs>
|
||||||
<view class="rt" v-if="item.closetimes>0">已关闭</view>
|
<view class="rt" v-if="item.closetimes>0">已关闭</view>
|
||||||
<view class="rt" style="color:var(--succ5)" v-else-if="item.replytimes>0">有回复</view>
|
<view class="rt" style="color:var(--succ5)" v-else-if="item.replytimes>0">有回复</view>
|
||||||
|
|
@ -21,29 +21,27 @@
|
||||||
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
<ciy-listend :page="pageno" :listlen="init.list.length" :nodataimg="file_stor('/img/mbnone.png')"></ciy-listend>
|
||||||
<view class="ciy-add" @tap="openadd()"></view>
|
<view class="ciy-add" @tap="openadd()"></view>
|
||||||
<ciy-dialog ref="dialog">
|
<ciy-dialog ref="dialog">
|
||||||
<form @submit="editsubmit">
|
<view class="ciy-form v">
|
||||||
<view class="ciy-form v">
|
<label class="imp">问题描述</label>
|
||||||
<label class="imp">问题描述</label>
|
<view>
|
||||||
<view>
|
<ciy-textarea bb v-model="editdata.content" ciystyle="min-height:4em"></ciy-textarea>
|
||||||
<ciy-textarea name="content" type="text" bb ciystyle="min-height:4em"></ciy-textarea>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>图片截图</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>图片截图</label>
|
||||||
<ciy-upload left num="8" path="problem" name="imgs" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
<view>
|
||||||
</view>
|
<ciy-upload left num="8" path="problem" v-model="editdata.imgs" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form">
|
</view>
|
||||||
<label>联系方式</label>
|
<view class="ciy-form">
|
||||||
<view>
|
<label>联系方式</label>
|
||||||
<ciy-input :value="me.mobile" name="contract" type="text" bb></ciy-input>
|
<view>
|
||||||
</view>
|
<ciy-input bb v-model="editdata.contract"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-form-bottom">
|
</view>
|
||||||
<button class="btn lg cc" form-type="submit">建立工单</button>
|
<view class="ciy-form-bottom">
|
||||||
</view>
|
<button class="btn lg cc" @tap="edited">建立工单</button>
|
||||||
</form>
|
</view>
|
||||||
</ciy-dialog>
|
</ciy-dialog>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -54,25 +52,9 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
liid: 0,
|
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.init.lis = [];
|
|
||||||
this.init.lis.push({
|
|
||||||
id: '',
|
|
||||||
name: '等待中'
|
|
||||||
});
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 3,
|
|
||||||
name: '有回复'
|
|
||||||
});
|
|
||||||
this.init.lis.push({
|
|
||||||
id: 9,
|
|
||||||
name: '已关闭'
|
|
||||||
});
|
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
onReachBottom(b) {
|
onReachBottom(b) {
|
||||||
|
|
@ -91,13 +73,12 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.query.liid = this.liid;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.problem_get',
|
func: 'me.problem_pub_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -111,32 +92,70 @@
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
openadd() {
|
openadd() {
|
||||||
|
this.editdata.contract = this.me.mobile;
|
||||||
this.getrefsSync('dialog').Open({
|
this.getrefsSync('dialog').Open({
|
||||||
title: '新建工单'
|
title: '新建工单'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async editsubmit(e) {
|
async edited() {
|
||||||
if (!e.detail.value.content)
|
if (!this.editdata.content)
|
||||||
return this.toast('请输入问题描述');
|
return this.toast('请输入问题描述');
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.problem_add',
|
func: 'me.problem_pub_add',
|
||||||
data: e.detail.value
|
data: this.editdata
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
this.getrefsSync('dialog').Close();
|
this.getrefsSync('dialog').Close();
|
||||||
this.init.list.unshift(retjson.data);
|
this.init.list.unshift(retjson.data);
|
||||||
},
|
},
|
||||||
segment_change() {
|
segment_change(e) {
|
||||||
|
this.pagepost.liid = e.value.id;
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
uni.pageScrollTo({
|
uni.pageScrollTo({
|
||||||
scrollTop: 0,
|
scrollTop: 0,
|
||||||
duration: 800
|
duration: 800
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
async close(item) {
|
||||||
|
if (await this.askmsg('是否关闭工单?', '关闭工单') != 'ok')
|
||||||
|
return;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.problem_pub_close',
|
||||||
|
data: {
|
||||||
|
id: item.data.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.init.list[item.data._idx].closetimes = this.tostamp();
|
||||||
|
},
|
||||||
|
showmenu(idx) {
|
||||||
|
var dat = this.init.list[idx];
|
||||||
|
dat._idx = idx;
|
||||||
|
var items = [];
|
||||||
|
items.push({
|
||||||
|
url: 'problem_chat?id=' + dat.id,
|
||||||
|
name: '详情',
|
||||||
|
});
|
||||||
|
if (dat.closetimes == 0) {
|
||||||
|
items.push({
|
||||||
|
func: 'close',
|
||||||
|
name: '关闭工单',
|
||||||
|
data: dat,
|
||||||
|
style: 'color:var(--warn6)',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.popmenu({
|
||||||
|
one: true,
|
||||||
|
items
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -0,0 +1,98 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="申请众识码"></ciy-header>
|
||||||
|
<view v-if="init.code != 1" class="px4 py4">
|
||||||
|
<view style="height:60vw;width:100%;" class="ciy-skeleton"></view>
|
||||||
|
</view>
|
||||||
|
<view v-else-if="me.cciy.length > 10" class="txt-center py4">
|
||||||
|
您已申请成功
|
||||||
|
<view @tap="copyboard(me.cciy)" class="txt-lgg py4">{{me.cciy}}</view>
|
||||||
|
</view>
|
||||||
|
<view v-else-if="init.data && init.data.auditstatus != 90">
|
||||||
|
<view class="ciy-tip" v-if="init.data.auditstatus == 20">您已提交申请,等待审核...</view>
|
||||||
|
<view class="ciy-tip" v-if="init.data.auditstatus == 50">您的申请正在审核中...</view>
|
||||||
|
<view class="ciy-tip" v-if="init.data.auditstatus == 100">您已申请通过</view>
|
||||||
|
<view class="ciy-list">
|
||||||
|
<view class="l1">{{init.data.name}}</view>
|
||||||
|
<view class="l1">{{init.data.country}}</view>
|
||||||
|
<view class="rb">{{todatetime(init.data.addtimes)}} 申请</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view class="ciy-tip" v-if="init.data?.auditmsg">
|
||||||
|
{{init.data.auditmsg}}
|
||||||
|
</view>
|
||||||
|
<view class="ciy-card char4">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">主体国籍</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="editdata.country" type="idcard"></ciy-input>
|
||||||
|
</view>
|
||||||
|
<view class="flexnone px4" @tap="editdata.country='中国'">
|
||||||
|
中国
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">多国身份</label>
|
||||||
|
<view class="txt-left">
|
||||||
|
<ciy-selbool v-model="editdata.dualcitizen" y="存在" n="没有"></ciy-selbool>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">申请众识码</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-tip"><ciy-markdown :md="init.tip"></ciy-markdown></view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getinit();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getinit() {
|
||||||
|
await this.getauth('real');
|
||||||
|
if(this.me.cciy.length > 11)
|
||||||
|
return this.init.code = 1;
|
||||||
|
this.editdata.dualcitizen = 2;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.safe_ccub_init'
|
||||||
|
});
|
||||||
|
this.init = retjson;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
if (retjson.data && retjson.data.auditstatus == 100 && this.me.cciy.length < 12) {
|
||||||
|
this.me.cciy = retjson.data.cciy;
|
||||||
|
this.setstorage('me', this.me);
|
||||||
|
var app = getApp();
|
||||||
|
var page = app.getpage(1);
|
||||||
|
page.me = this.me;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async submit(e) {
|
||||||
|
if (this.editdata.country.length < 1)
|
||||||
|
return this.toast('请输入主体国籍');
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.safe_ccub_submit',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
await this.toast('申请提交成功');
|
||||||
|
uni.navigateBack();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="修改密码"></ciy-header>
|
||||||
|
<view>
|
||||||
|
<view class="ciy-card char4">
|
||||||
|
<view class="content">
|
||||||
|
<view class="ciy-form" v-if="!me.needpass">
|
||||||
|
<label class="imp">旧密码</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.oldpass" type="password" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">新密码</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.newpass" type="password" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">再次输入</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.repass" type="password" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">修改密码</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {},
|
||||||
|
methods: {
|
||||||
|
async submit() {
|
||||||
|
if (this.editdata.newpass.length < 1)
|
||||||
|
return this.toast('请输入新密码');
|
||||||
|
if (this.editdata.newpass != this.editdata.repass)
|
||||||
|
return this.toast('两次输入的新密码不同');
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.safe_password_change',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.me.needpass = false;
|
||||||
|
this.setstorage('me', this.me);
|
||||||
|
await this.toast('修改成功');
|
||||||
|
uni.navigateBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -3,63 +3,69 @@
|
||||||
<view v-if="init.code != 1" class="px4 py4">
|
<view v-if="init.code != 1" class="px4 py4">
|
||||||
<view style="height:60vw;width:100%;" class="ciy-skeleton"></view>
|
<view style="height:60vw;width:100%;" class="ciy-skeleton"></view>
|
||||||
</view>
|
</view>
|
||||||
|
<view v-else-if="me.truename" class="txt-center py4">
|
||||||
|
{{me.truename}},已通过实名认证<br/>
|
||||||
|
{{tomsk(me.idid, '*#**')}}
|
||||||
|
</view>
|
||||||
<view v-else-if="init.data && init.data.auditstatus != 90">
|
<view v-else-if="init.data && init.data.auditstatus != 90">
|
||||||
<view class="ciy-tip" v-if="init.data.auditstatus == 20">您已提交申请,等待审核...</view>
|
<view class="ciy-tip" v-if="init.data.auditstatus == 20">您已提交申请,等待审核...</view>
|
||||||
<view class="ciy-tip" v-if="init.data.auditstatus == 50">您的申请正在审核中...</view>
|
<view class="ciy-tip" v-if="init.data.auditstatus == 50">您的申请正在审核中...</view>
|
||||||
<view class="ciy-tip" v-if="init.data.auditstatus == 100">您已申请通过</view>
|
<view class="ciy-tip" v-if="init.data.auditstatus == 100">您已申请通过</view>
|
||||||
<view class="ciy-list">
|
<view class="ciy-list">
|
||||||
<view class="l1">{{init.data.name}}</view>
|
<view class="l1">{{init.data.name}}</view>
|
||||||
<view class="l1">{{init.data.idid}}</view>
|
<view class="l1">{{tomsk(init.data.idid, '**###***')}}</view>
|
||||||
<view class="rb">{{todatetime(init.data.addtimes)}} 申请</view>
|
<view class="rb">{{todatetime(init.data.addtimes)}} 申请</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-tip" v-if="init.data && init.data.auditmsg">
|
<view class="ciy-tip" v-if="init.data?.auditmsg">
|
||||||
{{init.data.auditmsg}}
|
{{init.data.auditmsg}}
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="ciy-card">
|
<view class="ciy-card char4">
|
||||||
|
<view class="ciy-form" v-if="inputtype==2">
|
||||||
|
<label class="imp">人像面</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left num="1" path="idid" v-model="editdata.idcard1" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form" v-if="inputtype==2">
|
||||||
|
<label class="imp">国徽面</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left num="1" path="idid" v-model="editdata.idcard2" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">实名姓名</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb :disabled="inputtype!=2" v-model="editdata.name" ciystyle="width:6em;" type="text"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">身份证号</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb :disabled="inputtype!=2" v-model="editdata.idid" type="idcard"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">申请实名认证</button>
|
||||||
|
</view>
|
||||||
|
<view class="content" v-if="inputtype==1">
|
||||||
|
<label>摄像头拍摄身份证正面(人像面),自动识别</label>
|
||||||
|
<view>
|
||||||
|
<ciy-aicameraocr ref="cameraocr" checkidcard="front" mode="idcard" @change="chgcameraocr"></ciy-aicameraocr>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="inputtype==2" style="position: fixed;bottom: 3em;left: calc(50vw - 1.5em);">
|
||||||
|
<ciy-aivoice @change="chgvoice"></ciy-aivoice>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-card" v-if="inputtype==3">
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="ciy-form-bottom">
|
<view class="ciy-form-bottom">
|
||||||
<button class="btn lg cc" @tap="readnfc">{{nfcwork==0?'手机贴近身份证识别':'停止NFC扫描'}}</button>
|
<button class="btn lg cc" @tap="readnfc">{{nfcwork==0?'手机贴近身份证识别':'停止NFC扫描'}}</button>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
|
||||||
无需审核,立即完成实名认证。
|
|
||||||
</view>
|
|
||||||
<view v-if="nfcdata.name">
|
|
||||||
<view v-if="nfcdata.name">姓名 {{nfcdata.name}}</view>
|
|
||||||
<view v-if="nfcdata.idno">证号 {{nfcdata.idno}}</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" @tap="autoreal">立即实名完成</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view> -->
|
</view>
|
||||||
<form @submit="submit" class="char4">
|
|
||||||
<view class="ciy-card">
|
|
||||||
<view class="content">
|
|
||||||
<label>摄像头拍摄身份证正面(人像面),自动识别</label>
|
|
||||||
<view>
|
|
||||||
<ciy-aicameraocr ref="cameraocr" checkidcard="front" mode="idcard" @change="chgidcard"></ciy-aicameraocr>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>实名姓名</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="name" disabled ciystyle="width:6em;" :value="name" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>身份证号</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="idno" disabled :value="idno" type="idcard" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">申请实名认证</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
<!-- <ciy-aivoice @change="chgvoice"></ciy-aivoice> -->
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -70,10 +76,9 @@
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
name: '',
|
inputtype: 0, //1拍照识别,2语音识别手动录入扫描件,3nfc刷卡识别
|
||||||
idno: '',
|
|
||||||
nfcdata: {},
|
nfcdata: {},
|
||||||
nfcwork: 0
|
nfcwork: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -81,58 +86,68 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
await this.getauth('info');
|
||||||
func: 'me.userreal_apply_get'
|
if(this.me.truename)
|
||||||
|
return this.init.code = 1;
|
||||||
|
var app = getApp();
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.safe_real_init'
|
||||||
});
|
});
|
||||||
this.init = retjson;
|
this.init = retjson;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return;
|
return this.alert(retjson.errmsg);
|
||||||
if (retjson.data && retjson.data.auditstatus == 100 && !this.me.truename) {
|
if (retjson.data && retjson.data.auditstatus == 100 && !this.me.truename) {
|
||||||
this.me.truename = retjson.data.name;
|
this.me.truename = retjson.data.name;
|
||||||
this.me.idid = retjson.data.idid;
|
this.me.idid = retjson.data.idid;
|
||||||
this.setstorage('me', this.me);
|
this.setstorage('me', this.me);
|
||||||
var app = getApp();
|
|
||||||
var page = app.getpage(1);
|
var page = app.getpage(1);
|
||||||
page.me = this.me;
|
page.me = this.me;
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
if(retjson.data && retjson.data.auditstatus != 90)
|
||||||
this.getrefsSync('cameraocr').Step(1);
|
return;
|
||||||
}, 500);
|
this.inputtype = retjson.inputtype;
|
||||||
|
this.editdata.name = this.me.truename;
|
||||||
|
this.editdata.idid = this.me.idid;
|
||||||
|
if (this.inputtype == 1) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getrefsSync('cameraocr').Step(1);
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async submit(e) {
|
async submit(e) {
|
||||||
// e.detail.value.name = '张东';
|
// this.editdata.name = '张东';
|
||||||
// e.detail.value.idno = '152304200111157127';
|
// this.editdata.idid = '152304200111157127';
|
||||||
if (e.detail.value.name.length < 1)
|
if (this.editdata.name.length < 1)
|
||||||
return this.toast('请输入姓名');
|
return this.toast('请输入姓名');
|
||||||
if (e.detail.value.idno.length < 10)
|
if (this.editdata.idid.length < 10)
|
||||||
return this.toast('请输入身份证号');
|
return this.toast('请输入身份证号');
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
if (this.idimg) {
|
if (this.inputtype == 1 && this.idimg) {
|
||||||
var opn = {};
|
var opn = {};
|
||||||
opn.basepath = 'idcard';
|
opn.basepath = 'idcard';
|
||||||
opn.stor = '/';
|
opn.stor = '/';
|
||||||
e.detail.value.idcard1 = await this.file_upload1(this.idimg, opn);
|
this.editdata.idcard1 = await this.file_upload1(this.idimg, opn);
|
||||||
}
|
}
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.userreal_apply_submit',
|
func: 'me.safe_real_submit',
|
||||||
data: e.detail.value
|
data: this.editdata
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
await this.toast('申请已提交');
|
await this.toast('申请提交成功');
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
},
|
},
|
||||||
async chgidcard(e) {
|
async chgcameraocr(e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
this.idimg = e.tempimg;
|
this.idimg = e.tempimg;
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return this.toast('请稍后再试');
|
return this.toast('请稍后再试');
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'ai.aidecision',
|
func: 'ciyai.aidecision',
|
||||||
data: {
|
data: {
|
||||||
id: 3,
|
id: 3,
|
||||||
idcardocr: e.txts.join('\n')
|
idcardocr: e.txts.join('\n')
|
||||||
|
|
@ -141,8 +156,25 @@
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
this.name = retjson.ai.name;
|
this.editdata.name = retjson.ai.name;
|
||||||
this.idno = retjson.ai.idno;
|
this.editdata.idid = retjson.ai.idno;
|
||||||
|
},
|
||||||
|
async chgvoice(e) {
|
||||||
|
//按住说话,调用@change,界面上调用大模型给出合理结果,自动填写姓名和身份证号
|
||||||
|
//简单的文字,用字符串匹配先试试。
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'ciyai.aidecision',
|
||||||
|
data: {
|
||||||
|
id: 4,
|
||||||
|
voicetxt: e.txt
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
if (retjson.ai.name)
|
||||||
|
this.editdata.name = retjson.ai.name;
|
||||||
|
if (retjson.ai.idno)
|
||||||
|
this.editdata.idid = retjson.ai.idno;
|
||||||
},
|
},
|
||||||
async readnfc() {
|
async readnfc() {
|
||||||
var ciynfc = res => {
|
var ciynfc = res => {
|
||||||
|
|
@ -162,8 +194,10 @@
|
||||||
console.log('connect', res);
|
console.log('connect', res);
|
||||||
nfc.transceive({
|
nfc.transceive({
|
||||||
data: buffer,
|
data: buffer,
|
||||||
success(res) {
|
success: (res) => {
|
||||||
console.log('transecive', res);
|
console.log('transecive', res);
|
||||||
|
this.editdata.name = res.nfcdata.name;
|
||||||
|
this.editdata.idid = res.nfcdata.idno;
|
||||||
},
|
},
|
||||||
fail(res) {
|
fail(res) {
|
||||||
console.log('transecive fail', res);
|
console.log('transecive fail', res);
|
||||||
|
|
@ -202,23 +236,6 @@
|
||||||
//res.id = ArrayBuffer(8) {byteLength: 8, maxByteLength: 8, resizable: false, detached: false}
|
//res.id = ArrayBuffer(8) {byteLength: 8, maxByteLength: 8, resizable: false, detached: false}
|
||||||
//res.techs = ['NFC-B']
|
//res.techs = ['NFC-B']
|
||||||
},
|
},
|
||||||
async chgvoice(e) {
|
|
||||||
//按住说话,调用@change,界面上调用大模型给出合理结果,自动填写姓名和身份证号
|
|
||||||
//简单的文字,用字符串匹配先试试。
|
|
||||||
var retjson = await this.callajax({
|
|
||||||
func: 'ai.aidecision',
|
|
||||||
data: {
|
|
||||||
id: 4,
|
|
||||||
voicetxt: e.txt
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (retjson.code != 1)
|
|
||||||
return this.alert(retjson.errmsg);
|
|
||||||
if (retjson.ai.name)
|
|
||||||
this.name = retjson.ai.name;
|
|
||||||
if (retjson.ai.idno)
|
|
||||||
this.idno = retjson.ai.idno;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -24,8 +24,8 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.getqrcode',
|
func: 'me.share_qrcode_get',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -6,33 +6,31 @@
|
||||||
<view class="ciy-skeleton" style="height:6em;width:100%;"></view>
|
<view class="ciy-skeleton" style="height:6em;width:100%;"></view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<form @submit="submit">
|
<view class="ciy-card">
|
||||||
<view class="ciy-card">
|
<view class="content char4">
|
||||||
<view class="content char4">
|
<view class="ciy-form v">
|
||||||
<view class="ciy-form v">
|
<label class="imp">意见建议</label>
|
||||||
<label class="imp">意见建议</label>
|
<view>
|
||||||
<view>
|
<ciy-textarea v-model="editdata.content" type="text" bb ciystyle="min-height:5em"></ciy-textarea>
|
||||||
<ciy-textarea name="content" type="text" bb ciystyle="min-height:5em"></ciy-textarea>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>图片截图</label>
|
|
||||||
<view>
|
|
||||||
<ciy-upload left num="8" path="suggest" name="imgs" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form">
|
|
||||||
<label>联系方式</label>
|
|
||||||
<view>
|
|
||||||
<ciy-input name="contract" type="text" bb></ciy-input>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="ciy-form-bottom">
|
|
||||||
<button class="btn lg cc" form-type="submit">提交</button>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>图片截图</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left num="5" path="suggest" v-model="editdata.imgs" imgwidth="1600" sourcetype="camera,album,message"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>联系方式</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.contract" type="text" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">提交</button>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</form>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<view class="l2" v-html="tobr(item.content)"></view>
|
<view class="l2" v-html="tobr(item.content)"></view>
|
||||||
<ciy-showimgs :src="item.imgs" label="图片截图"></ciy-showimgs>
|
<ciy-showimgs :src="item.imgs" label="图片截图"></ciy-showimgs>
|
||||||
|
|
@ -40,7 +38,7 @@
|
||||||
<template v-if="item.replytimes > 0">
|
<template v-if="item.replytimes > 0">
|
||||||
<view class="ciy-hr my4"></view>
|
<view class="ciy-hr my4"></view>
|
||||||
<view class="l2 ciy-tip" v-html="tobr(item.replymsg)"></view>
|
<view class="l2 ciy-tip" v-html="tobr(item.replymsg)"></view>
|
||||||
<view class="rt" style="color:var(--succ5)">已答复</view>
|
<view class="rt" style="color:var(--succ5)">已答复</view>
|
||||||
</template>
|
</template>
|
||||||
<view class="rt" v-else>未答复</view>
|
<view class="rt" v-else>未答复</view>
|
||||||
<view class="rb">{{todatetime(item.addtimes)}}</view>
|
<view class="rb">{{todatetime(item.addtimes)}}</view>
|
||||||
|
|
@ -54,15 +52,15 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
this.editdata.contract = this.me.mobile;
|
||||||
this.getinit();
|
this.getinit();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.suggest_get',
|
func: 'me.suggest_get',
|
||||||
data: {}
|
data: {}
|
||||||
});
|
});
|
||||||
|
|
@ -71,19 +69,20 @@
|
||||||
this.init = retjson;
|
this.init = retjson;
|
||||||
},
|
},
|
||||||
async submit(e) {
|
async submit(e) {
|
||||||
if (e.detail.value.content.length < 5)
|
if (this.editdata.content.length < 5)
|
||||||
return this.toast('内容至少输入5个字');
|
return this.toast('内容至少输入5个字');
|
||||||
|
if (this._loading)
|
||||||
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.suggest_submit',
|
func: 'me.suggest_submit',
|
||||||
data: e.detail.value
|
data: this.editdata
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
await this.toast('已提交');
|
this.init.list.unshift(retjson.data);
|
||||||
uni.navigateBack();
|
await this.toast('提交成功');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="收款银行"></ciy-header>
|
||||||
|
<view class="ciy-card char3">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">账户名称</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.bankaccount" type="text" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
<view class="flexnone" style="padding-left:1em" @tap="editdata.bankaccount=me.truename">
|
||||||
|
{{me.truename}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">银行账号</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.bankno" type="text" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">开户银行</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.bankname" type="text" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>联行号</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input v-model="editdata.bankcode" type="text" bb></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="ciy-tip">实名认证人【{{me.truename}}】
|
||||||
|
<br />账户名称与实名不一致,需为对公账户。
|
||||||
|
<br />对公账户收款(含提现),需开具发票。
|
||||||
|
<br />个人银行账户收款,平台代缴个税。
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">设置收款信息</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getauth('real');
|
||||||
|
this.editdata.bankaccount = this.me.bankaccount;
|
||||||
|
this.editdata.bankno = this.me.bankno;
|
||||||
|
this.editdata.bankname = this.me.bankname;
|
||||||
|
this.editdata.bankcode = this.me.bankcode;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async submit(e) {
|
||||||
|
if (!this.editdata.bankaccount)
|
||||||
|
return this.toast('请输入账户名称');
|
||||||
|
if (!this.editdata.bankno)
|
||||||
|
return this.toast('请输入银行账号');
|
||||||
|
if (!this.editdata.bankname)
|
||||||
|
return this.toast('请输入开户银行');
|
||||||
|
//对公账户,再次确认。
|
||||||
|
if (this.me.truename != this.editdata.bankaccount) {
|
||||||
|
if (await this.askmsg(this.editdata.bankaccount + '\n请确认该账户为对公账户?\n对公账户提现需开具发票', '是对公户') != 'ok')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.user_bank_change',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.me.bankno = this.editdata.bankno;
|
||||||
|
this.me.bankname = this.editdata.bankname;
|
||||||
|
this.me.bankaccount = this.editdata.bankaccount;
|
||||||
|
this.me.bankcode = this.editdata.bankcode;
|
||||||
|
this.setstorage('me', this.me);
|
||||||
|
await this.toast('设置成功');
|
||||||
|
uni.navigateBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="本人信息"></ciy-header>
|
||||||
|
<view class="ciy-card char3">
|
||||||
|
<view class="content char4">
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">姓名称呼</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="editdata.name" type="nickname"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>头像</label>
|
||||||
|
<view>
|
||||||
|
<ciy-upload left v-model="editdata.icon" path="icon" imgwidth="400" imgheight="400" camheight="100" sourcetype="rehcam,album,message"></ciy-upload>
|
||||||
|
</view>
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view>
|
||||||
|
<button class="btn sm" open-type="chooseAvatar" @chooseavatar="wxavar">从微信获取</button>
|
||||||
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label class="imp">手机号</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="editdata.mobile" type="text"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>微信</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="editdata.wxno" type="text"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form">
|
||||||
|
<label>电子信箱</label>
|
||||||
|
<view>
|
||||||
|
<ciy-input bb v-model="editdata.email" type="text"></ciy-input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-form-bottom">
|
||||||
|
<button class="btn lg cc" @tap="submit">更新个人信息</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.editdata = {
|
||||||
|
...this.me
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async wxavar(e) {
|
||||||
|
var app = getApp();
|
||||||
|
var opn = {};
|
||||||
|
opn.post = {
|
||||||
|
from: 'avar'
|
||||||
|
};
|
||||||
|
opn.path = 'icon';
|
||||||
|
opn.stor = app.globalData.stordefault;
|
||||||
|
opn.maxkb = 0;
|
||||||
|
opn.imgwidth = 400;
|
||||||
|
opn.imgheight = 400;
|
||||||
|
opn.zipjpg = 70;
|
||||||
|
this.editdata.icon = await this.file_upload1(e.detail.avatarUrl, opn);
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
if (!this.editdata.name)
|
||||||
|
return this.toast('请输入姓名称呼');
|
||||||
|
if (!this.editdata.mobile)
|
||||||
|
return this.toast('请输入手机号');
|
||||||
|
if (this.editdata.name[0] == ':')
|
||||||
|
return this.toast('姓名称呼不能以:开头');
|
||||||
|
|
||||||
|
this._loading = true;
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.user_info_change',
|
||||||
|
data: this.editdata
|
||||||
|
});
|
||||||
|
this._loading = false;
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.me.name = this.editdata.name;
|
||||||
|
this.me.icon = this.editdata.icon;
|
||||||
|
this.me.mobile = this.editdata.mobile;
|
||||||
|
this.me.wxno = this.editdata.wxno;
|
||||||
|
this.me.email = this.editdata.email;
|
||||||
|
this.setstorage('me', this.me);
|
||||||
|
await this.toast('修改成功');
|
||||||
|
uni.navigateBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -7,18 +7,18 @@
|
||||||
<view class="ciy-skeleton" style="height:6em;width:100%;"></view>
|
<view class="ciy-skeleton" style="height:6em;width:100%;"></view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<view class="ciy-list" :class="{selected:opn.sel&&item.id==opn.id,del:item._clas=='del'}" v-for="(item,index) in init.list" :key="item.id" @click="select(item.id)">
|
<view class="ciy-list" :class="{selected:opn.sel&&item.id==opn.id,del:item._del}" v-for="(item,index) in init.list" :key="item.id" @tap="select(item.id)">
|
||||||
<view class="l2">收件人 {{item.name}}</view>
|
<view class="l2">收件人 {{item.name}}</view>
|
||||||
<view class="l2">联系电话 {{item.phone}}</view>
|
<view class="l2">联系电话 {{item.phone}}</view>
|
||||||
<view class="l2">{{mcode(g.ciy_arearpc,item.areacode,'name').join(' . ')}}</view>
|
<view class="l2">{{mcode(g.ciy_arearpc,item.areacode,'name').join(' . ')}}</view>
|
||||||
<view class="l2">{{item.addr}}</view>
|
<view class="l2">{{item.addr}}</view>
|
||||||
<view class="dot" @click="showmenu(index)"></view>
|
<view class="dot" @tap.stop="showmenu(index)"></view>
|
||||||
</view>
|
</view>
|
||||||
<view style="height:5em;"></view>
|
<view style="height:5em;"></view>
|
||||||
<view class="ciy-add" style="z-index:41;" @tap="editshow()"></view>
|
<view class="ciy-add" style="z-index:41;" @tap="editshow()"></view>
|
||||||
<view v-if="opn.sel">
|
<view v-if="opn.sel">
|
||||||
<view class="bg1 txt-center py4 ciy-bottom">
|
<view class="bg1 txt-center py4 ciy-bottom">
|
||||||
<button class="btn lg" @click="selectok">选定</button>
|
<button class="btn lg" @tap="selectok">选定</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<ciy-anipop v-model="popedit" :zindex="998" maskbg="#00000077" :title="edit.id>0?'更新地址':'新建地址'">
|
<ciy-anipop v-model="popedit" :zindex="998" maskbg="#00000077" :title="edit.id>0?'更新地址':'新建地址'">
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
<view>
|
<view>
|
||||||
<ciy-input name="addr" v-model="edit.addr" bb ciystyle="margin-right:0.5em;"></ciy-input>
|
<ciy-input name="addr" v-model="edit.addr" bb ciystyle="margin-right:0.5em;"></ciy-input>
|
||||||
</view>
|
</view>
|
||||||
<view style="flex:none;display: block;line-height: 1em;font-size: 0.7em;text-align: center;margin-right: 1em;" @click="getloc">
|
<view style="flex:none;display: block;line-height: 1em;font-size: 0.7em;text-align: center;margin-right: 1em;" @tap="getloc">
|
||||||
<i class="iconloc"></i><br />
|
<i class="iconloc"></i><br />
|
||||||
定位
|
定位
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -113,8 +113,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.shipaddr_get'
|
func: 'me.user_shipaddr_list'
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -171,8 +171,8 @@
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.shipaddr_edit',
|
func: 'me.user_shipaddr_edit',
|
||||||
data: e.detail.value
|
data: e.detail.value
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -188,15 +188,15 @@
|
||||||
async del(item) {
|
async del(item) {
|
||||||
if (await this.askmsg('是否删除?') != 'ok')
|
if (await this.askmsg('是否删除?') != 'ok')
|
||||||
return;
|
return;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'me.shipaddr_del',
|
func: 'me.user_shipaddr_del',
|
||||||
data: {
|
data: {
|
||||||
id: item.data.id
|
id: item.data.id
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
return this.alert(retjson.errmsg);
|
return this.alert(retjson.errmsg);
|
||||||
this.init.list[item.data._idx]._clas = 'del';
|
this.init.list[item.data._idx]._del = true;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.init.list.splice(item.data._idx, 1);
|
this.init.list.splice(item.data._idx, 1);
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
<template>
|
||||||
|
<ciy-header title="用户详情"></ciy-header>
|
||||||
|
<view class="ciy-list">
|
||||||
|
<view style="width:10em;margin: auto;">
|
||||||
|
<ciy-svgimg :src="pagedata.userinfo.icon"></ciy-svgimg>
|
||||||
|
</view>
|
||||||
|
<view class="l1">{{pagedata.userinfo.name}}</view>
|
||||||
|
<view class="ciy-hr my4"></view>
|
||||||
|
<view class="flex">
|
||||||
|
<view class="flex1">
|
||||||
|
<view class="l2">活跃 {{pagedata.userinfo.mypnt}}</view>
|
||||||
|
<view class="l2">{{totimespan(pagedata.userinfo.addtimes)}}前加入</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="ciy-title mk">技能等级情况</view>
|
||||||
|
<view class="ciy-title mk">技能贡献情况</view>
|
||||||
|
<view class="ciy-title mk">商单协理统计</view>
|
||||||
|
<view class="ciy-title mk">项目参与情况</view>
|
||||||
|
<view class="txt-center">
|
||||||
|
|
||||||
|
<!-- <button class="btn" @tap="getmore">更多</button> -->
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="height:1em;"></view>
|
||||||
|
<view :style="{height:header_statusbar_height+'px'}"></view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
onLoad() {},
|
||||||
|
methods: {
|
||||||
|
async getmore() {
|
||||||
|
return;
|
||||||
|
//<view class="flex1">{{ccode(init.depts, pagedata.member.deptid, 'name', '[未分组]')}}</view>
|
||||||
|
|
||||||
|
var retjson = await this.callfunc({
|
||||||
|
func: 'me.user_show_more',
|
||||||
|
data: {
|
||||||
|
id: this.init.list[idx].id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (retjson.code != 1)
|
||||||
|
return this.alert(retjson.errmsg);
|
||||||
|
this.objtolist(this.init.list, retjson.data);
|
||||||
|
this.init.list[idx]._stated = true;
|
||||||
|
this.toast('已统计');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
onUnload() {
|
onUnload() {
|
||||||
var postparam = {};
|
var postparam = {};
|
||||||
postparam.id = this.opn.id;
|
postparam.id = this.opn.id;
|
||||||
var retjson = this.callajax({
|
var retjson = this.callfunc({
|
||||||
func: 'pub.imgend',
|
func: 'pub.imgend',
|
||||||
data: postparam
|
data: postparam
|
||||||
});
|
});
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
postparam.id = this.opn.id;
|
postparam.id = this.opn.id;
|
||||||
postparam.txts = e.txts.join('\n');
|
postparam.txts = e.txts.join('\n');
|
||||||
postparam.img = await this.file_upload1(e.tempimg, opn);
|
postparam.img = await this.file_upload1(e.tempimg, opn);
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'pub.imgadd',
|
func: 'pub.imgadd',
|
||||||
data: postparam
|
data: postparam
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<ciy-header ref="header" v-if="init.data.title" :title="init.data.title"></ciy-header>
|
<ciy-header ref="header" v-if="init.data.title" :title="init.data.title"></ciy-header>
|
||||||
<ciy-header ref="header" mode="tran" v-else></ciy-header>
|
<ciy-header ref="header" mode="tran" v-else></ciy-header>
|
||||||
<view class="bg1" style="min-height:100vh;">
|
<view class="bg1" style="min-height:100vh;">
|
||||||
<ciy-markdown :md="init.data.content"></ciy-markdown>
|
<ciy-markdown padding="1.5em" :md="init.data.content"></ciy-markdown>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
computed: {},
|
computed: {},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'index.paper',
|
func: 'main.paper_get',
|
||||||
data: this.opn
|
data: this.opn
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -17,13 +17,11 @@
|
||||||
<ciy-markdown :md="init.data.content"></ciy-markdown>
|
<ciy-markdown :md="init.data.content"></ciy-markdown>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<view class="bg2" style="border-top:1px solid var(--bg5)">
|
<view class="bg2" style="border-top:1px solid var(--bg5)">
|
||||||
<form @submit="submitsend">
|
<view class="flex flex-center">
|
||||||
<view class="flex flex-center">
|
<!-- <view><button class="btn def" @tap="sendimg">图片</button></view> -->
|
||||||
<!-- <view><button class="btn def" @tap="sendimg">图片</button></view> -->
|
<view class="flex1"><ciy-textarea v-model="editdata.content" ciystyle="min-height:1em;padding:0.5em"></ciy-textarea></view>
|
||||||
<view class="flex1"><ciy-textarea name="content" v-model="content" ciystyle="min-height:1em;padding:0.5em"></ciy-textarea></view>
|
<view><button @tap="submitsend" :disabled="init.vent" class="btn">吐槽</button></view>
|
||||||
<view><button form-type="submit" :disabled="init.vent" class="btn">吐槽</button></view>
|
</view>
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="bg2" :style="{height:footer_safe_height+'px'}"></view>
|
<view class="bg2" :style="{height:footer_safe_height+'px'}"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -35,8 +33,7 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getinit();
|
this.getinit();
|
||||||
|
|
@ -53,8 +50,8 @@
|
||||||
computed: {},
|
computed: {},
|
||||||
methods: {
|
methods: {
|
||||||
async getinit() {
|
async getinit() {
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'index.art_read',
|
func: 'main.part_init',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -66,22 +63,21 @@
|
||||||
return;
|
return;
|
||||||
this._hot = true;
|
this._hot = true;
|
||||||
this.pagepost.sec = this.tostamp() - this.readtimes;
|
this.pagepost.sec = this.tostamp() - this.readtimes;
|
||||||
this.callajax({
|
this.callfunc({
|
||||||
func: 'index.art_hot',
|
func: 'main.part_hot',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async submitsend(e) {
|
async submitsend() {
|
||||||
if (!e.detail.value.content)
|
if (!this.editdata.content)
|
||||||
return this.toast('请输入内容');
|
return this.toast('请输入内容');
|
||||||
e.detail.value.sectionid = this.init.section.id;
|
|
||||||
e.detail.value.id = this.opn.id;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.editdata.sectionid = this.init.section.id;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'index.art_vent',
|
func: 'main.part_vent',
|
||||||
data: e.detail.value
|
data: this.editdata
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
if (retjson.code != 1)
|
if (retjson.code != 1)
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<ciy-header :title="init.code==1?init.once.section.name:'加载中'" ref="header"></ciy-header>
|
<ciy-header :title="init.code==1?init.section.name:'加载中'" ref="header"></ciy-header>
|
||||||
<view v-if="init.code != 1" class="px4 py4">
|
<view v-if="init.code != 1" class="px4 py4">
|
||||||
<view class="ciy-skeleton" style="height:2em;width:100%;"></view>
|
<view class="ciy-skeleton" style="height:2em;width:100%;"></view>
|
||||||
<view class="ciy-skeleton" style="height:8em;width:100%;"></view>
|
<view class="ciy-skeleton" style="height:8em;width:100%;"></view>
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<ciy-searchbar placeholder="请输入关键字" @confirm="search_change"></ciy-searchbar>
|
<ciy-searchbar placeholder="请输入关键字" @confirm="search_change"></ciy-searchbar>
|
||||||
</view>
|
</view>
|
||||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||||
<ciy-svgimg :src="item.img"></ciy-svgimg>
|
<ciy-svgimg v-if="item.img" :src="item.img"></ciy-svgimg>
|
||||||
<view class="l1 txt-wb" @tap="gourl" :data-url="'part?id=' + item.id">{{item.name}}</view>
|
<view class="l1 txt-wb" @tap="gourl" :data-url="'part?id=' + item.id">{{item.name}}</view>
|
||||||
<view class="l3" v-html="tobr(item.descs)"></view>
|
<view class="l3" v-html="tobr(item.descs)"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -24,9 +24,7 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {}
|
||||||
pageno: 0,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getlist();
|
this.getlist();
|
||||||
|
|
@ -47,13 +45,13 @@
|
||||||
async getlist() {
|
async getlist() {
|
||||||
if (this.pageno < 0)
|
if (this.pageno < 0)
|
||||||
return;
|
return;
|
||||||
this.pagepost.pageno = this.pageno + 1;
|
|
||||||
this.pagepost.once = !this.init.once;
|
|
||||||
if (this._loading)
|
if (this._loading)
|
||||||
return;
|
return;
|
||||||
|
this.pagepost.pageno = this.pageno + 1;
|
||||||
|
this.pagepost.once = !this.init.once;
|
||||||
this._loading = true;
|
this._loading = true;
|
||||||
var retjson = await this.callajax({
|
var retjson = await this.callfunc({
|
||||||
func: 'index.section_get',
|
func: 'main.psection_list',
|
||||||
data: this.pagepost
|
data: this.pagepost
|
||||||
});
|
});
|
||||||
this._loading = false;
|
this._loading = false;
|
||||||
|
|
@ -67,7 +65,7 @@
|
||||||
this.pageno = -1;
|
this.pageno = -1;
|
||||||
},
|
},
|
||||||
search_change(e) {
|
search_change(e) {
|
||||||
this.pagepost.query.key = e.value;
|
this.pagepost.key = e.value;
|
||||||
this.pageno = 0;
|
this.pageno = 0;
|
||||||
this.getlist();
|
this.getlist();
|
||||||
},
|
},
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.web = decodeURIComponent(this.opn.web);
|
this.web = decodeURIComponent(this.opn.web);
|
||||||
|
var app = getApp();
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
var currentWebview = this.$scope.$getAppWebview();
|
var currentWebview = this.$scope.$getAppWebview();
|
||||||
|
|
@ -21,7 +22,7 @@
|
||||||
var top = this.header_statusbar_height + this.header_title_height;
|
var top = this.header_statusbar_height + this.header_title_height;
|
||||||
wv.setStyle({
|
wv.setStyle({
|
||||||
top: top,
|
top: top,
|
||||||
height: this.sysinfo.screenHeight - top
|
height: app.globalData._sysinfo.screenHeight - top
|
||||||
});
|
});
|
||||||
this.name = wv.getTitle();
|
this.name = wv.getTitle();
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -65,6 +65,7 @@ card bg3
|
||||||
|
|
||||||
|
|
||||||
/* 主色 */
|
/* 主色 */
|
||||||
|
--man2: #e1f6ff;
|
||||||
--man3: #a6d2fa;
|
--man3: #a6d2fa;
|
||||||
--man4: #80c1f3;
|
--man4: #80c1f3;
|
||||||
--man5: #1E9FFF;
|
--man5: #1E9FFF;
|
||||||
|
|
@ -161,7 +162,10 @@ body,
|
||||||
view,
|
view,
|
||||||
text {
|
text {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
/* font-size: clamp(14px, 4vw, 40px); */
|
||||||
font-size-adjust: ex-height 0.53;
|
font-size-adjust: ex-height 0.53;
|
||||||
|
user-select: text;
|
||||||
|
-webkit-user-select: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
|
|
@ -240,10 +244,10 @@ text {
|
||||||
/*列表页*/
|
/*列表页*/
|
||||||
.ciy-list {
|
.ciy-list {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 1em;
|
margin: 1rem;
|
||||||
padding: 0.8em;
|
padding: 0.8rem;
|
||||||
background: var(--bg1);
|
background: var(--bg1);
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: transform ease-in 0.5s;
|
transition: transform ease-in 0.5s;
|
||||||
}
|
}
|
||||||
|
|
@ -254,14 +258,14 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .l0 {
|
.ciy-list .l0 {
|
||||||
font-size: 0.8em;
|
font-size: 0.8rem;
|
||||||
padding-right: 6em;
|
padding-right: 6rem;
|
||||||
color: var(--txt1);
|
color: var(--txt1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .l1 {
|
.ciy-list .l1 {
|
||||||
font-size: 1.2em;
|
font-size: 1.2rem;
|
||||||
padding: 0.3em 1.5em 0.3em 0.5em;
|
padding: 0.3em 1.5em 0.3em 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .l2 {
|
.ciy-list .l2 {
|
||||||
|
|
@ -272,10 +276,10 @@ text {
|
||||||
|
|
||||||
.ciy-list .l2>label {
|
.ciy-list .l2>label {
|
||||||
color: var(--txt9);
|
color: var(--txt9);
|
||||||
min-width: 5em;
|
min-width: 5rem;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
padding-right: 1em;
|
padding-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .l2>view {
|
.ciy-list .l2>view {
|
||||||
|
|
@ -285,82 +289,82 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .l3 {
|
.ciy-list .l3 {
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
padding: 0.3em 1.3em;
|
padding: 0.3em 1.3rem;
|
||||||
color: var(--txt3);
|
color: var(--txt3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .rtz {
|
.ciy-list .rtz {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 1em;
|
top: 1rem;
|
||||||
right: -2.5em;
|
right: -2.5rem;
|
||||||
height: 2em;
|
height: 2rem;
|
||||||
line-height: 2em;
|
line-height: 2rem;
|
||||||
width: 9em;
|
width: 9rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .rt {
|
.ciy-list .rt {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0.8em;
|
top: 0.8rem;
|
||||||
right: 0.8em;
|
right: 0.8rem;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .rb {
|
.ciy-list .rb {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .lb {
|
.ciy-list .lb {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0.9em;
|
bottom: 0.9rem;
|
||||||
left: 1.2em;
|
left: 1.2rem;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-list .dot {
|
.ciy-list .dot {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0.5em;
|
bottom: 0.5rem;
|
||||||
right: 1em;
|
right: 1rem;
|
||||||
padding: 1em;
|
padding: 1rem;
|
||||||
width: 1.3em;
|
width: 1.3rem;
|
||||||
height: 1.3em;
|
height: 1.3rem;
|
||||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwOS4xMDAyMzQyNiA1MTJtLTE1My4yNzMzMzEzNCAwYTE1My4yNzMzMzEzNiAxNTMuMjczMzMxMzYgMCAxIDAgMzA2LjU0NjY2MjcgMCAxNTMuMjczMzMxMzYgMTUzLjI3MzMzMTM2IDAgMSAwLTMwNi41NDY2NjI3IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PHBhdGggZD0iTTc4OS43NjE4NDA4MiA1MTJtLTkxLjQ2MTE4MTY0IDBhOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAgMTgyLjkyMjM2MzI5IDAgOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAtMTgyLjkyMjM2MzI5IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PHBhdGggZD0iTTIzNC4yMzgxNTkxOCA1MTJtLTkxLjQ2MTE4MTY0IDBhOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAgMTgyLjkyMjM2MzI4IDAgOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAtMTgyLjkyMjM2MzI4IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PC9zdmc+");
|
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwOS4xMDAyMzQyNiA1MTJtLTE1My4yNzMzMzEzNCAwYTE1My4yNzMzMzEzNiAxNTMuMjczMzMxMzYgMCAxIDAgMzA2LjU0NjY2MjcgMCAxNTMuMjczMzMxMzYgMTUzLjI3MzMzMTM2IDAgMSAwLTMwNi41NDY2NjI3IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PHBhdGggZD0iTTc4OS43NjE4NDA4MiA1MTJtLTkxLjQ2MTE4MTY0IDBhOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAgMTgyLjkyMjM2MzI5IDAgOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAtMTgyLjkyMjM2MzI5IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PHBhdGggZD0iTTIzNC4yMzgxNTkxOCA1MTJtLTkxLjQ2MTE4MTY0IDBhOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAgMTgyLjkyMjM2MzI4IDAgOTEuNDYxMTgxNjQgOTEuNDYxMTgxNjQgMCAxIDAtMTgyLjkyMjM2MzI4IDBaIiBmaWxsPSIjNzA3MDcwIj48L3BhdGg+PC9zdmc+");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.ciy-add {
|
.ciy-add {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 1em;
|
bottom: 1rem;
|
||||||
right: 1em;
|
right: 1rem;
|
||||||
width: 4em;
|
width: 4rem;
|
||||||
height: 4em;
|
height: 4rem;
|
||||||
opacity: 0.95;
|
opacity: 0.95;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
border-radius: 2em;
|
border-radius: 2rem;
|
||||||
background: linear-gradient(90deg, #8568f7, #4981ff);
|
background: linear-gradient(90deg, #8568f7, #4981ff);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-add::after {
|
.ciy-add::after {
|
||||||
content: ' ';
|
content: ' ';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin: 1em;
|
margin: 1rem;
|
||||||
width: 2em;
|
width: 2rem;
|
||||||
height: 2em;
|
height: 2rem;
|
||||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNS42OTYgMzg0cTE5LjQ1NiAwIDM3LjM3NiA3LjY4dDMwLjcyIDIwLjQ4IDIwLjQ4IDMwLjcyIDcuNjggMzcuMzc2cTAgMjAuNDgtNy42OCAzNy44ODh0LTIwLjQ4IDMwLjIwOC0zMC43MiAyMC40OC0zNy4zNzYgNy42OGwtMjg3Ljc0NCAwIDAgMjg3Ljc0NHEwIDIwLjQ4LTcuNjggMzcuODg4dC0yMC40OCAzMC4yMDgtMzAuNzIgMjAuNDgtMzcuMzc2IDcuNjhxLTIwLjQ4IDAtMzcuODg4LTcuNjh0LTMwLjIwOC0yMC40OC0yMC40OC0zMC4yMDgtNy42OC0zNy44ODhsMC0yODcuNzQ0LTI4Ny43NDQgMHEtMjAuNDggMC0zNy44ODgtNy42OHQtMzAuMjA4LTIwLjQ4LTIwLjQ4LTMwLjIwOC03LjY4LTM3Ljg4OHEwLTE5LjQ1NiA3LjY4LTM3LjM3NnQyMC40OC0zMC43MiAzMC4yMDgtMjAuNDggMzcuODg4LTcuNjhsMjg3Ljc0NCAwIDAtMjg3Ljc0NHEwLTE5LjQ1NiA3LjY4LTM3LjM3NnQyMC40OC0zMC43MiAzMC4yMDgtMjAuNDggMzcuODg4LTcuNjhxMzkuOTM2IDAgNjguMDk2IDI4LjE2dDI4LjE2IDY4LjA5NmwwIDI4Ny43NDQgMjg3Ljc0NCAweiIgZGF0YS1zcG0tYW5jaG9yLWlkPSJhMzEzeC5zZWFyY2hfaW5kZXguMC5pNi41NTEwM2E4MW5Iald1ViIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjwvc3ZnPg==");
|
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNS42OTYgMzg0cTE5LjQ1NiAwIDM3LjM3NiA3LjY4dDMwLjcyIDIwLjQ4IDIwLjQ4IDMwLjcyIDcuNjggMzcuMzc2cTAgMjAuNDgtNy42OCAzNy44ODh0LTIwLjQ4IDMwLjIwOC0zMC43MiAyMC40OC0zNy4zNzYgNy42OGwtMjg3Ljc0NCAwIDAgMjg3Ljc0NHEwIDIwLjQ4LTcuNjggMzcuODg4dC0yMC40OCAzMC4yMDgtMzAuNzIgMjAuNDgtMzcuMzc2IDcuNjhxLTIwLjQ4IDAtMzcuODg4LTcuNjh0LTMwLjIwOC0yMC40OC0yMC40OC0zMC4yMDgtNy42OC0zNy44ODhsMC0yODcuNzQ0LTI4Ny43NDQgMHEtMjAuNDggMC0zNy44ODgtNy42OHQtMzAuMjA4LTIwLjQ4LTIwLjQ4LTMwLjIwOC03LjY4LTM3Ljg4OHEwLTE5LjQ1NiA3LjY4LTM3LjM3NnQyMC40OC0zMC43MiAzMC4yMDgtMjAuNDggMzcuODg4LTcuNjhsMjg3Ljc0NCAwIDAtMjg3Ljc0NHEwLTE5LjQ1NiA3LjY4LTM3LjM3NnQyMC40OC0zMC43MiAzMC4yMDgtMjAuNDggMzcuODg4LTcuNjhxMzkuOTM2IDAgNjguMDk2IDI4LjE2dDI4LjE2IDY4LjA5NmwwIDI4Ny43NDQgMjg3Ljc0NCAweiIgZGF0YS1zcG0tYW5jaG9yLWlkPSJhMzEzeC5zZWFyY2hfaW5kZXguMC5pNi41NTEwM2E4MW5Iald1ViIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjwvc3ZnPg==");
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-close {
|
.ciy-close {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
font-size: 2em;
|
font-size: 2rem;
|
||||||
color: var(--dagt);
|
color: var(--dagt);
|
||||||
line-height: 0.9em;
|
line-height: 0.9rem;
|
||||||
background: var(--dag5);
|
background: var(--dag5);
|
||||||
width: 1em;
|
width: 1rem;
|
||||||
height: 1em;
|
height: 1rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
@ -371,9 +375,9 @@ text {
|
||||||
border: 1px solid var(--man6);
|
border: 1px solid var(--man6);
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0.5em 0.8em;
|
padding: 0.5em 0.8rem;
|
||||||
font-size: 1em;
|
font-size: 1rem;
|
||||||
line-height: 1em;
|
line-height: 1rem;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
@ -381,19 +385,19 @@ text {
|
||||||
-ms-touch-action: manipulation;
|
-ms-touch-action: manipulation;
|
||||||
touch-action: manipulation;
|
touch-action: manipulation;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border-radius: 0.7em;
|
border-radius: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn::after {
|
.btn::after {
|
||||||
content: "Loading...";
|
content: "Loading...";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0.3em;
|
right: 0.3rem;
|
||||||
width: auto;
|
width: auto;
|
||||||
height: auto;
|
height: auto;
|
||||||
top: auto;
|
top: auto;
|
||||||
left: auto;
|
left: auto;
|
||||||
font-size: 1em;
|
font-size: 1rem;
|
||||||
transform-origin: right bottom;
|
transform-origin: right bottom;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: scale(0.8);
|
transform: scale(0.8);
|
||||||
|
|
@ -413,35 +417,35 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.lg {
|
.btn.lg {
|
||||||
font-size: 1.3em;
|
font-size: 1.3rem;
|
||||||
padding-left: 1.5em;
|
padding-left: 1.5rem;
|
||||||
padding-right: 1.5em;
|
padding-right: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.lgg {
|
.btn.lgg {
|
||||||
font-size: 1.5em;
|
font-size: 1.5rem;
|
||||||
padding: 0.7em 1.5em;
|
padding: 0.7em 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.sm {
|
.btn.sm {
|
||||||
font-size: 0.8em;
|
font-size: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.smm {
|
.btn.smm {
|
||||||
font-size: 0.7em;
|
font-size: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.xs {
|
.btn.xs {
|
||||||
font-size: 0.7em;
|
font-size: 0.7rem;
|
||||||
padding: 0.2em 0.8em;
|
padding: 0.2em 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.sq {
|
.btn.sq {
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.cc {
|
.btn.cc {
|
||||||
border-radius: 1.5em;
|
border-radius: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn.long {
|
.btn.long {
|
||||||
|
|
@ -483,16 +487,16 @@ text {
|
||||||
/*说明块*/
|
/*说明块*/
|
||||||
.ciy-tip {
|
.ciy-tip {
|
||||||
background: var(--warn4);
|
background: var(--warn4);
|
||||||
margin: 0.5em;
|
margin: 0.5rem;
|
||||||
padding: 0.5em;
|
padding: 0.5rem;
|
||||||
border: 1px solid var(--warn5);
|
border: 1px solid var(--warn5);
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
color: var(--txt8);
|
color: var(--txt8);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*断行*/
|
/*断行*/
|
||||||
.ciy-height {
|
.ciy-height {
|
||||||
height: 0.3em;
|
height: 0.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -515,8 +519,8 @@ text {
|
||||||
.ciy-grid .grid {
|
.ciy-grid .grid {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 0.8em;
|
padding-top: 0.8rem;
|
||||||
padding-bottom: 0.2em;
|
padding-bottom: 0.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-grid.grid3 .grid {
|
.ciy-grid.grid3 .grid {
|
||||||
|
|
@ -530,12 +534,14 @@ text {
|
||||||
.ciy-grid .name {
|
.ciy-grid .name {
|
||||||
padding: 0.5em 0;
|
padding: 0.5em 0;
|
||||||
color: var(--txt7);
|
color: var(--txt7);
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-grid .icon {
|
.ciy-grid .icon {
|
||||||
width: 2em;
|
width: 2rem;
|
||||||
height: 2em;
|
height: 2rem;
|
||||||
display: block;
|
display: block;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
@ -549,7 +555,7 @@ text {
|
||||||
|
|
||||||
.ciy-grid .title {
|
.ciy-grid .title {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 1em 0 0 0.5em;
|
margin: 1em 0 0 0.5rem;
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
text-shadow: 0 0 2px var(--bg2);
|
text-shadow: 0 0 2px var(--bg2);
|
||||||
letter-spacing: 2px;
|
letter-spacing: 2px;
|
||||||
|
|
@ -560,8 +566,8 @@ text {
|
||||||
.ciy-title {
|
.ciy-title {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 0.8em 1em;
|
padding: 0.8em 1rem;
|
||||||
font-size: 1.1em;
|
font-size: 1.1rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
color: var(--txt9);
|
color: var(--txt9);
|
||||||
|
|
@ -569,10 +575,10 @@ text {
|
||||||
|
|
||||||
.ciy-title.mk::before {
|
.ciy-title.mk::before {
|
||||||
content: "";
|
content: "";
|
||||||
width: 0.4em;
|
width: 0.4rem;
|
||||||
height: 1.5em;
|
height: 1.5rem;
|
||||||
margin-right: 0.3em;
|
margin-right: 0.3rem;
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background: linear-gradient(-60deg, var(--man4), var(--man7));
|
background: linear-gradient(-60deg, var(--man4), var(--man7));
|
||||||
}
|
}
|
||||||
|
|
@ -584,7 +590,7 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-title .right {
|
.ciy-title .right {
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: var(--txt5);
|
color: var(--txt5);
|
||||||
}
|
}
|
||||||
|
|
@ -592,8 +598,8 @@ text {
|
||||||
.ciy-caption {
|
.ciy-caption {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 0.8em 1em;
|
padding: 0.8em 1rem;
|
||||||
font-size: 1.1em;
|
font-size: 1.1rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
background: var(--bg2);
|
background: var(--bg2);
|
||||||
|
|
@ -604,10 +610,10 @@ text {
|
||||||
|
|
||||||
.ciy-caption.mk::before {
|
.ciy-caption.mk::before {
|
||||||
content: "";
|
content: "";
|
||||||
width: 0.3em;
|
width: 0.3rem;
|
||||||
height: 1.5em;
|
height: 1.5rem;
|
||||||
margin-right: 0.3em;
|
margin-right: 0.3rem;
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background: var(--man5);
|
background: var(--man5);
|
||||||
}
|
}
|
||||||
|
|
@ -618,7 +624,7 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-caption .right {
|
.ciy-caption .right {
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: var(--txt5);
|
color: var(--txt5);
|
||||||
}
|
}
|
||||||
|
|
@ -626,17 +632,17 @@ text {
|
||||||
.ciy-caption .sub {
|
.ciy-caption .sub {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 3em;
|
left: 3rem;
|
||||||
font-size: 0.7em;
|
font-size: 0.7rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: var(--txt1);
|
color: var(--txt1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*卡片块*/
|
/*卡片块*/
|
||||||
.ciy-card {
|
.ciy-card {
|
||||||
margin: 0.5em;
|
margin: 0.5rem;
|
||||||
border: 1px solid var(--bg6);
|
border: 1px solid var(--bg6);
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
box-shadow: 0 0 6px var(--bg6);
|
box-shadow: 0 0 6px var(--bg6);
|
||||||
background: var(--bg2);
|
background: var(--bg2);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -644,46 +650,46 @@ text {
|
||||||
|
|
||||||
.ciy-card>.title {
|
.ciy-card>.title {
|
||||||
border-radius: 0.3em 0.3em 0 0;
|
border-radius: 0.3em 0.3em 0 0;
|
||||||
padding-left: 1em;
|
padding-left: 1rem;
|
||||||
height: 2.5em;
|
height: 2.5rem;
|
||||||
line-height: 2.5em;
|
line-height: 2.5rem;
|
||||||
background: var(--bg4);
|
background: var(--bg4);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-card>.title.mk::before {
|
.ciy-card>.title.mk::before {
|
||||||
content: "";
|
content: "";
|
||||||
width: 0.2em;
|
width: 0.2rem;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
border-radius: 0.2em;
|
border-radius: 0.2rem;
|
||||||
margin-right: 0.4em;
|
margin-right: 0.4rem;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
height: 1.5em;
|
height: 1.5rem;
|
||||||
background: var(--man5);
|
background: var(--man5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-card .right {
|
.ciy-card .right {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 2.5em;
|
height: 2.5rem;
|
||||||
line-height: 2.5em;
|
line-height: 2.5rem;
|
||||||
padding-right: 1em;
|
padding-right: 1rem;
|
||||||
color: var(--txt5);
|
color: var(--txt5);
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-card>.content {
|
.ciy-card>.content {
|
||||||
padding: 1em;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-card>.content>view {
|
.ciy-card>.content>view {
|
||||||
line-height: 1.5em;
|
line-height: 1.5rem;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-load {
|
.ciy-load {
|
||||||
padding: 3em 0 8em 3em;
|
padding: 3em 0 8em 3rem;
|
||||||
line-height: 2em;
|
line-height: 2rem;
|
||||||
background: linear-gradient(180deg, var(--bg5), transparent);
|
background: linear-gradient(180deg, var(--bg5), transparent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -692,8 +698,8 @@ text {
|
||||||
background: linear-gradient(45deg, var(--bg4) 25%, var(--bg1) 50%, var(--bg4) 75%);
|
background: linear-gradient(45deg, var(--bg4) 25%, var(--bg1) 50%, var(--bg4) 75%);
|
||||||
background-size: 200% 100%;
|
background-size: 200% 100%;
|
||||||
animation: skeleton 3s linear infinite;
|
animation: skeleton 3s linear infinite;
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3rem;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes skeleton {
|
@keyframes skeleton {
|
||||||
|
|
@ -709,11 +715,11 @@ text {
|
||||||
.code,
|
.code,
|
||||||
.kbd {
|
.kbd {
|
||||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||||
padding: 0.1em 0.4em 0 0.4em;
|
padding: 0.1em 0.4em 0 0.4rem;
|
||||||
margin: 0 0.2em;
|
margin: 0 0.2rem;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
line-height: 1.3em;
|
line-height: 1.3rem;
|
||||||
border-radius: 0.2em;
|
border-radius: 0.2rem;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
@ -735,9 +741,9 @@ text {
|
||||||
|
|
||||||
.ciy-form-group {
|
.ciy-form-group {
|
||||||
background: var(--bg2);
|
background: var(--bg2);
|
||||||
margin: 1em;
|
margin: 1rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
border: 1px solid var(--bg4);
|
border: 1px solid var(--bg4);
|
||||||
border-bottom: 2px solid var(--bg6);
|
border-bottom: 2px solid var(--bg6);
|
||||||
|
|
@ -749,7 +755,7 @@ text {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
padding: 1em;
|
padding: 1rem;
|
||||||
z-index: 40;
|
z-index: 40;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: var(--bg1);
|
background: var(--bg1);
|
||||||
|
|
@ -769,7 +775,7 @@ text {
|
||||||
position: relative;
|
position: relative;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
border-bottom: 1px solid var(--bg5);
|
border-bottom: 1px solid var(--bg5);
|
||||||
min-height: 4em;
|
min-height: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form>view {
|
.ciy-form>view {
|
||||||
|
|
@ -778,15 +784,15 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form>view:last-child {
|
.ciy-form>view:last-child {
|
||||||
margin-right: 1em;
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form>label {
|
.ciy-form>label {
|
||||||
margin: 0 1em;
|
margin: 0 1rem;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
line-height: 4em;
|
line-height: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form>label.imp {
|
.ciy-form>label.imp {
|
||||||
|
|
@ -796,10 +802,10 @@ text {
|
||||||
.ciy-form>label.imp::before {
|
.ciy-form>label.imp::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0.3em;
|
left: 0.3rem;
|
||||||
top: 0.8em;
|
top: 0.8rem;
|
||||||
width: 0.4em;
|
width: 0.4rem;
|
||||||
height: 0.4em;
|
height: 0.4rem;
|
||||||
background: var(--dag5);
|
background: var(--dag5);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
@ -809,7 +815,7 @@ text {
|
||||||
.char4 label.imp::before,
|
.char4 label.imp::before,
|
||||||
.char5 label.imp::before,
|
.char5 label.imp::before,
|
||||||
.char6 label.imp::before {
|
.char6 label.imp::before {
|
||||||
right: -0.5em;
|
right: -0.5rem;
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -823,50 +829,50 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.char2 label {
|
.char2 label {
|
||||||
min-width: 2em;
|
min-width: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char3 label {
|
.char3 label {
|
||||||
min-width: 3em;
|
min-width: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char4 label {
|
.char4 label {
|
||||||
min-width: 4em;
|
min-width: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char5 label {
|
.char5 label {
|
||||||
min-width: 5em;
|
min-width: 5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.char6 label {
|
.char6 label {
|
||||||
min-width: 6em;
|
min-width: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form.v {
|
.ciy-form.v {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
padding-top: 0.5em;
|
padding-top: 0.5rem;
|
||||||
padding-bottom: 0.5em;
|
padding-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form.v>view {
|
.ciy-form.v>view {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
margin: 0 0.5em;
|
margin: 0 0.5rem;
|
||||||
width: calc(100% - 1em);
|
width: calc(100% - 1em);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-form.v>label {
|
.ciy-form.v>label {
|
||||||
height: 2em;
|
height: 2rem;
|
||||||
line-height: 2em;
|
line-height: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-waterfall {
|
.ciy-waterfall {
|
||||||
column-count: 2;
|
column-count: 2;
|
||||||
column-gap: 0.5em;
|
column-gap: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ciy-waterfall .itmcont {
|
.ciy-waterfall .itmcont {
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
}
|
}
|
||||||
|
|
@ -878,49 +884,63 @@ text {
|
||||||
|
|
||||||
.md-h1 {
|
.md-h1 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 1.2em;
|
font-size: 1.2rem;
|
||||||
margin-left: 0.3em;
|
line-height: 1.5rem;
|
||||||
line-height: 1.5em;
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding: 0.5em 0 0.5em 0.5em;
|
padding: 0.5em 0 0.5em 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-h2 {
|
.md-h2 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 1.1em;
|
font-size: 1.1rem;
|
||||||
margin-left: 0.4em;
|
line-height: 1.8rem;
|
||||||
line-height: 1.8em;
|
padding: 0.5em 0 0.5em 0.5rem;
|
||||||
padding: 0.5em 0 0.5em 0.5em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-h3,
|
.md-h3,
|
||||||
.md-h4,
|
.md-h4,
|
||||||
.md-h5 {
|
.md-h5 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 1em;
|
font-size: 1rem;
|
||||||
margin-left: 0.5em;
|
line-height: 1.5rem;
|
||||||
line-height: 1.5em;
|
padding: 0.5em 0 0.5em 0.5rem;
|
||||||
padding: 0.5em 0 0.5em 0.5em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-content {
|
.md-content {
|
||||||
font-size: 1em;
|
font-size: 1rem;
|
||||||
text-indent: 1em;
|
text-indent: 1rem;
|
||||||
line-height: 2em;
|
line-height: 2rem;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-code {
|
.md-code {
|
||||||
text-indent: 0;
|
text-indent: 0;
|
||||||
padding: 0.2em 0.4em;
|
padding: 0.2em 0.4rem;
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
line-height: 1em;
|
line-height: 1rem;
|
||||||
margin: 0 0.2em;
|
margin: 0 0.2rem;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background: linear-gradient(340deg, var(--man5), var(--man7));
|
background: linear-gradient(340deg, var(--man5), var(--man7));
|
||||||
border-radius: 0.2em;
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-table-div {
|
||||||
|
width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
background: var(--bg2);
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-table th, .md-table td {
|
||||||
|
border: 1px solid var(--bg6);
|
||||||
|
padding: 0.5em;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.txt-smmm.txt-smmm.txt-smmm {
|
.txt-smmm.txt-smmm.txt-smmm {
|
||||||
|
|
@ -956,13 +976,17 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.txt-wl.txt-wl.txt-wl {
|
.txt-wl.txt-wl.txt-wl {
|
||||||
font-weight: lighter;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
.txt-un.txt-un.txt-un {
|
.txt-un.txt-un.txt-un {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.txt-del.txt-del.txt-del {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
.txt-left.txt-left.txt-left {
|
.txt-left.txt-left.txt-left {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
@ -1187,6 +1211,7 @@ text {
|
||||||
|
|
||||||
.noselect.noselect.noselect {
|
.noselect.noselect.noselect {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tran5.tran5.tran5 {
|
.tran5.tran5.tran5 {
|
||||||
|
|
@ -1232,57 +1257,49 @@ text {
|
||||||
}
|
}
|
||||||
|
|
||||||
.t1.t1.t1 {
|
.t1.t1.t1 {
|
||||||
top: 0.5em;
|
top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.l1.l1.l1 {
|
.l1.l1.l1 {
|
||||||
left: 0.5em;
|
left: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.r1.r1.r1 {
|
.r1.r1.r1 {
|
||||||
right: 0.5em;
|
right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.b1.b1.b1 {
|
.b1.b1.b1 {
|
||||||
bottom: 0.5em;
|
bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.t2.t2.t2 {
|
.t2.t2.t2 {
|
||||||
top: 1em;
|
top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.l2.l2.l2 {
|
.l2.l2.l2 {
|
||||||
left: 1em;
|
left: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.r2.r2.r2 {
|
.r2.r2.r2 {
|
||||||
right: 1em;
|
right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.b2.b2.b2 {
|
.b2.b2.b2 {
|
||||||
bottom: 1em;
|
bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lh1.lh1.lh1 {
|
.lh1.lh1.lh1 {
|
||||||
line-height: 1em;
|
line-height: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lh2.lh2.lh2 {
|
.lh2.lh2.lh2 {
|
||||||
line-height: 1.5em;
|
line-height: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lh3.lh3.lh3 {
|
.lh3.lh3.lh3 {
|
||||||
line-height: 2em;
|
line-height: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lh4.lh4.lh4 {
|
.lh4.lh4.lh4 {
|
||||||
line-height: 2.5em;
|
line-height: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ti1.ti1.ti1 {
|
|
||||||
text-indent: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ti2.ti2.ti2 {
|
|
||||||
text-indent: 2em;
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
var websocket = function(addr) {
|
||||||
|
var app = getApp();
|
||||||
|
var thos = this;
|
||||||
|
this.buffer = new Array(); //发送数据缓冲区
|
||||||
|
this.reOpenData = [2, 5, 3, 5, 5, 3, 5, 8, 10, 20, 30, 30]; //断线重连,每次间隔时间/秒
|
||||||
|
this.reOpen = 0; //断线重连次数
|
||||||
|
this.keepAliveTimer = setInterval(function() {
|
||||||
|
console.log('keep');
|
||||||
|
try {
|
||||||
|
if (thos.wsock && thos.wsock.readyState !== 1) {
|
||||||
|
thos.reOpenSec--;
|
||||||
|
if (thos.reOpenSec <= 0) {
|
||||||
|
thos.reOpen++;
|
||||||
|
thos.reOpenSec = 10;
|
||||||
|
thos.open();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (thos.buffer.length > 0) {
|
||||||
|
var data = thos.buffer.pop();
|
||||||
|
thos.send(data);
|
||||||
|
} else {
|
||||||
|
if (new Date().getTime() - thos.last_health_time >= 15000 && thos.wsock
|
||||||
|
.readyState === 1) {
|
||||||
|
thos.wsock.send({
|
||||||
|
data: 'h'
|
||||||
|
});
|
||||||
|
thos.last_health_time = new Date().getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr("app.ws.error", err);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
this.setOpenSec = function() {
|
||||||
|
(thos.reOpen < thos.reOpenData.length) ? thos.reOpenSec = thos.reOpenData[thos.reOpen]: thos
|
||||||
|
.reOpenSec = 90; //断线重试太多后的间隔时间
|
||||||
|
}
|
||||||
|
this.open = function() {
|
||||||
|
try {
|
||||||
|
if (thos.wsock && thos.wsock.trueClose)
|
||||||
|
return;
|
||||||
|
thos.setOpenSec();
|
||||||
|
if (thos.wsock) {
|
||||||
|
if (thos.wsock.readyState == 1)
|
||||||
|
return;
|
||||||
|
thos.wsock.close();
|
||||||
|
}
|
||||||
|
thos.wsock = uni.connectSocket({
|
||||||
|
url: addr,
|
||||||
|
complete: () => {}
|
||||||
|
});
|
||||||
|
thos.wsock.onOpen(function(event) {
|
||||||
|
try {
|
||||||
|
thos.reOpen = 0;
|
||||||
|
thos.last_health_time = new Date().getTime();
|
||||||
|
if (typeof(thos.onopen) == "function")
|
||||||
|
thos.onopen(event);
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr('app.ws.onopen', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
thos.wsock.onMessage(function(e) {
|
||||||
|
try {
|
||||||
|
if (typeof(thos.onmessage) == "function")
|
||||||
|
thos.onmessage(e);
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr('app.ws.onmessage', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
thos.wsock.onClose(function(e) {
|
||||||
|
try {
|
||||||
|
if (thos.wsock.trueClose) {
|
||||||
|
clearInterval(thos.keepAliveTimer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
thos.setOpenSec();
|
||||||
|
if (typeof(thos.onclose) == "function")
|
||||||
|
thos.onclose(e);
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr('app.ws.onclose', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
thos.wsock.onError(function(e) {
|
||||||
|
try {
|
||||||
|
thos.setOpenSec();
|
||||||
|
if (typeof(thos.onerror) == "function")
|
||||||
|
thos.onerror(e);
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr('app.ws.onerror', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.log(app, err);
|
||||||
|
app.uperr('app.ws.open', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.send = function(msg) {
|
||||||
|
try {
|
||||||
|
if (this.wsock === undefined || this.wsock.trueClose)
|
||||||
|
return false;
|
||||||
|
if (this.wsock.readyState !== 1 || this.wsock.bufferedAmount > 0)
|
||||||
|
this.buffer.push(msg);
|
||||||
|
else {
|
||||||
|
this.wsock.send({
|
||||||
|
data: msg
|
||||||
|
});
|
||||||
|
this.last_health_time = new Date().getTime();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
app.uperr('app.ws.send', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.close = function(send) {
|
||||||
|
this.wsock.trueClose = true;
|
||||||
|
this.wsock.close();
|
||||||
|
}
|
||||||
|
this.open();
|
||||||
|
};
|
||||||
|
|
||||||
|
export default websocket
|
||||||
|
|
@ -14,6 +14,7 @@ const htmlPlugin_ciy = () => {
|
||||||
pft += '<ciy-auth ref="auth"></ciy-auth>'; //暂时只做微信生态
|
pft += '<ciy-auth ref="auth"></ciy-auth>'; //暂时只做微信生态
|
||||||
pft += '<ciy-alert ref="alert"></ciy-alert>';
|
pft += '<ciy-alert ref="alert"></ciy-alert>';
|
||||||
pft += '<ciy-toast ref="toast"></ciy-toast>';
|
pft += '<ciy-toast ref="toast"></ciy-toast>';
|
||||||
|
//pft += '<ciy-dbg ref="dbg"></ciy-dbg>';
|
||||||
pft += '<ciy-popmenu ref="popmenu"></ciy-popmenu>';
|
pft += '<ciy-popmenu ref="popmenu"></ciy-popmenu>';
|
||||||
|
|
||||||
let pfb = '</view>';
|
let pfb = '</view>';
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ xcopy ciydao\pages\demo ciyon_ap\pages\demo /s /y /v
|
||||||
xcopy ciydao\pages\main ciyon_ap\pages\main /s /y /v
|
xcopy ciydao\pages\main ciyon_ap\pages\main /s /y /v
|
||||||
xcopy ciydao\pages\pub ciyon_ap\pages\pub /s /y /v
|
xcopy ciydao\pages\pub ciyon_ap\pages\pub /s /y /v
|
||||||
xcopy ciydao\util ciyon_ap\util /s /y /v
|
xcopy ciydao\util ciyon_ap\util /s /y /v
|
||||||
|
xcopy ciydao\index.html ciyon_ap\index.html /s /y /v
|
||||||
xcopy ciydao\main.js ciyon_ap\main.js /s /y /v
|
xcopy ciydao\main.js ciyon_ap\main.js /s /y /v
|
||||||
xcopy ciydao\vite.config.js ciyon_ap\vite.config.js /s /y /v
|
xcopy ciydao\vite.config.js ciyon_ap\vite.config.js /s /y /v
|
||||||
|
xcopy ..\web\ambdao ..\web\ambap /s /y /v
|
||||||
pause
|
pause
|
||||||
6
main.go
6
main.go
|
|
@ -20,7 +20,7 @@ import (
|
||||||
func main() {
|
func main() {
|
||||||
//nohup ./zgo &
|
//nohup ./zgo &
|
||||||
//nohup /data/go/ciyon/zgo > /dev/null 2>&1 &
|
//nohup /data/go/ciyon/zgo > /dev/null 2>&1 &
|
||||||
c.CiyVars.Version = "1.0.1"
|
c.CiyVars.Version = "1.0.2"
|
||||||
c.Clog("---=========================Ciyon=========================---")
|
c.Clog("---=========================Ciyon=========================---")
|
||||||
c.Clog("Version:", c.CiyVars.Version, " WorkDir:", c.CiyWebDir)
|
c.Clog("Version:", c.CiyVars.Version, " WorkDir:", c.CiyWebDir)
|
||||||
//读取配置文件ini
|
//读取配置文件ini
|
||||||
|
|
@ -99,7 +99,7 @@ func main() {
|
||||||
c.Log = c.NewCiyLog(500)
|
c.Log = c.NewCiyLog(500)
|
||||||
c.Log.SupportStack(c.CiyVars.Version)
|
c.Log.SupportStack(c.CiyVars.Version)
|
||||||
c.Log.InitFile(logfile, logfilelevel)
|
c.Log.InitFile(logfile, logfilelevel)
|
||||||
c.Log.InitTCP(logtcp, logtcplevel)
|
//c.Log.InitTCP(logtcp, logtcplevel)
|
||||||
c.Log.Info("Ciyon", "Ciyon Start.")
|
c.Log.Info("Ciyon", "Ciyon Start.")
|
||||||
go watchMe()
|
go watchMe()
|
||||||
|
|
||||||
|
|
@ -131,7 +131,7 @@ func main() {
|
||||||
web.SetMockFile() //在web/ud/mock目录下建立对应的json文件。
|
web.SetMockFile() //在web/ud/mock目录下建立对应的json文件。
|
||||||
} else if mock != "" {
|
} else if mock != "" {
|
||||||
web.SetMockFn(func(w http.ResponseWriter, r *http.Request) error {
|
web.SetMockFn(func(w http.ResponseWriter, r *http.Request) error {
|
||||||
funname := c.GetQuery("func", r)
|
funname := r.URL.Path
|
||||||
funs := strings.Split(funname, ".")
|
funs := strings.Split(funname, ".")
|
||||||
if len(funs) < 2 {
|
if len(funs) < 2 {
|
||||||
return fmt.Errorf("func fmterr func=%v", funname)
|
return fmt.Errorf("func fmterr func=%v", funname)
|
||||||
|
|
|
||||||
33
route_adm.go
33
route_adm.go
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"ciyon/web/admin/autotask"
|
"ciyon/web/admin/autotask"
|
||||||
"ciyon/web/admin/datasse"
|
"ciyon/web/admin/datasse"
|
||||||
"ciyon/web/admin/demo"
|
"ciyon/web/admin/demo"
|
||||||
|
"ciyon/web/admin/demo/dyn"
|
||||||
"ciyon/web/admin/rigger"
|
"ciyon/web/admin/rigger"
|
||||||
"ciyon/web/admin/wsdemo"
|
"ciyon/web/admin/wsdemo"
|
||||||
c "ciyon/zciyon"
|
c "ciyon/zciyon"
|
||||||
|
|
@ -17,14 +18,11 @@ import (
|
||||||
本文件由node生成
|
本文件由node生成
|
||||||
*/
|
*/
|
||||||
func setWebRoute_adm(web *c.CiyWebServer) {
|
func setWebRoute_adm(web *c.CiyWebServer) {
|
||||||
web.RouterFunc("admin/rigger", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin/rigger", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"logfile": {
|
"logfile": {
|
||||||
"init": rigger.Logfile_init,
|
"init": rigger.Logfile_init,
|
||||||
"viewlog": rigger.Logfile_viewlog,
|
"viewlog": rigger.Logfile_viewlog,
|
||||||
},
|
},
|
||||||
"datasse": {
|
|
||||||
"demo": datasse.DataSSE_demo,
|
|
||||||
},
|
|
||||||
"statsfunc": {
|
"statsfunc": {
|
||||||
"init": rigger.Statsfunc_init,
|
"init": rigger.Statsfunc_init,
|
||||||
"del": rigger.Statsfunc_del,
|
"del": rigger.Statsfunc_del,
|
||||||
|
|
@ -51,9 +49,9 @@ func setWebRoute_adm(web *c.CiyWebServer) {
|
||||||
"del": rigger.Logdb_del,
|
"del": rigger.Logdb_del,
|
||||||
"multiread": rigger.Logdb_multiread,
|
"multiread": rigger.Logdb_multiread,
|
||||||
},
|
},
|
||||||
"luser": {
|
"lug": {
|
||||||
"init": rigger.Luser_init,
|
"init": rigger.Lug_init,
|
||||||
"del": rigger.Luser_del,
|
"del": rigger.Lug_del,
|
||||||
},
|
},
|
||||||
"funcslow": {
|
"funcslow": {
|
||||||
"init": rigger.Funcslow_init,
|
"init": rigger.Funcslow_init,
|
||||||
|
|
@ -134,7 +132,7 @@ func setWebRoute_adm(web *c.CiyWebServer) {
|
||||||
"update": rigger.Role_u_update,
|
"update": rigger.Role_u_update,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
web.RouterFunc("admin/ap", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin/ap", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"paper": {
|
"paper": {
|
||||||
"init": ap.Paper_init,
|
"init": ap.Paper_init,
|
||||||
"update": ap.Paper_update,
|
"update": ap.Paper_update,
|
||||||
|
|
@ -142,7 +140,7 @@ func setWebRoute_adm(web *c.CiyWebServer) {
|
||||||
"del": ap.Paper_del,
|
"del": ap.Paper_del,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
web.RouterFunc("admin/demo", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin/demo", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"normal": {
|
"normal": {
|
||||||
"list": demo.Normal_list,
|
"list": demo.Normal_list,
|
||||||
"del": demo.Normal_del,
|
"del": demo.Normal_del,
|
||||||
|
|
@ -154,17 +152,28 @@ func setWebRoute_adm(web *c.CiyWebServer) {
|
||||||
"importxls_data": demo.Normal_importxls_data,
|
"importxls_data": demo.Normal_importxls_data,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
web.RouterFunc("admin/autotask", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin/demo/dyn", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
|
"sse": {
|
||||||
|
"get": dyn.SSE_get,
|
||||||
|
"post": dyn.SSE_get,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
web.RouterFunc("/admin/autotask", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"task": {
|
"task": {
|
||||||
"main": autotask.Task_main,
|
"main": autotask.Task_main,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
web.RouterFunc("admin/wsdemo", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin/datasse", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
|
"index": {
|
||||||
|
"demo": datasse.Index_demo,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
web.RouterFunc("/admin/wsdemo", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"go": {
|
"go": {
|
||||||
"demo": wsdemo.Wsdemo, //需nginx转发upgrade为websocket协议
|
"demo": wsdemo.Wsdemo, //需nginx转发upgrade为websocket协议
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
web.RouterFunc("admin", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
web.RouterFunc("/admin", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||||
"welcome": {
|
"welcome": {
|
||||||
"init": admin.Welcome_init,
|
"init": admin.Welcome_init,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
59
web.ini.temp
59
web.ini.temp
|
|
@ -1,59 +0,0 @@
|
||||||
|
|
||||||
[db]
|
|
||||||
host=127.0.0.1
|
|
||||||
port=3306
|
|
||||||
user=root
|
|
||||||
pass=wkxroot
|
|
||||||
name=c5_ciyon
|
|
||||||
maxopenconn=0
|
|
||||||
maxidelconn=0
|
|
||||||
maxlifesec=0
|
|
||||||
|
|
||||||
[php]
|
|
||||||
;127.0.0.1:801
|
|
||||||
host=
|
|
||||||
|
|
||||||
[mock]
|
|
||||||
;file zc_ymock
|
|
||||||
target=zc_ymock
|
|
||||||
|
|
||||||
[main]
|
|
||||||
runmode=dev
|
|
||||||
|
|
||||||
[log]
|
|
||||||
logfile=log/ciyon.log
|
|
||||||
logtcp=
|
|
||||||
logfilelevel=1
|
|
||||||
logtcplevel=3
|
|
||||||
|
|
||||||
[web]
|
|
||||||
webmode=http
|
|
||||||
webipsk=127.0.0.1:4003
|
|
||||||
webhttp2=
|
|
||||||
|
|
||||||
[cdn]
|
|
||||||
weburl=https://xxx.ciy.cn
|
|
||||||
files=.html;.js;.css
|
|
||||||
provider=cloud.tencent.com
|
|
||||||
secretId=xxx
|
|
||||||
secretKey=xxx
|
|
||||||
|
|
||||||
[ciyapi]
|
|
||||||
apiid=13453
|
|
||||||
apikey=a52c7b64
|
|
||||||
|
|
||||||
[s3A]
|
|
||||||
access=dce226e23a8455
|
|
||||||
secret=c4d60a219abcf5c0837af80
|
|
||||||
endpoint=1d46d0c3.r2.cloudflarestorage.com
|
|
||||||
region=us-east-1
|
|
||||||
bucket=ciy5
|
|
||||||
acl=public-read
|
|
||||||
|
|
||||||
[s3Z]
|
|
||||||
access=dce226e23a8455
|
|
||||||
secret=c4d60a219abcf5c0837af80
|
|
||||||
endpoint=1d46d0c3.r2.cloudflarestorage.com
|
|
||||||
region=us-east-1
|
|
||||||
bucket=ciy5
|
|
||||||
acl=public-read
|
|
||||||
|
|
@ -0,0 +1,110 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>AI助手</title>
|
||||||
|
<style>
|
||||||
|
.chat-box {
|
||||||
|
width: 600px;
|
||||||
|
margin: 30px auto;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 20px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg {
|
||||||
|
padding: 12px 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user {
|
||||||
|
background: #007bff;
|
||||||
|
color: #fff;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ai {
|
||||||
|
background: #e9e9eb;
|
||||||
|
color: #333;
|
||||||
|
text-align: left;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 80px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding: 10px 20px;
|
||||||
|
background: #007bff;
|
||||||
|
color: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<?php
|
||||||
|
require_once '../zciyphp/openai.php';
|
||||||
|
$config = [
|
||||||
|
'aikey' => 'sk-0cd7b8c72ae04d049306e345f17c6790',
|
||||||
|
'baseurl' => 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
||||||
|
'model' => 'qwen-turbo',
|
||||||
|
'maxtoken' => 2000
|
||||||
|
];
|
||||||
|
|
||||||
|
$openai = new ciy\openai($config);
|
||||||
|
$openai->newsystem('你是seo的规划师');
|
||||||
|
$user_msg = $_POST['msg'] ?? '';
|
||||||
|
// clog($user_msg);
|
||||||
|
// clog($openai->completion($user_msg));
|
||||||
|
$response='';
|
||||||
|
$ai_response = '';
|
||||||
|
if($user_msg){
|
||||||
|
$response = $openai->completion($user_msg);
|
||||||
|
$ai_response = $response['content'];
|
||||||
|
// clog($ai_response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
<div class="chat-box">
|
||||||
|
<h3>我是AI</h3>
|
||||||
|
<?php
|
||||||
|
echo $ai_response;
|
||||||
|
?>
|
||||||
|
<form method="post">
|
||||||
|
<textarea name="msg" placeholder="您想问些什么..." v-model="content"></textarea>
|
||||||
|
<br>
|
||||||
|
<button type="submit">发送</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.5/vue.global.js"></script>
|
||||||
|
<script>
|
||||||
|
const {
|
||||||
|
createApp
|
||||||
|
} = Vue;
|
||||||
|
createApp({
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
content:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}).mount(".chat-box")
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,133 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>关于坤班 - 核心成员</title>
|
||||||
|
<link rel="stylesheet" href="/css/common.css">
|
||||||
|
<link rel="stylesheet" href="/css/core_member.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="form-mask" id="formMask"></div>
|
||||||
|
<!-- 导航栏 -->
|
||||||
|
<?php
|
||||||
|
$currentPath = getCurrentPurePath();
|
||||||
|
$db = new ciy\db();
|
||||||
|
$csql = new ciy\sql('www_list_art');
|
||||||
|
$PageSize = 4;
|
||||||
|
$currentPage = Web_getint('currentPage');
|
||||||
|
$totalData = $db->execute('select keyw from www_list_art where keyw=?', ['坤班成员']);
|
||||||
|
$csql->limit($currentPage, $PageSize);
|
||||||
|
$csql->where('keyw','坤班成员');
|
||||||
|
$csql->order('uptimes desc');
|
||||||
|
$csql->column('name,keyw,descs,icon,id');
|
||||||
|
$count = -1;
|
||||||
|
$rows = $db->get($csql, $count);
|
||||||
|
include_once('wwpage/Kun_header.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- 核心成员头部Banner -->
|
||||||
|
<section class="member-banner">
|
||||||
|
<div class="member-banner-text">
|
||||||
|
<h1>核心成员</h1>
|
||||||
|
<p>前辈领衔,聚力同行</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 核心成员列表 -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="member-list">
|
||||||
|
<?php
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
if ($row['keyw'] == '坤班成员') {
|
||||||
|
$new_descs = explode(' ', $row['descs']);
|
||||||
|
// clog($new_descs[1]);
|
||||||
|
// foreach($new_descs as $new){
|
||||||
|
// clog($new);
|
||||||
|
// }
|
||||||
|
$imgsrc = '/ud' . $row['icon'];
|
||||||
|
echo '
|
||||||
|
<div class="member-card">
|
||||||
|
<div class="member-avatar">
|
||||||
|
<img src="' . $imgsrc . '" alt="' . $row['name'] . '">
|
||||||
|
</div>
|
||||||
|
<div class="member-info">
|
||||||
|
<h3>' . $row['name'] . '</h3>
|
||||||
|
<p>' . $new_descs[0] . '</p>
|
||||||
|
<p>' . $new_descs[1] . '</p>
|
||||||
|
<p>' . $new_descs[2] . '</p>
|
||||||
|
</div>
|
||||||
|
<div class="member-more"><a href="/core_member_detail/'.$row['id'].'">了解更多</a></div>
|
||||||
|
</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<!-- <div class="member-card">
|
||||||
|
<div class="member-avatar">
|
||||||
|
<img src="images/member1.jpg" alt="成员1">
|
||||||
|
</div>
|
||||||
|
<div class="member-info">
|
||||||
|
<h3>张三</h3>
|
||||||
|
<p>学历/职位:本科大三 / 前端组组长</p>
|
||||||
|
<p>专业:计算机科学与技术</p>
|
||||||
|
<p>项目经历:坤班活动管理系统前端开发</p>
|
||||||
|
</div>
|
||||||
|
<div class="member-more"><a href="core_member_detail.html">了解更多</a></div>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 分页导航 -->
|
||||||
|
<div class="pagination">
|
||||||
|
<?php
|
||||||
|
$page = new web\cwebcomon();
|
||||||
|
$page->www_Kun_showpage($totalData, $PageSize, $currentPage, '/core_member', function ($currentPage) {
|
||||||
|
return '/' . $currentPage;
|
||||||
|
});
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="consult-fixed" class="consult-fixed">
|
||||||
|
<span>☁</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-modal" id="formModal">
|
||||||
|
<div class="form-header">
|
||||||
|
<h3>业务需求提交</h3>
|
||||||
|
<button class="close-modal-btn" id="closeModalBtn">×</button>
|
||||||
|
</div>
|
||||||
|
<form class="business-form" id="businessForm">
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="name">姓名:</label>
|
||||||
|
<input type="text" id="name" name="name" placeholder="请输入姓名" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="phone">电话:</label>
|
||||||
|
<input type="tel" id="phone" name="phone" placeholder="请输入手机号" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="demand">业务需求(非必填):</label>
|
||||||
|
<textarea id="demand" name="demand" rows="4" placeholder="请描述你的业务需求"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-btn-group">
|
||||||
|
<button type="submit">提交</button>
|
||||||
|
<button type="button" class="close-form-btn" id="closeFormBtn">取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 底部 -->
|
||||||
|
<?php
|
||||||
|
include_once('wwpage/Kun_footer.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script src="/js/common.js"></script>
|
||||||
|
<script src="js/ask.js"></script>
|
||||||
|
<script src="js/core_member.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,188 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>核心成员 - 张三详情</title>
|
||||||
|
<link rel="stylesheet" href="/css/common.css">
|
||||||
|
<link rel="stylesheet" href="/css/core_member_detail.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="form-mask" id="formMask"></div>
|
||||||
|
<?php
|
||||||
|
$member_id = Web_getint('id');
|
||||||
|
$db = new ciy\db();
|
||||||
|
$csql = new ciy\sql('www_list_art');
|
||||||
|
$csql->where('id', $member_id);
|
||||||
|
$csql->column("name,content,descs,icon");
|
||||||
|
$count = -1;
|
||||||
|
$rows = $db->get($csql, $count);
|
||||||
|
|
||||||
|
// 成员产品
|
||||||
|
$member_product_sql = new ciy\sql('www_list_art');
|
||||||
|
$member_product_sql->where('keyw', '坤班产品');
|
||||||
|
$member_product_sql->column("id,name");
|
||||||
|
$product_name = $db->get($member_product_sql, $count);
|
||||||
|
|
||||||
|
// 随机成员
|
||||||
|
$member_sql = new ciy\sql('www_list_art');
|
||||||
|
$member_sql->where('keyw', '坤班成员');
|
||||||
|
$member_sql->where('id != ?', $member_id);
|
||||||
|
$member_sql->column("id,name");
|
||||||
|
$member_rows = $db->get($member_sql, $count);
|
||||||
|
// clog($member_rows);
|
||||||
|
$recommendRows = [];
|
||||||
|
if (!empty($member_rows)) {
|
||||||
|
shuffle($member_rows);
|
||||||
|
$recommendRows = array_slice($member_rows, 0, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
include_once('wwpage/Kun_header.php');
|
||||||
|
?>
|
||||||
|
<!-- 详情页头部Banner -->
|
||||||
|
<section class="member-detail-banner">
|
||||||
|
<div class="member-detail-banner-text">
|
||||||
|
<h1>核心成员</h1>
|
||||||
|
<p>前辈领衔,聚力同行</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 详情内容 -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="member-detail-container">
|
||||||
|
<?php
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$imgsrc = '/ud' . $row['icon'];
|
||||||
|
$descs = explode("专业", $row['descs']);
|
||||||
|
$content = trim($row['content']);
|
||||||
|
$b = '';
|
||||||
|
$research_projects = '';
|
||||||
|
if (preg_match('/在研项目:\s*(.*?)\s*负责产品:/s', $content, $matches)) {
|
||||||
|
$project_list = explode('、', trim($matches[1]));
|
||||||
|
$research_projects .= '<p><strong>在研项目:</strong></p>';
|
||||||
|
foreach ($project_list as $project) {
|
||||||
|
$project = trim($project);
|
||||||
|
// clog($project);
|
||||||
|
if (!empty($project)) {
|
||||||
|
$matched_id = '';
|
||||||
|
foreach ($product_name as $pn) {
|
||||||
|
// clog($pn);
|
||||||
|
if (trim($pn['name']) == $project) {
|
||||||
|
$matched_id = $pn['id'];
|
||||||
|
// clog(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($matched_id) {
|
||||||
|
$research_projects .= '<p><a href="/product_detail/' . $matched_id . '" style="text-decoration: none;">' . $project . '</a></p>';
|
||||||
|
} else {
|
||||||
|
$research_projects .= '<p>' . $project . '</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$responsible_products = '';
|
||||||
|
if (preg_match('/负责产品:\s*(.*)/s', $content, $matches)) {
|
||||||
|
$product_list = explode('、', trim($matches[1]));
|
||||||
|
$responsible_products .= '<p><strong>负责产品:</strong></p>';
|
||||||
|
foreach ($product_list as $product) {
|
||||||
|
$product = trim($product);
|
||||||
|
if (!empty($product)) {
|
||||||
|
$matched_id = '';
|
||||||
|
foreach ($product_name as $pn) {
|
||||||
|
if (trim($pn['name']) == $product) {
|
||||||
|
$matched_id = $pn['id'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($matched_id) {
|
||||||
|
$responsible_products .= '<p><a href="/product_detail/' . $matched_id . '" style="text-decoration: none;">' . $product . '</a></p>';
|
||||||
|
} else {
|
||||||
|
$responsible_products .= '<p>' . $product . '</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$b = $research_projects . $responsible_products;
|
||||||
|
echo '
|
||||||
|
<div class="member-main-content">
|
||||||
|
<div class="member-basic">
|
||||||
|
<div class="member-detail-avatar">
|
||||||
|
<img src="' . $imgsrc . '" alt="' . $row['name'] . '形象照">
|
||||||
|
</div>
|
||||||
|
<div class="member-detail-info">
|
||||||
|
<h3>姓名:' . $row['name'] . '</h3>
|
||||||
|
<p>' . $descs[0] . '</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="member-section">
|
||||||
|
<h4>核心实践成果</h4>
|
||||||
|
' . $b . '
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="/core_member/" class="back-link">返回核心成员页</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="member-sidebar">
|
||||||
|
<div class="other-members">
|
||||||
|
<h4 class="other-members-title">其他核心成员</h4>
|
||||||
|
<div class="other-members-list">';
|
||||||
|
if (!empty($recommendRows)) {
|
||||||
|
foreach ($recommendRows as $rec) {
|
||||||
|
echo '<a href="/core_member_detail/' . $rec['id'] . '" class="recommend-item">' . $rec['name'] . '</a> ';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<div class="other-members-empty">暂无其他核心成员</div>';
|
||||||
|
}
|
||||||
|
echo '
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="consult-fixed" class="consult-fixed">
|
||||||
|
<span>☁</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-modal" id="formModal">
|
||||||
|
<div class="form-header">
|
||||||
|
<h3>业务需求提交</h3>
|
||||||
|
<button class="close-modal-btn" id="closeModalBtn">×</button>
|
||||||
|
</div>
|
||||||
|
<form class="business-form" id="businessForm">
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="name">姓名:</label>
|
||||||
|
<input type="text" id="name" name="name" placeholder="请输入姓名" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="phone">电话:</label>
|
||||||
|
<input type="tel" id="phone" name="phone" placeholder="请输入手机号" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="demand">业务需求(非必填):</label>
|
||||||
|
<textarea id="demand" name="demand" rows="4" placeholder="请描述你的业务需求"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-btn-group">
|
||||||
|
<button type="submit">提交</button>
|
||||||
|
<button type="button" class="close-form-btn" id="closeFormBtn">取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
include_once('wwpage/Kun_footer.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script src="/js/common.js"></script>
|
||||||
|
<script src="js/ask.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>免责声明</title>
|
||||||
|
<link rel="stylesheet" href="/css/common.css">
|
||||||
|
<link rel="stylesheet" href="/css/declare.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="form-mask" id="formMask"></div>
|
||||||
|
<!-- 导航栏 -->
|
||||||
|
<?php
|
||||||
|
$currentPath = getCurrentPurePath();
|
||||||
|
include_once('wwpage/Kun_header.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- 坤班简介头部Banner -->
|
||||||
|
<section class="declare-banner">
|
||||||
|
<div class="declare-banner-text">
|
||||||
|
<h1>免责声明</h1>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 免责信息 -->
|
||||||
|
<section class="declare-section1">
|
||||||
|
<?php
|
||||||
|
$db = new ciy\db();
|
||||||
|
$web = new ciy\web();
|
||||||
|
$csql = new ciy\sql('www_single');
|
||||||
|
// clog($csql);
|
||||||
|
$csql->where("name",'declare');
|
||||||
|
$csql->column('content');
|
||||||
|
|
||||||
|
$count = -1;
|
||||||
|
$rows = $db->get($csql,$count);
|
||||||
|
// clog($rows);
|
||||||
|
foreach($rows as $row){
|
||||||
|
$contentText = $row['content'];
|
||||||
|
// clog($contentText);
|
||||||
|
echo $web->Web_markdown_convert($contentText);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="consult-fixed" class="consult-fixed">
|
||||||
|
<span>☁</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-modal" id="formModal">
|
||||||
|
<div class="form-header">
|
||||||
|
<h3>业务需求提交</h3>
|
||||||
|
<button class="close-modal-btn" id="closeModalBtn">×</button>
|
||||||
|
</div>
|
||||||
|
<form class="business-form" id="businessForm">
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="name">姓名:</label>
|
||||||
|
<input type="text" id="name" name="name" placeholder="请输入姓名" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="phone">电话:</label>
|
||||||
|
<input type="tel" id="phone" name="phone" placeholder="请输入手机号" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="demand">业务需求(非必填):</label>
|
||||||
|
<textarea id="demand" name="demand" rows="4" placeholder="请描述你的业务需求"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-btn-group">
|
||||||
|
<button type="submit">提交</button>
|
||||||
|
<button type="button" class="close-form-btn" id="closeFormBtn">取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 底部-->
|
||||||
|
<?php
|
||||||
|
include_once('wwpage/Kun_footer.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script src="/js/common.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,274 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>坤班 - 链接校内外</title>
|
||||||
|
<!-- 引入外部CSS样式文件 -->
|
||||||
|
<link rel="stylesheet" href="/css/common.css">
|
||||||
|
<link rel="stylesheet" href="/css/index.css">
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- 头部 -->
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$currentPath = getCurrentPurePath();
|
||||||
|
include_once("wwpage/Kun_header.php");
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Banner区域 -->
|
||||||
|
<section class="banner">
|
||||||
|
<div class="banner-text">
|
||||||
|
<h1>坤班——链接校内外</h1>
|
||||||
|
<p>校内育才 · 校外赋能 聚核领路 技筑成长</p>
|
||||||
|
<div class="banner-btn-group">
|
||||||
|
|
||||||
|
<a href="/join/" class="banner-link primary">申请加入坤班</a>
|
||||||
|
<a href="/product/" class="banner-link secondary">查看实战项目</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 板块1:产研学用融合发展模式 -->
|
||||||
|
<section class="feature-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-title">
|
||||||
|
<h2>坤班核心特色</h2>
|
||||||
|
</div>
|
||||||
|
<div class="feature-container">
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-img">
|
||||||
|
<img src="images/IMUT_night.jpg" alt="产业需求">
|
||||||
|
</div>
|
||||||
|
<h3>产</h3>
|
||||||
|
<p>产业需求为核心牵引,定方向、提要求、供场景</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-img">
|
||||||
|
<img src="images/IMUT_night.jpg" alt="项目育人">
|
||||||
|
</div>
|
||||||
|
<h3>学</h3>
|
||||||
|
<p>以项目育人为核心,融知识、练能力、适配产业</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-img">
|
||||||
|
<img src="images/IMUT_night.jpg" alt="行业痛点攻关">
|
||||||
|
</div>
|
||||||
|
<h3>研</h3>
|
||||||
|
<p>以行业痛点为科研导向,轻攻关、重落地、强积累</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-img">
|
||||||
|
<img src="images/IMUT_night.jpg" alt="资本对接">
|
||||||
|
</div>
|
||||||
|
<h3>商</h3>
|
||||||
|
<p>对接资本,反哺开发</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 板块2:坤班业务范围 - 背景图随业务卡片切换 -->
|
||||||
|
<div class="section-title">
|
||||||
|
<h2>坤班业务范围</h2>
|
||||||
|
</div>
|
||||||
|
<section class="business-section">
|
||||||
|
|
||||||
|
<img src="images/IMUT_day.jpg" alt="业务范围默认背景" class="bg-img" id="businessBgImg">
|
||||||
|
<div class="container">
|
||||||
|
<div class="business-content" id="businessContent">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="business-card-group">
|
||||||
|
<div class="business-card">
|
||||||
|
<h3> 区块链与分布式技术领域</h3>
|
||||||
|
</div>
|
||||||
|
<div class="business-card">
|
||||||
|
<h3>AI 全链路技术与应用领域</h3>
|
||||||
|
</div>
|
||||||
|
<div class="business-card">
|
||||||
|
<h3>高性能技术与开发工具领域</h3>
|
||||||
|
</div>
|
||||||
|
<div class="business-card">
|
||||||
|
<h3>产业数字化与安全服务领域</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 板块3:坤班团体活动(照片墙) -->
|
||||||
|
<section class="activity-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-title">
|
||||||
|
<h2>坤班团体活动</h2>
|
||||||
|
</div>
|
||||||
|
<div class="photo-scroll-wrapper">
|
||||||
|
<div class="photo-wall" id="photoWall">
|
||||||
|
<div class="photo-item">
|
||||||
|
<img src="ud/img/first_Slong1.jpg" alt="活动照片1">
|
||||||
|
<div class="photo-desc">从坤班出发,成为行业里的技术中坚力量</div>
|
||||||
|
</div>
|
||||||
|
<div class="photo-item">
|
||||||
|
<img src="ud/img/first_Slong2.jpg" alt="活动照片2">
|
||||||
|
<div class="photo-desc">用代码破冰,第一次见面就成了技术搭子</div>
|
||||||
|
</div>
|
||||||
|
<div class="photo-item">
|
||||||
|
<img src="ud/img/first_Slong3.jpg" alt="活动照片3">
|
||||||
|
<div class="photo-desc">一人一个干货,全员共同成长</div>
|
||||||
|
</div>
|
||||||
|
<div class="photo-item">
|
||||||
|
<img src="ud/2026/0313/wartc/162832_5391.jpg" alt="活动照片4">
|
||||||
|
<div class="photo-desc">因技术相遇,因热爱同行</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 板块4: -->
|
||||||
|
<section class="list-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="list-container">
|
||||||
|
<div class="list-card">
|
||||||
|
<h3>
|
||||||
|
坤班活动
|
||||||
|
<a href="/activity" style="margin-left: auto; font-size: 14px; color: #165DFF;">更多</a>
|
||||||
|
</h3>
|
||||||
|
<div class="list-content">
|
||||||
|
<?php
|
||||||
|
$db = new ciy\db();
|
||||||
|
$csql = new ciy\sql("www_list_art");
|
||||||
|
$csql->where('cateid', 9);
|
||||||
|
$csql->column('id,name,keyw');
|
||||||
|
$count = -1;
|
||||||
|
$line = 0;
|
||||||
|
$rows = $db->get($csql, $count);
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
if ($row['keyw'] == 'Ac_Sal' && $line < 2) {
|
||||||
|
echo '
|
||||||
|
<div class="list-item">
|
||||||
|
<a href="/detail/Slong/' . $row['id'] . '">' . $row['name'] . '</a>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
$line += 1;
|
||||||
|
} else if ($row['keyw'] == 'Ac_Welcome' && $line < 3) {
|
||||||
|
echo '
|
||||||
|
<div class="list-item">
|
||||||
|
<a href="/detail/Welcome/' . $row['id'] . '">' . $row['name'] . '</a>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
$line += 1;
|
||||||
|
} else if ($row['keyw'] == 'Ac_SaiS' && $line <= 4) {
|
||||||
|
echo '
|
||||||
|
<div class="list-item">
|
||||||
|
<a href="/detail/Sai/' . $row['id'] . '">' . $row['name'] . '</a>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
$line += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="list-card">
|
||||||
|
<h3>
|
||||||
|
常见问题
|
||||||
|
<a href="/resource" style="margin-left: auto; font-size: 14px; color: #165DFF;">更多</a>
|
||||||
|
</h3>
|
||||||
|
<div class="list-content">
|
||||||
|
<?php
|
||||||
|
$db = new ciy\db();
|
||||||
|
$csql = new ciy\sql("www_list_art");
|
||||||
|
$csql->where('cateid', 8);
|
||||||
|
$csql->column('id,name');
|
||||||
|
$count = -1;
|
||||||
|
$rows = $db->get($csql, $count);
|
||||||
|
// clog($rows);
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
// clog($row['name']);
|
||||||
|
echo
|
||||||
|
'
|
||||||
|
<div class="list-item">
|
||||||
|
<a href="/detail/quest/' . $row['id'] . '">' . $row['name'] . '</a>
|
||||||
|
</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="list-card list-card--weak">
|
||||||
|
<h3>
|
||||||
|
行业观察
|
||||||
|
</h3>
|
||||||
|
<div class="list-content">
|
||||||
|
<?php
|
||||||
|
$db = new ciy\db();
|
||||||
|
$csql = new \ciy\sql('www_list_art');
|
||||||
|
$csql->order('id desc');
|
||||||
|
$csql->where('cateid', 2);
|
||||||
|
$csql->column('id,name');
|
||||||
|
$count = -1;
|
||||||
|
$rows = $db->get($csql, $count);
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
echo '
|
||||||
|
<div class="list-item">
|
||||||
|
<a href="/detail/insight/' . $row['id'] . '">' . $row['name'] . '</a>
|
||||||
|
</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!-- -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 固定在线咨询入口 -->
|
||||||
|
<div id="consult-fixed" class="consult-fixed">
|
||||||
|
<span>☁</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-modal" id="formModal">
|
||||||
|
<div class="form-header">
|
||||||
|
<h3>业务需求提交</h3>
|
||||||
|
<button class="close-modal-btn" id="closeModalBtn">×</button>
|
||||||
|
</div>
|
||||||
|
<form class="business-form" id="businessForm">
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="name">姓名:</label>
|
||||||
|
<input type="text" id="name" name="name" placeholder="请输入姓名" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="phone">电话:</label>
|
||||||
|
<input type="tel" id="phone" name="phone" placeholder="请输入手机号" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-item">
|
||||||
|
<label for="demand">业务需求(非必填):</label>
|
||||||
|
<textarea id="demand" name="demand" rows="4" placeholder="请描述你的业务需求"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-btn-group">
|
||||||
|
<button type="submit" class="submit_btn">提交</button>
|
||||||
|
<button type="button" class="close-form-btn" id="closeFormBtn">取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<!-- 底部 -->
|
||||||
|
|
||||||
|
<?php include_once("wwpage/Kun_footer.php"); ?>
|
||||||
|
<!-- 引入外部JS脚本文件 -->
|
||||||
|
<script src="/js/common.js"></script>
|
||||||
|
<script src="/js/index.js"></script>
|
||||||
|
<script src="/js/ask.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user