官网调整
This commit is contained in:
parent
a34a4f1390
commit
00735ea718
|
|
@ -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>
|
||||
82
README.md
82
README.md
|
|
@ -108,38 +108,62 @@
|
|||
|
||||
# 在线演示
|
||||
|
||||
https://ciyon.ciy.cn/
|
||||
|
||||
https://ciyon.ciy.cn/admin/
|
||||
https://ciyon.ciy.cn/
|
||||
https://ciyon.ciy.cn/admin/
|
||||
|
||||
# Windows开发环境部署
|
||||
安装环境: Nginx、PHP8、MariaDB10、Golang
|
||||
开发必备: Git、VSCode(Cursor、Claude Code等替代)、HBuilder、微信开发者工具
|
||||
开发推荐: Navicat 17+、WinSCP5+、Chrome、Apifox、S3 Browser、Node.js
|
||||
工具推荐: Notepad3、draw.io、XMind、Everything
|
||||
[详见教程](https://ciyon.ciy.cn/docs/#100)
|
||||
|
||||
nginx关键配置(PHP):
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name ciyon.local.ciy.cn;
|
||||
root D:/Dreams/ciy/ciyon/web;
|
||||
include ssl_params;
|
||||
include ciyon5_params;
|
||||
}
|
||||
|
||||
nginx关键配置(Golang):
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name ciyongo.local.ciy.cn;
|
||||
root D:/Dreams/ciy/ciyon/web;
|
||||
include ssl_params;
|
||||
set $ipport http://127.0.0.1:4003;
|
||||
include ciyon5go_params;
|
||||
}
|
||||
|
||||
*.local.ciy.cn SSL证书下载 https://ciyon.ciy.cn/ud/install/ssl_local.zip
|
||||
webserver打包下载 https://ciyon.ciy.cn/ud/install/webserver.zip
|
||||
mariadb下载 https://ciyon.ciy.cn/ud/install/mariadb-10.5.10-winx64.msi
|
||||
部署软件: 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
|
||||
|
||||
# Linux生产环境部署
|
||||
[详见教程](https://ciyon.ciy.cn/docs/#102)
|
||||
操作系统: Debian
|
||||
运维工具: Navicat、WinSCP5+、S3 Browser
|
||||
|
||||
# 重要更新记录
|
||||
|
||||
## 2026.02.02
|
||||
- 升级: 路由重构,支持软路由,需结合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框架
|
||||
|
||||
|
|
|
|||
223
c5_ciyon.sql
223
c5_ciyon.sql
|
|
@ -773,7 +773,7 @@ CREATE TABLE `demo_normal` (
|
|||
`setdate` bigint(20) NOT NULL COMMENT '设置日期,DATE,Y-m-d',
|
||||
`settimes` bigint(20) NOT NULL COMMENT '设置时间,DATE',
|
||||
`dayclock` int(11) NOT NULL COMMENT '|营业时间|,TIME,H:i:s',
|
||||
`downurl` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '|文档|,IMG',
|
||||
`downurl` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '|文档|,IMG,t',
|
||||
`avar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '头像,IMG1',
|
||||
`isuse` int(11) NOT NULL COMMENT '|是否使用|,BOOL',
|
||||
`isopen` int(11) NOT NULL COMMENT '|是否开启|,BOOL,开启.关闭',
|
||||
|
|
@ -833,37 +833,91 @@ CREATE TABLE `doc_help` (
|
|||
INSERT INTO `doc_help` VALUES (1, 0, '首页', 10, 1, 1751753699);
|
||||
INSERT INTO `doc_help` VALUES (10, 0, '快速了解', 10, 1, 1757412998);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_content
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_content`;
|
||||
CREATE TABLE `www_content` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容主题',
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',浓缩内容,BR',
|
||||
`qutime` int(11) NOT NULL COMMENT '引用次数|',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '浓缩知识' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_content
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_customer
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_customer`;
|
||||
CREATE TABLE `www_customer` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`fromurl` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '来源页面',
|
||||
`mobile` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手机号',
|
||||
`demandinfo` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '需求信息,BR',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '提交时间,DATE',
|
||||
`contacttimes` bigint(20) NOT NULL COMMENT '接待时间,DATE',
|
||||
`memo` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接待备注,BR',
|
||||
`contactadmin` int(11) NOT NULL COMMENT '接待人,CATA,adminuser',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户线索' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_customer
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_keyword
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_keyword`;
|
||||
CREATE TABLE `www_keyword` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`usetime` int(11) NOT NULL COMMENT '使用次数|',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '关键词库' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_keyword
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_list_art
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_list_art`;
|
||||
CREATE TABLE `www_list_art` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '|ID|',
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,ID,www_list_cate',
|
||||
`bshow` int(11) NOT NULL COMMENT '|显示|,BOOL',
|
||||
`id` int(11) NOT NULL COMMENT '|ID|',
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`clickcnt` int(11) NOT NULL COMMENT '点击量|',
|
||||
`icon` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '缩略图,IMG',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主标题',
|
||||
`seotitle` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SEO标题',
|
||||
`keys` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`keyw` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`author` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '作者',
|
||||
`descs` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',摘要,BR',
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',内容,MD',
|
||||
`csort` int(11) NOT NULL COMMENT '|排序|',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
`uptimes` bigint(20) NOT NULL COMMENT '更新时间,DATE',
|
||||
`vadmin` int(11) NOT NULL COMMENT '创建人,CATA,adminuser',
|
||||
`vadmin` int(11) NOT NULL COMMENT '操作人,CATA,adminuser',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3043 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网站列表通用库' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '已发文章' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_list_art
|
||||
-- ----------------------------
|
||||
INSERT INTO `www_list_art` VALUES (434, 2, 1, 1001, '', '三星级农贸市场收费软件', '', '三星级农贸市场,三星级农贸市场收费软件,农贸市场', '很多人都知道,智慧农贸批发当下势头舒展,而软件作为农贸批发市场一般经营必不或缺的少部分,有着举足轻重的现象。市场方能通过网络上买卖称重数据,与网络上支出信息数据两', '<p>\n很多人都知道,智慧农贸批发当下势头舒展,而软件作为农贸批发市场一般经营必不或缺的少部分,有着举足轻重的现象。市场方能通过网络上买卖称重数据,与网络上支出信息数据两者比较,构成解析,为市场上运作决策做应当统计及保证;为经营户提供了多样化、多平台、多渠道的计量手段,有效果减少了客户换零钱、找零钱、跑机械等困扰。同如今消费群众提供了1个安心、安全、快捷的买东西场所。\n</p>\n<p>\n智慧农贸改造高星市场上精品化。在电脑部件、管理服务等角度提档更新,用心制作一批拥有示范引导效用的四星级及上面所说设计图市场。业态持续发展多方位。改进农贸市场谋划配置、琢磨以邻里重点方式为主新建或改建水产批发市场。进展网络上配送服务,采用互联网上下单、市场上发货、第三方配送的经营方式。\n</p>\n<p>\n智能化果蔬批发选择媒体发布系统的好的地方:1、起到的作用资讯公示的结果,方便客户晓得市场内包含商户、菜价、优惠这个项目、检查内容等数据。 2、内容统一整理至云端,操作市场上运营方登入平台后台查询网上经营现状,既有利于农批市场对外招商引导流量,对内传达提高行业里服务质量,争创星级水产批发市场。\n</p>\n<p>\n智能水产批发转型提升星级化。对乡村无星级网上及城区一星级及下面的农贸批发市场实行分批星级化改造,大幅提升三星级及以上水产批发市场在全市农批市场中的占比。对存在安全影响、规模小、功能差,不符合网上名称登记说明的市场,照章实施退出制度。\n</p>\n<p>\n<br />\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (435, 2, 1, 1190, '', '智能养殖解决方案', '', '智能养殖解决方案,智能养殖,', '随着计算机互联网通信能力、二维码读取、无绳射频识别能力(RFID)、远红外识别器、全球明确软件等等资讯传输设备的发展,物联网技巧从不可触摸通向现世,融合人们消费,宽泛使', '<p><img src=\"/templets/images/yzhc1.jpg\" /> <img src=\"/templets/images/yzhc2.jpg\" /> <img src=\"/templets/images/yzhc3.jpg\" /> <img src=\"/templets/images/yzhc4.jpg\" /> <img src=\"/templets/images/yzhc5.jpg\" /> <img src=\"/templets/images/yzhc6.jpg\" /> <img src=\"/templets/images/yzhc7.jpg\" /> <img src=\"/templets/images/yzhc8.jpg\" /> <img src=\"/templets/images/yzhc9.jpg\" /> <img src=\"/templets/images/yzhc10.jpg\" /> <img src=\"/templets/images/yzhc11.jpg\" /> <img src=\"/templets/images/yzhc12.jpg\" /> <img src=\"/templets/images/yzhc13.jpg\" /> </p>\n<p>\n 随着计算机互联网通信能力、二维码读取、无绳射频识别能力(RFID)、远红外识别器、全球明确软件等等资讯传输设备的发展,物联网技巧从不可触摸通向现世,融合人们消费,宽泛使用在各产业,畜牧业也走进IoT聚焦时代。在促成农牧畜牧规模化、集成化、公开化、智能化、行业化、市场化、智能的进程中,不光一定要放牧康复技艺与工业化放牧的系统情况,也应该需要批量计算机信息使用软件研发。\n</p>\n<p>\n 于IoT技艺的引导下,普通的“后院养殖”刚好逐渐消亡。随便专一的专业养殖场,或者传统养殖个体经营户,都会先便捷便利的坚持智能化的养殖操作执行。物联网技艺甚或最好于一样的养殖范围中,制作着不同的的放牧管理模式,到最后提升牧场的产能与价值,成为一个超级给力的“饲养高手”。\n</p>\n<p>\n 奇博科学智能农牧管理系统在统计各类放牧全程的最宝贵经历的基础上做到网络与畜禽身份各类甄别电子耳标技艺相结合,遵守政府农业发展“整合资源、系统集成”的指导方针,重点是依据农牧业放牧标准化、人性化和质量安全体系建设说明,因此实现农牧业的品类、繁殖发育、饲料、豢养、检疫、组件、生长发育环境等创造生产、交易流程。凭据畜牧商品的生长的时候,个性化的付出饲料,达到细致饲养,降低成本。达到节省时间、增产增收的目标。\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (436, 2, 1, 891, '', '纳服绩效系统软件', '', '纳服绩效系统软件,纳服绩效,', '18大以来,税务总局深层次履行施行政府涉及“严谨KPI维护”的品质,依靠国家对于“推进政府绩效总管”的部署,从前几年用税务KPI维护,从之前的版本到当下的新版本,连续订正、', '<p>\n 18大以来,税务总局深层次履行施行政府涉及“严谨KPI维护”的品质,依靠国家对于“推进政府绩效总管”的部署,从前几年用税务KPI维护,从之前的版本到当下的新版本,连续订正、不畏荆棘成正途,促使标准规范越来越改善、考评实行更加严实、操作体制越发确定、综合作用更明显。航天金税三期上线走进了其中之一新的信息化时代。\n</p>\n<p>\n 办税大厅是税务部门的服务,税务服务人员的显示则会代表了税务部门的名誉。办税员要养成优良的做事嗜好,每天上班前周全安排,每一笔业务认真查对,天天完工后认真清点,快速统计剖析,增加对细节的知名度,改错操作执行过失,为之后的作事积聚阅历。需要有稍强的生意技巧能力。纳税服务众多是杂事,小事,但做的有效果这些个琐细的、详细的、乏味的事件要较强的单子技巧能力,可以在第一个时候觉得详细上要调整的地方并且给出正确的的领会。\n</p>\n<p>\n 增强结论按照,对税务单位负责人进行订单调整、提拔、升级的时候,应以考核结论为关键依据,可缩小人为缘由与不确定根源。税务单位平时考察结论与季度奖励领取相关。级别区别,依照KPI数据来源设定KPI等级规则,就如这样就可以对考核效果坚持分等,例如优、良、差等 。这么多的税收机关一直有自己对等级划分的规范,在目标绩效管控模块中就可以活跃定义。上海奇博科技航天金税三期办税服务服务大厅绩效考察维护工具是有这考察结果采用的功能\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (437, 2, 1, 1539, '', '税务绩效管理方案', '', '税务绩效管理方案,税务绩效管理,', '曾经政府举行专题会议,指引要快点建设按照增强增值税管理替重要目标的“金税工程”。大会赞同用人民银行清理中心网络建设交叉审视工具,同期标出防伪税控平台需先试点,后采', '<p>\n 曾经政府举行专题会议,指引要快点建设按照增强增值税管理替重要目标的“金税工程”。大会赞同用人民银行清理中心网络建设交叉审视工具,同期标出防伪税控平台需先试点,后采取。为团体实行此项工程项目,国家建立了国家税控工具搭建协调总管小组,下属“金税项目”做事部门,详细负责机构、调和平台建设办事。为航天金税三期上线指明了角度\n</p>\n<p>\n 华夏税务项目部门仰仗厉害的内容软件,达到对考核数据的自动收集、的时候掌控和业绩评价,使我国国家税收总局必定追查绩效指标的进行进度,保证各个部门和各个干部都了解自身办事的短板和追赶的目标,彰显了绩效管理持续校正的根本要义。强化能力支撑,没有停止的提升绩效管理工作质效。强化组织保障,业绩维护博取税务骨干广博帮助。机构保障是税务公司部门KPI维护不可或缺的组成部分。用在中国我国税收总局和各个省份税收部门设置KPI管理需求岗位,重复的提高业绩管控的专业化水准。\n</p>\n<p>\n 加强结论凭据,对税务机关负责人实行订单调整、选拔、晋级的时间,应该用考核结果替重要依据,可减少人为因素与不确切根源。税务机关平常考察结论与按季度分成发送挂钩。级数划分,遵照绩效数据来源要求绩效级别规则,如此便可以了对考察得分坚持分等,比如优、良、差等 。这些税务机关一直有自身对级数划分的准则,在目的业绩管理设备终端中绝对可以灵活设置。上海奇博科技航天金税三期税收服务服务大厅业绩考核维护工具便是具有这考核结果采取的功能\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (438, 2, 1, 2039, '', '畜牧业智能养殖计步器', '', '畜牧业智能养殖计步器,畜牧业智能养殖,', '近年来,在中央对畜禽标准化规模畜牧等协助体制的展开下,我国畜牧业刚好身在由一般养殖向当今畜牧变革的重要年代。智能化放牧总管,就可以实现畜牧智能化,设计不同的的养殖', '<p><img src=\"/templets/images/yzhc1.jpg\" /> <img src=\"/templets/images/yzhc2.jpg\" /> <img src=\"/templets/images/yzhc3.jpg\" /> <img src=\"/templets/images/yzhc4.jpg\" /> <img src=\"/templets/images/yzhc5.jpg\" /> <img src=\"/templets/images/yzhc6.jpg\" /> <img src=\"/templets/images/yzhc7.jpg\" /> <img src=\"/templets/images/yzhc8.jpg\" /> <img src=\"/templets/images/yzhc9.jpg\" /> <img src=\"/templets/images/yzhc10.jpg\" /> <img src=\"/templets/images/yzhc11.jpg\" /> <img src=\"/templets/images/yzhc12.jpg\" /> <img src=\"/templets/images/yzhc13.jpg\" /> </p>\n<p>\n 近年来,在中央对畜禽标准化规模畜牧等协助体制的展开下,我国畜牧业刚好身在由一般养殖向当今畜牧变革的重要年代。智能化放牧总管,就可以实现畜牧智能化,设计不同的的养殖管理方式,提高养殖场的产量和价值,让养殖户快速已经是一个超级过得去的“养殖权威”。\n</p>\n<p>\n 农牧业是全体农牧业生产中规模化水准最厉害,能力、设备与成本消耗相比而言聚集的范围之一。在畜牧养殖领域管控生活中,智能放牧总管方案的应用就能实现畜牧场地信息化、智慧远程管理,充分发挥物联网技术在部件养殖生产中的结果,能确保养殖场地内环境适宜放牧畜禽生长发育,实现精细化的维护,为养殖牛羊的深了、好的、高效、自然、安全创造条件,帮客户提高效率、降低成本、提高获取。普遍的放牧方式相较于农民来说不只是有浪费时间,还不要保证羊群的舒服状况是活动情况,智能放牧绝对可以去掉这个难题。\n</p>\n<p>\n 奇博科技智能农牧管理系统其重点技术受到几个方面:一则是智能化穿设备的集成度;再者是对数据处理的AI算法。好的智能化家畜管理系统是要在一些这个运动牲口的此刻达成最准确的彩票预测。让AI跟畜牧养殖学更好用的连结,应该更新十分的的信息数据相关性,进而更进执行,进步准确率。集成智能化无绳射频传感RFID、无线通讯、智能控制系统和下载监控系统等专业技艺,对放牧空气、生长发育状态等实行全方面监控管控,实行认真归纳。\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (439, 2, 1, 1229, '', '大型蔬菜批发市场管理系统', '', '大型蔬菜批发市场,大型蔬菜批发市场管理系统', '城市化进展提升极速,各类大楼拔地而起,科技发展更是蒸蒸日上。而水产批发市场却好像被忽视般,与“高大上”的城区不相符合,必定是落后,甚至于脏乱的。自然,现在各监控部', '<p>\n城市化进展提升极速,各类大楼拔地而起,科技发展更是蒸蒸日上。而水产批发市场却好像被忽视般,与“高大上”的城区不相符合,必定是落后,甚至于脏乱的。自然,现在各监控部门已经注意到这一点,在不同省份农贸市场监控部门参观了改造革新的设计图智能蔬菜批发市场后,也都就意味着智能化水产批发以后已往N多年的转型趋向和焦点新闻。\n</p>\n<p>\n智能化蔬菜批发应该需要用到食品安全追溯工具,普遍模块寻常包容:使用安心水产批发市场食品安全追溯系统,就能够溯源农批市场的客户信息、供求资讯、供应内容、菜品资讯以及检验资讯,让农贸市场感受保证更放心、更安心,让我国看管更快捷方便。顾客最好盘查到买菜品从批发、流通、再到网上的供应商源头信息或者供给日期等内容,源头溯源盘查。\n</p>\n<p>\n智慧水产批发选择媒体发布工具的好的地方:1、获得的效果信息公示的影响,操作购买者了解市场内涵概企业、菜价、优惠活动、检验信息等信息数据。 2、讯息统一聚集至云端,便利网上运营方登入系统后台看一下市场运作状况,既有利于农贸市场对外招商流量导入,对内推销提升网上服务质量,争创星级农贸市场。\n</p>\n<p>\n智能水产批发改革看管技术智慧化。加速推进水产批发市场智慧化改造,运用智能配件设备,展开蔬菜批发市场智能化化维护,因此实现智能付账、购买溯源、计量总管、报价监测等智能化总管和技术模式,为消费者提供便利化智能化化服务。 四周整顿有序化。农贸批发市场界线500米内,原则上不可以成立“临时疏导点”。水产批发市场地域200米内,不提倡设置与市场内运作水产、肉食类、蔬菜、豆制品、熟食等同种用品的运作部门。\n</p>\n<p>\n<br />\n</p>', 1, 0, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (434, 2, 1001, '', '三星级农贸市场收费软件', '', '三星级农贸市场,三星级农贸市场收费软件,农贸市场', '', '很多人都知道,智慧农贸批发当下势头舒展,而软件作为农贸批发市场一般经营必不或缺的少部分,有着举足轻重的现象。市场方能通过网络上买卖称重数据,与网络上支出信息数据两', '<p>\n很多人都知道,智慧农贸批发当下势头舒展,而软件作为农贸批发市场一般经营必不或缺的少部分,有着举足轻重的现象。市场方能通过网络上买卖称重数据,与网络上支出信息数据两者比较,构成解析,为市场上运作决策做应当统计及保证;为经营户提供了多样化、多平台、多渠道的计量手段,有效果减少了客户换零钱、找零钱、跑机械等困扰。同如今消费群众提供了1个安心、安全、快捷的买东西场所。\n</p>\n<p>\n智慧农贸改造高星市场上精品化。在电脑部件、管理服务等角度提档更新,用心制作一批拥有示范引导效用的四星级及上面所说设计图市场。业态持续发展多方位。改进农贸市场谋划配置、琢磨以邻里重点方式为主新建或改建水产批发市场。进展网络上配送服务,采用互联网上下单、市场上发货、第三方配送的经营方式。\n</p>\n<p>\n智能化果蔬批发选择媒体发布系统的好的地方:1、起到的作用资讯公示的结果,方便客户晓得市场内包含商户、菜价、优惠这个项目、检查内容等数据。 2、内容统一整理至云端,操作市场上运营方登入平台后台查询网上经营现状,既有利于农批市场对外招商引导流量,对内传达提高行业里服务质量,争创星级水产批发市场。\n</p>\n<p>\n智能水产批发转型提升星级化。对乡村无星级网上及城区一星级及下面的农贸批发市场实行分批星级化改造,大幅提升三星级及以上水产批发市场在全市农批市场中的占比。对存在安全影响、规模小、功能差,不符合网上名称登记说明的市场,照章实施退出制度。\n</p>\n<p>\n<br />\n</p>', 1, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (435, 2, 1190, '', '智能养殖解决方案', '', '智能养殖解决方案,智能养殖,', '', '随着计算机互联网通信能力、二维码读取、无绳射频识别能力(RFID)、远红外识别器、全球明确软件等等资讯传输设备的发展,物联网技巧从不可触摸通向现世,融合人们消费,宽泛使', '<p><img src=\"/templets/images/yzhc1.jpg\" /> <img src=\"/templets/images/yzhc2.jpg\" /> <img src=\"/templets/images/yzhc3.jpg\" /> <img src=\"/templets/images/yzhc4.jpg\" /> <img src=\"/templets/images/yzhc5.jpg\" /> <img src=\"/templets/images/yzhc6.jpg\" /> <img src=\"/templets/images/yzhc7.jpg\" /> <img src=\"/templets/images/yzhc8.jpg\" /> <img src=\"/templets/images/yzhc9.jpg\" /> <img src=\"/templets/images/yzhc10.jpg\" /> <img src=\"/templets/images/yzhc11.jpg\" /> <img src=\"/templets/images/yzhc12.jpg\" /> <img src=\"/templets/images/yzhc13.jpg\" /> </p>\n<p>\n 随着计算机互联网通信能力、二维码读取、无绳射频识别能力(RFID)、远红外识别器、全球明确软件等等资讯传输设备的发展,物联网技巧从不可触摸通向现世,融合人们消费,宽泛使用在各产业,畜牧业也走进IoT聚焦时代。在促成农牧畜牧规模化、集成化、公开化、智能化、行业化、市场化、智能的进程中,不光一定要放牧康复技艺与工业化放牧的系统情况,也应该需要批量计算机信息使用软件研发。\n</p>\n<p>\n 于IoT技艺的引导下,普通的“后院养殖”刚好逐渐消亡。随便专一的专业养殖场,或者传统养殖个体经营户,都会先便捷便利的坚持智能化的养殖操作执行。物联网技艺甚或最好于一样的养殖范围中,制作着不同的的放牧管理模式,到最后提升牧场的产能与价值,成为一个超级给力的“饲养高手”。\n</p>\n<p>\n 奇博科学智能农牧管理系统在统计各类放牧全程的最宝贵经历的基础上做到网络与畜禽身份各类甄别电子耳标技艺相结合,遵守政府农业发展“整合资源、系统集成”的指导方针,重点是依据农牧业放牧标准化、人性化和质量安全体系建设说明,因此实现农牧业的品类、繁殖发育、饲料、豢养、检疫、组件、生长发育环境等创造生产、交易流程。凭据畜牧商品的生长的时候,个性化的付出饲料,达到细致饲养,降低成本。达到节省时间、增产增收的目标。\n</p>', 1, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (436, 2, 891, '', '纳服绩效系统软件', '', '纳服绩效系统软件,纳服绩效,', '', '18大以来,税务总局深层次履行施行政府涉及“严谨KPI维护”的品质,依靠国家对于“推进政府绩效总管”的部署,从前几年用税务KPI维护,从之前的版本到当下的新版本,连续订正、', '<p>\n 18大以来,税务总局深层次履行施行政府涉及“严谨KPI维护”的品质,依靠国家对于“推进政府绩效总管”的部署,从前几年用税务KPI维护,从之前的版本到当下的新版本,连续订正、不畏荆棘成正途,促使标准规范越来越改善、考评实行更加严实、操作体制越发确定、综合作用更明显。航天金税三期上线走进了其中之一新的信息化时代。\n</p>\n<p>\n 办税大厅是税务部门的服务,税务服务人员的显示则会代表了税务部门的名誉。办税员要养成优良的做事嗜好,每天上班前周全安排,每一笔业务认真查对,天天完工后认真清点,快速统计剖析,增加对细节的知名度,改错操作执行过失,为之后的作事积聚阅历。需要有稍强的生意技巧能力。纳税服务众多是杂事,小事,但做的有效果这些个琐细的、详细的、乏味的事件要较强的单子技巧能力,可以在第一个时候觉得详细上要调整的地方并且给出正确的的领会。\n</p>\n<p>\n 增强结论按照,对税务单位负责人进行订单调整、提拔、升级的时候,应以考核结论为关键依据,可缩小人为缘由与不确定根源。税务单位平时考察结论与季度奖励领取相关。级别区别,依照KPI数据来源设定KPI等级规则,就如这样就可以对考核效果坚持分等,例如优、良、差等 。这么多的税收机关一直有自己对等级划分的规范,在目标绩效管控模块中就可以活跃定义。上海奇博科技航天金税三期办税服务服务大厅绩效考察维护工具是有这考察结果采用的功能\n</p>', 1, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (437, 2, 1539, '', '税务绩效管理方案', '', '税务绩效管理方案,税务绩效管理,', '', '曾经政府举行专题会议,指引要快点建设按照增强增值税管理替重要目标的“金税工程”。大会赞同用人民银行清理中心网络建设交叉审视工具,同期标出防伪税控平台需先试点,后采', '<p>\n 曾经政府举行专题会议,指引要快点建设按照增强增值税管理替重要目标的“金税工程”。大会赞同用人民银行清理中心网络建设交叉审视工具,同期标出防伪税控平台需先试点,后采取。为团体实行此项工程项目,国家建立了国家税控工具搭建协调总管小组,下属“金税项目”做事部门,详细负责机构、调和平台建设办事。为航天金税三期上线指明了角度\n</p>\n<p>\n 华夏税务项目部门仰仗厉害的内容软件,达到对考核数据的自动收集、的时候掌控和业绩评价,使我国国家税收总局必定追查绩效指标的进行进度,保证各个部门和各个干部都了解自身办事的短板和追赶的目标,彰显了绩效管理持续校正的根本要义。强化能力支撑,没有停止的提升绩效管理工作质效。强化组织保障,业绩维护博取税务骨干广博帮助。机构保障是税务公司部门KPI维护不可或缺的组成部分。用在中国我国税收总局和各个省份税收部门设置KPI管理需求岗位,重复的提高业绩管控的专业化水准。\n</p>\n<p>\n 加强结论凭据,对税务机关负责人实行订单调整、选拔、晋级的时间,应该用考核结果替重要依据,可减少人为因素与不确切根源。税务机关平常考察结论与按季度分成发送挂钩。级数划分,遵照绩效数据来源要求绩效级别规则,如此便可以了对考察得分坚持分等,比如优、良、差等 。这些税务机关一直有自身对级数划分的准则,在目的业绩管理设备终端中绝对可以灵活设置。上海奇博科技航天金税三期税收服务服务大厅业绩考核维护工具便是具有这考核结果采取的功能\n</p>', 1, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (438, 2, 2039, '', '畜牧业智能养殖计步器', '', '畜牧业智能养殖计步器,畜牧业智能养殖,', '', '近年来,在中央对畜禽标准化规模畜牧等协助体制的展开下,我国畜牧业刚好身在由一般养殖向当今畜牧变革的重要年代。智能化放牧总管,就可以实现畜牧智能化,设计不同的的养殖', '<p><img src=\"/templets/images/yzhc1.jpg\" /> <img src=\"/templets/images/yzhc2.jpg\" /> <img src=\"/templets/images/yzhc3.jpg\" /> <img src=\"/templets/images/yzhc4.jpg\" /> <img src=\"/templets/images/yzhc5.jpg\" /> <img src=\"/templets/images/yzhc6.jpg\" /> <img src=\"/templets/images/yzhc7.jpg\" /> <img src=\"/templets/images/yzhc8.jpg\" /> <img src=\"/templets/images/yzhc9.jpg\" /> <img src=\"/templets/images/yzhc10.jpg\" /> <img src=\"/templets/images/yzhc11.jpg\" /> <img src=\"/templets/images/yzhc12.jpg\" /> <img src=\"/templets/images/yzhc13.jpg\" /> </p>\n<p>\n 近年来,在中央对畜禽标准化规模畜牧等协助体制的展开下,我国畜牧业刚好身在由一般养殖向当今畜牧变革的重要年代。智能化放牧总管,就可以实现畜牧智能化,设计不同的的养殖管理方式,提高养殖场的产量和价值,让养殖户快速已经是一个超级过得去的“养殖权威”。\n</p>\n<p>\n 农牧业是全体农牧业生产中规模化水准最厉害,能力、设备与成本消耗相比而言聚集的范围之一。在畜牧养殖领域管控生活中,智能放牧总管方案的应用就能实现畜牧场地信息化、智慧远程管理,充分发挥物联网技术在部件养殖生产中的结果,能确保养殖场地内环境适宜放牧畜禽生长发育,实现精细化的维护,为养殖牛羊的深了、好的、高效、自然、安全创造条件,帮客户提高效率、降低成本、提高获取。普遍的放牧方式相较于农民来说不只是有浪费时间,还不要保证羊群的舒服状况是活动情况,智能放牧绝对可以去掉这个难题。\n</p>\n<p>\n 奇博科技智能农牧管理系统其重点技术受到几个方面:一则是智能化穿设备的集成度;再者是对数据处理的AI算法。好的智能化家畜管理系统是要在一些这个运动牲口的此刻达成最准确的彩票预测。让AI跟畜牧养殖学更好用的连结,应该更新十分的的信息数据相关性,进而更进执行,进步准确率。集成智能化无绳射频传感RFID、无线通讯、智能控制系统和下载监控系统等专业技艺,对放牧空气、生长发育状态等实行全方面监控管控,实行认真归纳。\n</p>', 1, 0, 0);
|
||||
INSERT INTO `www_list_art` VALUES (439, 2, 1229, '', '大型蔬菜批发市场管理系统', '', '大型蔬菜批发市场,大型蔬菜批发市场管理系统', '', '城市化进展提升极速,各类大楼拔地而起,科技发展更是蒸蒸日上。而水产批发市场却好像被忽视般,与“高大上”的城区不相符合,必定是落后,甚至于脏乱的。自然,现在各监控部', '<p>\n城市化进展提升极速,各类大楼拔地而起,科技发展更是蒸蒸日上。而水产批发市场却好像被忽视般,与“高大上”的城区不相符合,必定是落后,甚至于脏乱的。自然,现在各监控部门已经注意到这一点,在不同省份农贸市场监控部门参观了改造革新的设计图智能蔬菜批发市场后,也都就意味着智能化水产批发以后已往N多年的转型趋向和焦点新闻。\n</p>\n<p>\n智能化蔬菜批发应该需要用到食品安全追溯工具,普遍模块寻常包容:使用安心水产批发市场食品安全追溯系统,就能够溯源农批市场的客户信息、供求资讯、供应内容、菜品资讯以及检验资讯,让农贸市场感受保证更放心、更安心,让我国看管更快捷方便。顾客最好盘查到买菜品从批发、流通、再到网上的供应商源头信息或者供给日期等内容,源头溯源盘查。\n</p>\n<p>\n智慧水产批发选择媒体发布工具的好的地方:1、获得的效果信息公示的影响,操作购买者了解市场内涵概企业、菜价、优惠活动、检验信息等信息数据。 2、讯息统一聚集至云端,便利网上运营方登入系统后台看一下市场运作状况,既有利于农贸市场对外招商流量导入,对内推销提升网上服务质量,争创星级农贸市场。\n</p>\n<p>\n智能水产批发改革看管技术智慧化。加速推进水产批发市场智慧化改造,运用智能配件设备,展开蔬菜批发市场智能化化维护,因此实现智能付账、购买溯源、计量总管、报价监测等智能化总管和技术模式,为消费者提供便利化智能化化服务。 四周整顿有序化。农贸批发市场界线500米内,原则上不可以成立“临时疏导点”。水产批发市场地域200米内,不提倡设置与市场内运作水产、肉食类、蔬菜、豆制品、熟食等同种用品的运作部门。\n</p>\n<p>\n<br />\n</p>', 1, 0, 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_list_cate
|
||||
|
|
@ -871,22 +925,66 @@ INSERT INTO `www_list_art` VALUES (439, 2, 1, 1229, '', '大型蔬菜批发市
|
|||
DROP TABLE IF EXISTS `www_list_cate`;
|
||||
CREATE TABLE `www_list_cate` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '|ID|',
|
||||
`total` int(11) NOT NULL COMMENT '数据量|',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主标题',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '栏目名',
|
||||
`precnt` int(11) NOT NULL COMMENT '储备文章数|',
|
||||
`daysent` int(11) NOT NULL COMMENT '日发布量|',
|
||||
`bprenow` int(11) NOT NULL COMMENT '|直发否|,BOOL',
|
||||
`promptcute` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',提示词,BR',
|
||||
`seotitle` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SEO标题',
|
||||
`keys` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',关键词',
|
||||
`descs` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',摘要',
|
||||
`keyw` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`descs` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',摘要,BR',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
`uptimes` bigint(20) NOT NULL COMMENT '更新时间,DATE',
|
||||
`vadmin` int(11) NOT NULL COMMENT '创建人,CATA,adminuser',
|
||||
`vadmin` int(11) NOT NULL COMMENT '操作人,CATA,adminuser',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网站列表页库' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '栏目管理' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_list_cate
|
||||
-- ----------------------------
|
||||
INSERT INTO `www_list_cate` VALUES (1, 15, '动态', '动态', '', '', 1582856765, 1582854060, 103);
|
||||
INSERT INTO `www_list_cate` VALUES (2, 1196, '文章资讯', '文章资讯-xx科技有限公司', '文章资讯', '文章资讯', 1594395880, 1594395778, 103);
|
||||
INSERT INTO `www_list_cate` VALUES (1, '动态', 0, 0, 0, '', '动态', '', '', 1582856765, 1582854060, 103);
|
||||
INSERT INTO `www_list_cate` VALUES (2, '文章资讯', 0, 0, 0, '', '文章资讯-xx科技有限公司', '文章资讯', '文章资讯', 1594395880, 1594395778, 103);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_list_preart
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_list_preart`;
|
||||
CREATE TABLE `www_list_preart` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '|ID|',
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`preartstatus` int(11) NOT NULL COMMENT '文章状态,TINT,10.草稿,20.待发,100.已发',
|
||||
`icon` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '缩略图,IMG',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主标题',
|
||||
`seotitle` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SEO标题',
|
||||
`keyw` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`author` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '作者',
|
||||
`descs` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',摘要,BR',
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',内容,MD',
|
||||
`uptimes` bigint(20) NOT NULL COMMENT '更新时间,DATE',
|
||||
`vadmin` int(11) NOT NULL COMMENT '创建人,CATA,adminuser',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3043 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '待发文章' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_list_preart
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_seoplan
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_seoplan`;
|
||||
CREATE TABLE `www_seoplan` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`starttimes` bigint(20) NOT NULL COMMENT '开始日期,DATE,Y-m-d',
|
||||
`endtimes` bigint(20) NOT NULL COMMENT '结束日期,DATE,Y-m-d',
|
||||
`promptseo` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '推广方向提示词,BR',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'SEO规划' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_seoplan
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_seoword
|
||||
|
|
@ -894,24 +992,24 @@ INSERT INTO `www_list_cate` VALUES (2, 1196, '文章资讯', '文章资讯-xx科
|
|||
DROP TABLE IF EXISTS `www_seoword`;
|
||||
CREATE TABLE `www_seoword` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`url` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '链接',
|
||||
`rank` int(11) NOT NULL COMMENT '|概率|',
|
||||
`isuse` int(11) NOT NULL COMMENT '|有效|,BOOL',
|
||||
`rank` int(11) NOT NULL COMMENT '权重|,INT',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `title`(`name`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网站关键词库' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '锚内关键词' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_seoword
|
||||
-- ----------------------------
|
||||
INSERT INTO `www_seoword` VALUES (271, '养殖代养', 'https://www.qiboc.cn/agro/1618.html', 50, 1);
|
||||
INSERT INTO `www_seoword` VALUES (272, '养殖集团', 'https://www.qiboc.cn/agro/1619.html', 50, 1);
|
||||
INSERT INTO `www_seoword` VALUES (275, '闲置计算机', 'https://www.qiboc.cn/agro/1619.html', 50, 1);
|
||||
INSERT INTO `www_seoword` VALUES (276, '养殖合作社', 'https://www.qiboc.cn/agro/1617.html', 50, 1);
|
||||
INSERT INTO `www_seoword` VALUES (277, '农村养殖合作', 'https://www.qiboc.cn/agro/1617.html', 50, 1);
|
||||
INSERT INTO `www_seoword` VALUES (281, '智慧校园平台', 'http://www.qiboc.cn/campus/', 20, 1);
|
||||
INSERT INTO `www_seoword` VALUES (282, '智慧校园管理系统平台', 'http://www.qiboc.cn/campus/', 20, 1);
|
||||
INSERT INTO `www_seoword` VALUES (271, 0, '养殖代养', 'https://www.qiboc.cn/agro/1618.html', 50);
|
||||
INSERT INTO `www_seoword` VALUES (272, 0, '养殖集团', 'https://www.qiboc.cn/agro/1619.html', 50);
|
||||
INSERT INTO `www_seoword` VALUES (275, 0, '闲置计算机', 'https://www.qiboc.cn/agro/1619.html', 50);
|
||||
INSERT INTO `www_seoword` VALUES (276, 0, '养殖合作社', 'https://www.qiboc.cn/agro/1617.html', 50);
|
||||
INSERT INTO `www_seoword` VALUES (277, 0, '农村养殖合作', 'https://www.qiboc.cn/agro/1617.html', 50);
|
||||
INSERT INTO `www_seoword` VALUES (281, 0, '智慧校园平台', 'http://www.qiboc.cn/campus/', 20);
|
||||
INSERT INTO `www_seoword` VALUES (282, 0, '智慧校园管理系统平台', 'http://www.qiboc.cn/campus/', 20);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_single
|
||||
|
|
@ -921,7 +1019,8 @@ CREATE TABLE `www_single` (
|
|||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '|ID|',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主标题',
|
||||
`seotitle` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SEO标题',
|
||||
`keys` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`keyw` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关键词',
|
||||
`author` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '作者',
|
||||
`descs` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',摘要,BR',
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',内容,MD',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
|
|
@ -933,7 +1032,25 @@ CREATE TABLE `www_single` (
|
|||
-- ----------------------------
|
||||
-- Records of www_single
|
||||
-- ----------------------------
|
||||
INSERT INTO `www_single` VALUES (3, '分布式云计算', '云计算|分布式云计算', '分布式云计算', '分布式云计算攻克了分布式云平台计费结算难题,创建了“去中心化的计费结算模型”,云计算平台需求方和资源方之间的频繁结算不需要中心计费服务器,计费结算过程不依赖“账本”,可实现超大规模并行结算', '[MD]\r\n!https://qiboc.cn/templets/htmlimg/1-1.1.png\r\n#项目介绍\n将互联网上的海量闲置计算机通过P2PT健康组网技术和虚拟化技术,把海量计算机闲置的计算资源和网络资源有效利用起来,形成超大规模分布式的云计算平台。 该项目特点是几乎无需投入硬件服务器即可实现上成百上千万台计算机组网工作,投入成本极低。组网后的云平台,能够完成诸如互联网舆情监控、分布式编译、分布式3D渲染、大规模科学计算、证券分析等工作,按需支付算力。\r\n我们创新性的攻克了分布式云平台计费结算难题,借鉴了BitCoin比特币原理,创建了“去中心化的计费结算模型”,云计算平台需求方和资源方之间的频繁结算不需要中心计费服务器,计费结算过程不依赖“账本”,可实现超大规模并行结算,此创新为超大规模分布式云计算平台商用化扫清了道路。\r\n!https://qiboc.cn/templets/htmlimg/1-1.2.png\r\n#发展阶段\r\n本项目由公司孵化中心进行研发工作。目前主要为云爪平台提供大规模数据计算做底层业务支撑。\r\n作为PaaS平台,当前仅支持C#,未来我们将通过虚拟机技术支持多种开发工具,开发者可利用C++、C#、Java、Javascript、Perl、MatLab等编程语言接入,进行大规模并行计算商业逻辑的开发对接。\r\n当前资源性能:每万计算节点贡献约150TFLOPS计算能力,提供超过40Gbps宽带资源。\r\n#P2PT健康组网模型\r\n!https://qiboc.cn/templets/htmlimg/2-1.1.png\r\n!https://qiboc.cn/templets/htmlimg/2-1.2.png\r\n#去中心化计费结算模型\r\n!https://qiboc.cn/templets/htmlimg/2-1.3.png\r\n!https://qiboc.cn/templets/htmlimg/2-1.4.png', 1594319108, 1594319003, 103);
|
||||
INSERT INTO `www_single` VALUES (3, '分布式云计算', '云计算|分布式云计算', '分布式云计算', '', '分布式云计算攻克了分布式云平台计费结算难题,创建了“去中心化的计费结算模型”,云计算平台需求方和资源方之间的频繁结算不需要中心计费服务器,计费结算过程不依赖“账本”,可实现超大规模并行结算', '[MD]\r\n!https://qiboc.cn/templets/htmlimg/1-1.1.png\r\n#项目介绍\n将互联网上的海量闲置计算机通过P2PT健康组网技术和虚拟化技术,把海量计算机闲置的计算资源和网络资源有效利用起来,形成超大规模分布式的云计算平台。 该项目特点是几乎无需投入硬件服务器即可实现上成百上千万台计算机组网工作,投入成本极低。组网后的云平台,能够完成诸如互联网舆情监控、分布式编译、分布式3D渲染、大规模科学计算、证券分析等工作,按需支付算力。\r\n我们创新性的攻克了分布式云平台计费结算难题,借鉴了BitCoin比特币原理,创建了“去中心化的计费结算模型”,云计算平台需求方和资源方之间的频繁结算不需要中心计费服务器,计费结算过程不依赖“账本”,可实现超大规模并行结算,此创新为超大规模分布式云计算平台商用化扫清了道路。\r\n!https://qiboc.cn/templets/htmlimg/1-1.2.png\r\n#发展阶段\r\n本项目由公司孵化中心进行研发工作。目前主要为云爪平台提供大规模数据计算做底层业务支撑。\r\n作为PaaS平台,当前仅支持C#,未来我们将通过虚拟机技术支持多种开发工具,开发者可利用C++、C#、Java、Javascript、Perl、MatLab等编程语言接入,进行大规模并行计算商业逻辑的开发对接。\r\n当前资源性能:每万计算节点贡献约150TFLOPS计算能力,提供超过40Gbps宽带资源。\r\n#P2PT健康组网模型\r\n!https://qiboc.cn/templets/htmlimg/2-1.1.png\r\n!https://qiboc.cn/templets/htmlimg/2-1.2.png\r\n#去中心化计费结算模型\r\n!https://qiboc.cn/templets/htmlimg/2-1.3.png\r\n!https://qiboc.cn/templets/htmlimg/2-1.4.png', 1594319108, 1769161032, 10);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for www_tmplart
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `www_tmplart`;
|
||||
CREATE TABLE `www_tmplart` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cateid` int(11) NOT NULL COMMENT '所属栏目,DB,www_list_cate',
|
||||
`name` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版主题',
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ',模版内容,MD',
|
||||
`qutime` int(11) NOT NULL COMMENT '引用次数|',
|
||||
`addtimes` bigint(20) NOT NULL COMMENT '添加时间,DATE',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 385 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文章模版' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of www_tmplart
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for zc_admin
|
||||
|
|
@ -1217,8 +1334,8 @@ CREATE TABLE `zc_autotask` (
|
|||
-- ----------------------------
|
||||
-- Records of zc_autotask
|
||||
-- ----------------------------
|
||||
INSERT INTO `zc_autotask` VALUES (1, '每日清理', 'base_dayclean', '', 1762627184, 86400, 20, 0);
|
||||
INSERT INTO `zc_autotask` VALUES (2, '健康监测', 'base_srvstats', '', 1745058716, 60, 20, 0);
|
||||
INSERT INTO `zc_autotask` VALUES (1, '每日清理', 'web\admin\autotask\base::dayclean', '', 1762627184, 86400, 20, 0);
|
||||
INSERT INTO `zc_autotask` VALUES (2, '健康监测', 'web\admin\autotask\base::srvstats', '', 1745058716, 60, 20, 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for zc_autotsk_log
|
||||
|
|
@ -1738,20 +1855,20 @@ INSERT INTO `zc_menu` VALUES (231, 61, '待审批事项', '!MSGmatternotice 需
|
|||
INSERT INTO `zc_menu` VALUES (232, 61, '知会事项', '!MSGmattertell 待处理、处理中、已处理', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (233, 61, '我已批事项', '!MSGmatterapproval 非我审批[有代理人]', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (234, 61, '指派代理人', '!MSGmatteragent 指派中,已指派历史', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (250, 62, '用户线索', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (250, 62, '用户线索', 'www/customer.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (251, 62, '文章管理', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (252, 62, '文章生成', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (253, 62, '栏目管理', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (254, 62, '锚内关键词', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (255, 62, '单页管理', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (260, 251, '文章草稿', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (261, 251, '文章待发', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (262, 251, '已发文章', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (263, 251, '热门调优', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (270, 252, '关键词库', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (271, 252, '浓缩知识', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (272, 252, '文章模版', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (273, 252, 'SEO规划', '', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (253, 62, '栏目管理', 'www/list_cate.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (254, 62, '锚内关键词', 'www/seoword.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (255, 62, '单页管理', 'www/single.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (260, 251, '文章草稿', 'www/list_preart.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (261, 251, '文章待发', 'www/list_waitart.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (262, 251, '已发文章', 'www/list_art.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (263, 251, '热门调优', '', '', 10, 2);
|
||||
INSERT INTO `zc_menu` VALUES (270, 252, '关键词库', 'www/keyword.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (271, 252, '浓缩知识', 'www/content.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (272, 252, '文章模版', 'www/tmplart.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (273, 252, 'SEO规划', 'www/seoplan.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (300, 63, '私域平台账号', '!MSG添加企业微信、个人微信、QQ号等', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (301, 63, '线索客户', '!MSG导入手机号,自动分配平台账号,加人。加好后按标签策略,主动跟客户聊天。', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (302, 63, '线索待聊', '!MSG每次回复生成后,根据数字量,延迟1-几分钟。这期间可以人工介入。', '', 10, 1);
|
||||
|
|
@ -1798,7 +1915,7 @@ INSERT INTO `zc_menu` VALUES (550, 81, '健康指标', 'rigger/statsfunc.html',
|
|||
INSERT INTO `zc_menu` VALUES (551, 81, '服务器详情', 'rigger/statssrv.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (552, 81, '数据库详情', 'rigger/statsdb.html', '', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (553, 81, '业务日志', 'rigger/logdb.html?liid=1', 's=审阅|d=删除', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (554, 81, '登录日志', 'rigger/luser.html', 'd=删除', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (554, 81, '登录日志', 'rigger/lug.html', 'd=删除', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (555, 81, '程序日志', 'rigger/logfile.html', 'd=删除', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (556, 81, '慢请求记录', 'rigger/funcslow.html', 'd=删除|e=导出', 10, 1);
|
||||
INSERT INTO `zc_menu` VALUES (600, 82, '配置管理', 'rigger/config.html', 'u=管理|d=删除', 10, 1);
|
||||
|
|
@ -1914,8 +2031,8 @@ DROP TABLE IF EXISTS `zc_mq`;
|
|||
CREATE TABLE `zc_mq` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`mqstatus` int(11) NOT NULL COMMENT '消息状态 //status=1为消息队列,status=2为处理中,status=3-9为一次次重试累加,status=90为失败',
|
||||
`topic` int(11) NOT NULL COMMENT '消息分类',
|
||||
`json` int(11) NOT NULL COMMENT '消息内容',
|
||||
`topic` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息分类',
|
||||
`json` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
|
||||
`nexttimes` bigint(20) NOT NULL COMMENT '下次处理时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '队列表' ROW_FORMAT = Dynamic;
|
||||
|
|
@ -2046,7 +2163,7 @@ DROP TABLE IF EXISTS `zc_tokthd`;
|
|||
CREATE TABLE `zc_tokthd` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '三方平台名称',
|
||||
`cfgtoken` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ConfigData',
|
||||
`cfgtoken` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ConfigData',
|
||||
`accesstoken` varchar(180) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'AccessData',
|
||||
`exptimes` bigint(20) NOT NULL COMMENT '过期时间,DATE',
|
||||
`memo` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '快捷备注',
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -16,11 +16,12 @@
|
|||
"type" : "uniCloud"
|
||||
},
|
||||
{
|
||||
"openVueDevtools" : false,
|
||||
"openVueDevtools" : true,
|
||||
"type" : "uni-app:app-ios"
|
||||
},
|
||||
{
|
||||
"openVueDevtools" : false,
|
||||
"customPlaygroundType" : "device",
|
||||
"openVueDevtools" : true,
|
||||
"playground" : "standard",
|
||||
"type" : "uni-app:app-android"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,17 +2,49 @@
|
|||
export default {
|
||||
globalData: {},
|
||||
onLaunch: function(lopn) {
|
||||
var bggray1 = '#dfdfdf';
|
||||
var bggray2 = '#bbbbbb';
|
||||
var bgsel1 = '#ffdc72';
|
||||
var bgsel2 = '#e65411';
|
||||
var app = this;
|
||||
app.globalData.scrollcbs = {};
|
||||
app.globalData.launchopn = lopn;
|
||||
console.log('launchopn', lopn);
|
||||
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>';
|
||||
app.globalData.tabbarArr.push({
|
||||
name: 'tabbar.index',
|
||||
|
|
@ -20,124 +52,35 @@
|
|||
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||
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({
|
||||
// name: 'tabbar.zh',
|
||||
// fullpath: '/pages/expo',
|
||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||
// 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({
|
||||
// name: 'tabbar.sq',
|
||||
// fullpath: '/pages/socg',
|
||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||
// 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({
|
||||
// name: 'tabbar.cd',
|
||||
// fullpath: '/pages/card',
|
||||
// selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||
// 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({
|
||||
name: 'tabbar.me',
|
||||
fullpath: '/pages/main/me',
|
||||
selecticon: svg.replaceAll(/{{bg1}}/g, bgsel1).replaceAll(/{{bg2}}/g, bgsel2),
|
||||
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.mqfunc = [];
|
||||
|
||||
app.globalData.srv = 't';
|
||||
app.globalData.jsnajax = '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.sharefirstpage = '';// /pages/pub/index';
|
||||
app.globalData.meid = 0;
|
||||
app.globalData.dupsec = 60;
|
||||
app.globalData.storselect = '/';
|
||||
app.globalData.storlist = {
|
||||
'/': 'https://ciyon.ciy.cn/ud/',
|
||||
'A': 'https://cf5.nyyzsoft.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.callfunc({
|
||||
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.callfunc({
|
||||
func: 'login.uperr',
|
||||
data: {
|
||||
meid: app.getme().id,
|
||||
err: app.globalData.errdata
|
||||
},
|
||||
loadhide: true,
|
||||
});
|
||||
app.globalData.errdata = [];
|
||||
app.removestorage('err');
|
||||
}
|
||||
}, 1000);
|
||||
setInterval(async () => {
|
||||
if (app.globalData.mqfunc.length > 0) {
|
||||
console.log(app.globalData.mqfunc);
|
||||
var ret = await app.callfunc({
|
||||
func: app.globalData.mqfunc[0].func,
|
||||
data: app.globalData.mqfunc[0].data,
|
||||
loadhide: true,
|
||||
});
|
||||
var name = app.globalData.mqfunc[0].name;
|
||||
for (var i = app.globalData.mqfunc.length - 1; i >= 0; i--) {
|
||||
if (app.globalData.mqfunc[i].name == name) {
|
||||
app.globalData.mqfunc[i].callback(ret);
|
||||
app.globalData.mqfunc.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 200);
|
||||
|
||||
setInterval(() => {
|
||||
getnewnotice();
|
||||
}, 120000); //2分钟请求一次notice
|
||||
|
|
@ -158,14 +101,6 @@
|
|||
});
|
||||
}
|
||||
|
||||
//#ifdef MP-WEIXIN
|
||||
const accountInfo = uni.getAccountInfoSync();
|
||||
app.globalData._wxappid = accountInfo.miniProgram.appId;
|
||||
app.globalData._wxenv = accountInfo.miniProgram.envVersion;
|
||||
app.globalData._version = accountInfo.miniProgram.version;
|
||||
if (!app.globalData._version)
|
||||
app.globalData._version = accountInfo.miniProgram.envVersion;
|
||||
//#endif
|
||||
// #ifdef APP-PLUS
|
||||
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
||||
app.globalData._version = widgetInfo.version;
|
||||
|
|
@ -173,17 +108,17 @@
|
|||
app.appupdate('app');
|
||||
uni.getPushClientId({
|
||||
success: (res) => {
|
||||
console.log('客户端推送标识:',res);
|
||||
console.log('客户端推送标识:', res);
|
||||
app.globalData._appcid = res.cid;
|
||||
}
|
||||
})
|
||||
uni.onPushMessage((res)=>{
|
||||
uni.onPushMessage((res) => {
|
||||
this.alert(JSON.stringify(res));
|
||||
})
|
||||
// #endif
|
||||
|
||||
var sysinfo = app.globalData._sysinfo;
|
||||
// #ifdef APP-PLUS
|
||||
var sysinfo = app.globalData._sysinfo;
|
||||
if (sysinfo.model == 'k71v1_64_bsp') {
|
||||
app.device_rfid = uni.requireNativePlugin("UhfGModule"); // 133左/134枪/135右
|
||||
app.device_rfid_gunkey = 134;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
virtualHost: true
|
||||
},
|
||||
behaviors: ['uni://form-field-group'],
|
||||
emits: ['change', 'update:modelValue', 'focus', 'blur'],
|
||||
emits: ['change', 'update:modelValue', 'focus', 'blur', 'input'],
|
||||
props: {
|
||||
name: {
|
||||
type: String
|
||||
|
|
@ -99,9 +99,8 @@
|
|||
if (txt === undefined)
|
||||
txt = e.data;
|
||||
this.$emit('update:modelValue', txt);
|
||||
this.$emit('change', {
|
||||
this.$emit('input', {
|
||||
name: this.name,
|
||||
from: 'input',
|
||||
value: txt
|
||||
});
|
||||
},
|
||||
|
|
@ -136,6 +135,7 @@
|
|||
._input._disabled {
|
||||
color: var(--txt1);
|
||||
}
|
||||
|
||||
._input._bb._disabled {
|
||||
background: var(--bg4);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,90 +51,102 @@
|
|||
var mds = markdown.split('\n');
|
||||
var htmls = [];
|
||||
var html = '';
|
||||
var ispvs = 0; //0文本,1html,2表格
|
||||
var isol = false;
|
||||
var titnum = [0, 0, 0, 0, 0];
|
||||
var tabalign = {};
|
||||
for (var m in mds) {
|
||||
if (mds[m].length == 0) {
|
||||
continue;
|
||||
}
|
||||
if (mds[m].length > 0 && mds[m].trim() == '') {
|
||||
var mdline = mds[m].trim();
|
||||
if (mdline.length == 0) {
|
||||
if (ispvs == 0)
|
||||
html += '<br/>';
|
||||
if (ispvs == 2) {
|
||||
html += '</table></div>';
|
||||
ispvs = 0;
|
||||
}
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
html += '<br/>';
|
||||
continue;
|
||||
}
|
||||
if (mds[m][0] == '#') { //标题1/2/3
|
||||
if (mdline[0] == '#') { //标题1/2/3
|
||||
if (ispvs == 2)
|
||||
html += '</table></div>';
|
||||
ispvs = 0;
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
var cr = mds[m].substring(1, 2).toLowerCase();
|
||||
if (mds[m].substring(0, 5) == '#####') {
|
||||
var cr = mdline.substring(1, 2).toLowerCase();
|
||||
if (mdline.substring(0, 5) == '#####') {
|
||||
oladd(4, titnum);
|
||||
if (mds[m].substring(5, 6) == '.')
|
||||
html += '<h5 class="md-h5">' + olnum(4, titnum, '、') + convertcode(mds[m].substring(6)) + '</h5>';
|
||||
else if (mds[m].substring(5, 6) == ':')
|
||||
html += '<div class="md-content">' + olnum(4, titnum, ' ') + convertcode(mds[m].substring(6)) + '</div>';
|
||||
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
|
||||
html += '<h5 class="md-h5">' + convertcode(mds[m].substring(5)) + '</h5>';
|
||||
} else if (mds[m].substring(0, 4) == '####') {
|
||||
html += '<h5 class="md-h5">' + convertcode(mdline.substring(5)) + '</h5>';
|
||||
} else if (mdline.substring(0, 4) == '####') {
|
||||
oladd(3, titnum);
|
||||
if (mds[m].substring(4, 5) == '.')
|
||||
html += '<h4 class="md-h4">' + olnum(3, titnum, '、') + convertcode(mds[m].substring(5)) + '</h4>';
|
||||
else if (mds[m].substring(4, 5) == ':')
|
||||
html += '<div class="md-content">' + olnum(3, titnum, ' ') + convertcode(mds[m].substring(5)) + '</div>';
|
||||
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
|
||||
html += '<h4 class="md-h4">' + convertcode(mds[m].substring(4)) + '</h4>';
|
||||
} else if (mds[m].substring(0, 3) == '###') {
|
||||
html += '<h4 class="md-h4">' + convertcode(mdline.substring(4)) + '</h4>';
|
||||
} else if (mdline.substring(0, 3) == '###') {
|
||||
oladd(2, titnum);
|
||||
if (mds[m].substring(3, 4) == '.')
|
||||
html += '<h3 class="md-h3">' + olnum(2, titnum, '、') + convertcode(mds[m].substring(4)) + '</h3>';
|
||||
else if (mds[m].substring(3, 4) == ':')
|
||||
html += '<div class="md-content">' + olnum(2, titnum, ' ') + convertcode(mds[m].substring(4)) + '</div>';
|
||||
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
|
||||
html += '<h3 class="md-h3">' + convertcode(mds[m].substring(3)) + '</h3>';
|
||||
} else if (mds[m].substring(0, 2) == '##') {
|
||||
html += '<h3 class="md-h3">' + convertcode(mdline.substring(3)) + '</h3>';
|
||||
} else if (mdline.substring(0, 2) == '##') {
|
||||
oladd(1, titnum);
|
||||
if (mds[m].substring(2, 3) == '.')
|
||||
html += '<h2 class="md-h2">' + olnum(1, titnum, '、') + convertcode(mds[m].substring(3)) + '</h2>';
|
||||
else if (mds[m].substring(2, 3) == ':')
|
||||
html += '<div class="md-content">' + olnum(1, titnum, ' ') + convertcode(mds[m].substring(3)) + '</div>';
|
||||
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
|
||||
html += '<h2 class="md-h2">' + convertcode(mds[m].substring(2)) + '</h2>';
|
||||
html += '<h2 class="md-h2">' + convertcode(mdline.substring(2)) + '</h2>';
|
||||
} else {
|
||||
oladd(0, titnum);
|
||||
if (cr == 'c')
|
||||
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mds[m].substring(2)) +
|
||||
'</h1>';
|
||||
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mdline.substring(2)) + '</h1>';
|
||||
else if (cr == 'r')
|
||||
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mds[m].substring(2)) +
|
||||
'</h1>';
|
||||
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mdline.substring(2)) + '</h1>';
|
||||
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 if (cr == ':')
|
||||
html += '<div class="md-content">' + olnum(0, titnum, ' ') + convertcode(mds[m].substring(2)) + '</div>';
|
||||
html += '<div class="md-content">' + olnum(0, titnum, ' ') + convertcode(mdline.substring(2)) + '</div>';
|
||||
else
|
||||
html += '<h1 class="md-h1">' + convertcode(mds[m].substring(1)) + '</h1>';
|
||||
html += '<h1 class="md-h1">' + convertcode(mdline.substring(1)) + '</h1>';
|
||||
}
|
||||
} else if (mds[m][0] == '@') { //c居中,r靠右
|
||||
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')
|
||||
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')
|
||||
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(mds[m].substring(2)) + '</div>';
|
||||
else if (mds[m][1] == '.') {
|
||||
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(mdline.substring(2)) + '</div>';
|
||||
else if (mdline[1] == '.') {
|
||||
if (!isol) {
|
||||
isol = true;
|
||||
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
|
||||
html += '<div class="md-content">' + mds[m].substring(1) + '</div>';
|
||||
html += '<div class="md-content">' + mdline.substring(1) + '</div>';
|
||||
|
||||
} else if (mds[m][0] == '!') { //图片、视频、音频
|
||||
var mis = mds[m].split('|');
|
||||
} else if (mdline[0] == '!') { //图片、视频、音频
|
||||
if (ispvs == 2)
|
||||
html += '</table></div>';
|
||||
ispvs = 0;
|
||||
var mis = mdline.split('|');
|
||||
var url = mis[0];
|
||||
url = this.file_stor(url.substring(1));
|
||||
var ind = url.indexOf('?');
|
||||
|
|
@ -174,17 +186,46 @@
|
|||
content: url
|
||||
});
|
||||
}
|
||||
} else if (mds[m][0] == '<') { //原始HTML
|
||||
html += mds[m];
|
||||
} else {
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
} else if (mdline[0] == '|' && mdline.substring(mdline.length - 1) == '|') { //表格
|
||||
var trs = mdline.substring(1, mdline.length - 1).split('|');
|
||||
if (ispvs == 0) {
|
||||
html += '<div class="md-table-div"><table class="md-table"><tr style="font-weight:bold;">';
|
||||
for (var i in trs) {
|
||||
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 (ispvs == 2)
|
||||
html += '</table></div>';
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
|
|
|
|||
|
|
@ -294,70 +294,6 @@
|
|||
, upimg: function(b) {
|
||||
if (this.Grunning)
|
||||
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]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,10 +41,6 @@
|
|||
type: String,
|
||||
default: 'aspectFill'
|
||||
},
|
||||
whpre: {
|
||||
type: String,
|
||||
default: '?50'
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -73,7 +69,7 @@
|
|||
continue;
|
||||
var ind = ps[i].lastIndexOf('.');
|
||||
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]);
|
||||
else if (ext == 'MP4')
|
||||
this.videoarr.push(ps[i]);
|
||||
|
|
@ -81,19 +77,8 @@
|
|||
this.pdfarr.push(ps[i]);
|
||||
}
|
||||
for (var i in images) {
|
||||
var ind = images[i].indexOf('|');
|
||||
var psm = '';
|
||||
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));
|
||||
this.picarr.push(this.file_stor(images[i], 'thumb'));
|
||||
this.picoriarr.push(this.file_stor(images[i]));
|
||||
}
|
||||
},
|
||||
preview(idx) {
|
||||
|
|
@ -106,9 +91,7 @@
|
|||
openfile(idx) {
|
||||
var app = getApp();
|
||||
app.toast('Downloading...');
|
||||
var url = this.pdfarr[idx];
|
||||
if (url.substr(0, 1) == '/')
|
||||
url = app.globalData.jsnurl[this.srv] + url;
|
||||
var url = this.file_stor(this.pdfarr[idx]);
|
||||
uni.downloadFile({
|
||||
url: url,
|
||||
success: res => {
|
||||
|
|
|
|||
|
|
@ -46,21 +46,14 @@
|
|||
}
|
||||
var ext = this.file_ext(newD);
|
||||
if (ext == 'SVG') {
|
||||
uni.request({
|
||||
this.calltxt({
|
||||
url: this.file_stor(newD),
|
||||
dataType: 'text',
|
||||
method: 'GET',
|
||||
fail: res => {
|
||||
res._url = url;
|
||||
this.uperr("h5.loadsvg.fail", res);
|
||||
return reject({
|
||||
errmsg: res.errMsg
|
||||
});
|
||||
},
|
||||
success: res => {
|
||||
this.type = 'svg';
|
||||
this.srcdata = this.svg2bg(res.data);
|
||||
}
|
||||
}).then(res => {
|
||||
this.type = 'svg';
|
||||
this.srcdata = this.svg2bg(res);
|
||||
}).catch(err => {
|
||||
err._url = url;
|
||||
this.uperr("h5.loadsvg.fail", err);
|
||||
});
|
||||
} else {
|
||||
this.type = 'img';
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@
|
|||
text-overflow: ellipsis;
|
||||
min-width: 7em; */
|
||||
line-height: 1.1em;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
._list>._right {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
virtualHost: true
|
||||
},
|
||||
behaviors: ['uni://form-field-group'],
|
||||
emits: ['change', 'update:modelValue', 'focus', 'blur', 'linechange'],
|
||||
emits: ['change', 'update:modelValue', 'focus', 'blur', 'linechange', 'input'],
|
||||
props: {
|
||||
name: {
|
||||
type: String
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
data() {
|
||||
return {
|
||||
totaltxt: '0字',
|
||||
cursor:0
|
||||
cursor: 0
|
||||
};
|
||||
},
|
||||
watch: {},
|
||||
|
|
@ -100,9 +100,8 @@
|
|||
txt = e.data;
|
||||
this.total(txt);
|
||||
this.$emit('update:modelValue', txt);
|
||||
this.$emit('change', {
|
||||
this.$emit('input', {
|
||||
name: this.name,
|
||||
from: 'input',
|
||||
value: txt
|
||||
});
|
||||
},
|
||||
|
|
@ -133,7 +132,7 @@
|
|||
overflow: auto;
|
||||
width: 100%;
|
||||
z-index: 0;
|
||||
max-height:80vh;
|
||||
max-height: 50vh;
|
||||
/* 解决微信覆盖bug */
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,14 @@
|
|||
<view class="_icon _photo"></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)">
|
||||
<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>
|
||||
<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>
|
||||
</ciy-gesture>
|
||||
<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 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>
|
||||
|
|
@ -172,8 +173,9 @@
|
|||
cameraheight: '141.4',
|
||||
recamrange: [],
|
||||
recamimgs: [],
|
||||
cvwidth: 0,
|
||||
cvheight: 0
|
||||
cvid: '',
|
||||
cvwidth: 88,
|
||||
cvheight: 88
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
|
@ -242,6 +244,7 @@
|
|||
},
|
||||
mounted() {
|
||||
var app = getApp();
|
||||
this.cvid = 'offcanvas_' + parseInt(Math.random() * 1000000);
|
||||
this.header_height = app.globalData._header_statusbar_height;
|
||||
this.recamrange.push({
|
||||
id: '100',
|
||||
|
|
@ -455,9 +458,9 @@
|
|||
this.showrecam = true;
|
||||
},
|
||||
async vcamera(b) {
|
||||
if (!uni.chooseMedia) {
|
||||
return this.vh5();
|
||||
}
|
||||
// #ifdef H5 || APP-PLUS
|
||||
return this.vh5(b, ['camera']);
|
||||
// #endif
|
||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||
if (count <= 0)
|
||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||
|
|
@ -481,9 +484,9 @@
|
|||
this.upfiles(retchoose.tempFiles, 'camera');
|
||||
},
|
||||
async valbum(b) {
|
||||
if (!uni.chooseMedia) {
|
||||
return this.vh5();
|
||||
}
|
||||
// #ifdef H5 || APP-PLUS
|
||||
return this.vh5(b, ['album']);
|
||||
// #endif
|
||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||
if (count <= 0)
|
||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||
|
|
@ -506,9 +509,9 @@
|
|||
this.upfiles(retchoose.tempFiles, 'album');
|
||||
},
|
||||
async vmessage(b) {
|
||||
if (!uni.chooseMessageFile) {
|
||||
return this.vh5();
|
||||
}
|
||||
// #ifdef H5 || APP-PLUS
|
||||
return this.vh5(b, ['album']);
|
||||
// #endif
|
||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||
if (count <= 0)
|
||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||
|
|
@ -533,14 +536,14 @@
|
|||
return console.warn('chooseMessageFile', err);
|
||||
this.upfiles(retchoose.tempFiles, 'message');
|
||||
},
|
||||
async vh5(b) {
|
||||
async vh5(b, source) {
|
||||
var count = this.toint(this.num) - this.tvalue.imgs.length;
|
||||
if (count <= 0)
|
||||
return this.toast(this.lang('upload.maxmsg').replace('{n}', this.num));
|
||||
var opt = {};
|
||||
opt.count = count;
|
||||
opt.sizeType = ['original', 'compressed'];
|
||||
opt.sourceType = ['camera', 'album'];
|
||||
opt.sizeType = ['compressed']; //'original',
|
||||
opt.sourceType = source;
|
||||
var [err, retchoose] = await this.go(uni.chooseImage(opt));
|
||||
if (err)
|
||||
return console.warn('chooseImage', err);
|
||||
|
|
@ -553,16 +556,19 @@
|
|||
this.tip = this.lang('upload.tip') + ' 0/' + this.upcount;
|
||||
this.upidx = 0;
|
||||
var opn = {};
|
||||
//opn.canvasid = 'canvas';
|
||||
opn.offcanvas = {
|
||||
id: this.cvid,
|
||||
dom: this
|
||||
};
|
||||
opn.post = {
|
||||
from: from
|
||||
};
|
||||
opn.basepath = this.path;
|
||||
opn.saas = this.saas;
|
||||
if(this.stor)
|
||||
if (this.stor)
|
||||
opn.stor = this.stor;
|
||||
else
|
||||
opn.stor = app.globalData.storselect;
|
||||
opn.stor = app.globalData.stordefault;
|
||||
opn.action = this.action;
|
||||
opn.maxkb = this.toint(this.maxkb);
|
||||
opn.imgwidth = this.toint(this.imgwidth);
|
||||
|
|
|
|||
|
|
@ -27,5 +27,15 @@
|
|||
"packages": ["pages/demo"],
|
||||
"network": "all"
|
||||
}
|
||||
},
|
||||
"condition" : {
|
||||
"current": 0,
|
||||
"list": [
|
||||
{
|
||||
"name": "custompage",
|
||||
"path": "/pages/demo/comform/upload",
|
||||
"query": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -16,6 +16,12 @@
|
|||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"permissions" : {
|
||||
"plus" : {
|
||||
"description" : "访问系统文件",
|
||||
"features" : [ "io" ]
|
||||
}
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules" : {
|
||||
"Bluetooth" : {},
|
||||
|
|
@ -40,6 +46,8 @@
|
|||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<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\"/>"
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
<view class="content">
|
||||
自由指定文件来源拍摄、相册、会话。<br/>
|
||||
支持文件大小限制、尺寸压缩、水印、指定云、指定API。<br />
|
||||
支持S3协议,亚马逊、Cloudflare、腾讯COS、阿里云OSS等。<br />
|
||||
</view>
|
||||
</view>
|
||||
<form @submit="submitlog">
|
||||
|
|
@ -64,17 +65,36 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>上传到云</label>
|
||||
<label>上传到云存储 A</label>
|
||||
<view>
|
||||
<ciy-upload name="ciy10" path="demo" stor="A" zipjpg="60" 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 class="ciy-form">
|
||||
<label>SaaS上传</label>
|
||||
<label>上传到云存储 B</label>
|
||||
<view>
|
||||
<ciy-upload left name="ciy10b" path="demo" stor="B" zipjpg="60" imgwidth="1000" @change="chglog('change', $event)"></ciy-upload>
|
||||
</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">
|
||||
<label>固定比例拍照</label>
|
||||
<view>
|
||||
|
|
@ -87,6 +107,7 @@
|
|||
<ciy-upload name="ciy13" path="demo" imgwidth="1000" sourcetype="rehcam,album" @change="chglog('change', $event)"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<view class="ciy-form">
|
||||
<label>禁用</label>
|
||||
<view>
|
||||
|
|
@ -130,9 +151,8 @@
|
|||
<view class="hr"></view>
|
||||
<view class="prp">action</view>
|
||||
<view class="tip">
|
||||
http开头,指向绝对API。<br />
|
||||
upload类路径[.微服务码],指向本服务器API。<br />
|
||||
jsnurl + 'z/?func=' + upload类路径 + '/upload.';
|
||||
http开头,指向绝对API,点结尾。<br />
|
||||
例如: https://xxx/upload.
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">sourcetype</view>
|
||||
|
|
@ -142,7 +162,7 @@
|
|||
camera 拍摄<br />
|
||||
album 从相册选择<br />
|
||||
message 从会话选择<br />
|
||||
rehcam 比例相机。<br />
|
||||
rehcam 比例相机 (仅微信小程序)<br />
|
||||
默认 camera,album,message
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
</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="title">属性</view>
|
||||
<view class="content">
|
||||
|
|
@ -52,12 +52,6 @@
|
|||
,{id:'heightFix',name:'高度自适应'}
|
||||
,{id:'scaleToFill',name:'失真全显示'}
|
||||
]"></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 class="ciy-card">
|
||||
|
|
@ -92,7 +86,6 @@
|
|||
height: '5em',
|
||||
type: 'thumb',
|
||||
mode: 'aspectFill',
|
||||
whpre: '?50',
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -13,127 +13,127 @@
|
|||
<view class="ciy-form">
|
||||
<label class="imp">默认标题</label>
|
||||
<view>
|
||||
<ciy-input name="name" v-model="editdata.name"></ciy-input>
|
||||
<ciy-input v-model="editdata.name"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>所属菜单</label>
|
||||
<view>
|
||||
<ciy-select :range="g.zc_menu" name="menuid" v-model="editdata.menuid"></ciy-select>
|
||||
<ciy-select :range="g.zc_menu" v-model="editdata.menuid"></ciy-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>文件大小</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1024" unit="KB" name="filesize" v-model="editdata.filesize"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1024" unit="KB" v-model="editdata.filesize"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>长度</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" name="metre" v-model="editdata.metre"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" v-model="editdata.metre"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>贷款金额</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000000" unit="万元" name="bankmoney" v-model="editdata.bankmoney"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000000" unit="万元" v-model="editdata.bankmoney"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>设置日期</label>
|
||||
<view>
|
||||
<ciy-inputdatetime name="setdate" v-model="editdata.setdate"></ciy-inputdatetime>
|
||||
<ciy-inputdatetime v-model="editdata.setdate"></ciy-inputdatetime>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>设置时间</label>
|
||||
<view>
|
||||
<ciy-inputdatetime btime name="settimes" v-model="editdata.settimes"></ciy-inputdatetime>
|
||||
<ciy-inputdatetime btime v-model="editdata.settimes"></ciy-inputdatetime>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>营业时间</label>
|
||||
<view>
|
||||
<ciy-inputtimepoint bsec name="dayclock" v-model="editdata.dayclock"></ciy-inputtimepoint>
|
||||
<ciy-inputtimepoint bsec v-model="editdata.dayclock"></ciy-inputtimepoint>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>文档</label>
|
||||
<view>
|
||||
<ciy-upload num="5" filetype="all" imgwidth="1000" sourcetype="album,message" path="demo" name="downurl" v-model="editdata.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 class="ciy-form">
|
||||
<label>头像</label>
|
||||
<view>
|
||||
<ciy-upload imgwidth="600" imgheight="600" path="demo" name="avar" v-model="editdata.avar"></ciy-upload>
|
||||
<ciy-upload imgwidth="600" imgheight="600" path="demo" v-model="editdata.avar"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>是否使用</label>
|
||||
<view>
|
||||
<ciy-selbool name="isuse" v-model="editdata.isuse"></ciy-selbool>
|
||||
<ciy-selbool v-model="editdata.isuse"></ciy-selbool>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>是否开启</label>
|
||||
<view>
|
||||
<ciy-selbool y="开启" n="关闭" name="isopen" v-model="editdata.isopen"></ciy-selbool>
|
||||
<ciy-selbool y="开启" n="关闭" v-model="editdata.isopen"></ciy-selbool>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>库存单位</label>
|
||||
<view>
|
||||
<ciy-inputunitedit name="unit" v-model="editdata.unit"></ciy-inputunitedit>
|
||||
<ciy-inputunitedit v-model="editdata.unit"></ciy-inputunitedit>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>单选状态</label>
|
||||
<view>
|
||||
<ciy-radio left :range="g.auditstatus" name="sigstatus" v-model="editdata.sigstatus"></ciy-radio>
|
||||
<ciy-radio left :range="g.auditstatus" v-model="editdata.sigstatus"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>多选状态</label>
|
||||
<view>
|
||||
<ciy-checkbox itemright line :range="g.auditstatus" name="mauditstatus" v-model="editdata.mauditstatus"></ciy-checkbox>
|
||||
<ciy-checkbox itemright line :range="g.auditstatus" v-model="editdata.mauditstatus"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>组织结构</label>
|
||||
<view>
|
||||
<ciy-selcas :range="g.zc_depart" name="prodcata" v-model="editdata.prodcata"></ciy-selcas>
|
||||
<ciy-selcas :range="g.zc_depart" v-model="editdata.prodcata"></ciy-selcas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>所在地区</label>
|
||||
<view>
|
||||
<ciy-selcas :range="g.ciy_arearpc" name="areacode" v-model="editdata.areacode"></ciy-selcas>
|
||||
<ciy-selcas :range="g.ciy_arearpc" v-model="editdata.areacode"></ciy-selcas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>认证情况</label>
|
||||
<view>
|
||||
<ciy-checkbox bin left line :range="g.renzheng" name="renzheng" v-model="editdata.renzheng"></ciy-checkbox>
|
||||
<ciy-checkbox bin left line :range="g.renzheng" v-model="editdata.renzheng"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>临时字典</label>
|
||||
<view>
|
||||
<ciy-select :range="g.ppint" name="ppint" v-model="editdata.ppint"></ciy-select>
|
||||
<ciy-select :range="g.ppint" v-model="editdata.ppint"></ciy-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>执行周期</label>
|
||||
<view>
|
||||
<ciy-inputcyc name="npcyc" v-model="editdata.npcyc"></ciy-inputcyc>
|
||||
<ciy-inputcyc v-model="editdata.npcyc"></ciy-inputcyc>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>执行用时</label>
|
||||
<view>
|
||||
<ciy-input name="runsec" v-model="editdata.runsec"></ciy-input>
|
||||
<ciy-input v-model="editdata.runsec"></ciy-input>
|
||||
</view>
|
||||
<view style="flex:none;">秒</view>
|
||||
</view>
|
||||
|
|
@ -141,74 +141,74 @@
|
|||
<label>活动期数</label>
|
||||
<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="editdata.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 class="ciy-form">
|
||||
<label>活动花絮</label>
|
||||
<view>
|
||||
<ciy-upload num="9" imgwidth="1920" zipjpg="80" path="demo" name="imgs" v-model="editdata.imgs"></ciy-upload>
|
||||
<ciy-upload num="9" imgwidth="1920" zipjpg="80" path="demo" v-model="editdata.imgs"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>吨位</label>
|
||||
<view>
|
||||
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" name="ton" v-model="editdata.ton"></ciy-inputbet>
|
||||
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" v-model="editdata.ton"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>单价</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="100" unit="元" name="price" v-model="editdata.price"></ciy-inputbet>
|
||||
<ciy-inputbet bet="100" unit="元" v-model="editdata.price"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>位置</label>
|
||||
<view>
|
||||
<ciy-selmap name="loc" v-model:lng="editdata.lng" v-model:lat="editdata.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-inputbet bet="100" unit="%" name="pct" v-model="editdata.pct"></ciy-inputbet>
|
||||
<ciy-inputbet bet="100" unit="%" v-model="editdata.pct"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>链接</label>
|
||||
<view>
|
||||
<ciy-input name="url" v-model="editdata.url"></ciy-input>
|
||||
<ciy-input v-model="editdata.url"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>体重</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="公斤" name="weightg" v-model="editdata.weightg"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="公斤" v-model="editdata.weightg"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>耳温</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="℃" name="eartmpr" v-model="editdata.eartmpr"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="℃" v-model="editdata.eartmpr"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>身份证号</label>
|
||||
<view>
|
||||
<ciy-input name="idcard" v-model="editdata.idcard"></ciy-input>
|
||||
<ciy-input v-model="editdata.idcard"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>介绍</label>
|
||||
<view>
|
||||
<ciy-textarea name="content" v-model="editdata.content"></ciy-textarea>
|
||||
<ciy-textarea v-model="editdata.content"></ciy-textarea>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="ciy-form v">
|
||||
<label>富文本</label>
|
||||
<view>
|
||||
<ciy-mdedit name="md" v-model="editdata.md"></ciy-mdedit>
|
||||
<ciy-mdedit v-model="editdata.md"></ciy-mdedit>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
|
@ -229,37 +229,27 @@
|
|||
return {}
|
||||
},
|
||||
onLoad() {
|
||||
if (!this.pagedata.demo)
|
||||
return this.alert('不能直接访问,请重新进入'); //独立进入写后端函数获取数据
|
||||
this.editdata = {...this.pagedata.demo};
|
||||
console.log(this.pagedata); //gourl函数可带出来该行数据
|
||||
this.getdata();
|
||||
},
|
||||
watch: {},
|
||||
computed: {},
|
||||
methods: {
|
||||
async getdata() {
|
||||
var act = 'edit';
|
||||
var page = getApp().getpage(1);
|
||||
if (page && page.init._editonce)
|
||||
act = '';
|
||||
if (this._loading)
|
||||
return;
|
||||
this._loading = true;
|
||||
var retjson = await this.callfunc({
|
||||
func: 'demo/demo.getdata',
|
||||
data: {
|
||||
...this.opn,
|
||||
act: act
|
||||
}
|
||||
//data: this.opn //callfunc会自动带上opn数据
|
||||
});
|
||||
this._loading = false;
|
||||
if (retjson.code != 1)
|
||||
return this.init = retjson;
|
||||
if (act == 'edit') {
|
||||
page.init._editonce = true;
|
||||
page.g.zc_menu = retjson.zc_menu;
|
||||
this.g.zc_menu = retjson.zc_menu;
|
||||
}
|
||||
this.g.zc_menu = retjson.zc_menu; //因列表增量加载,需要全量获取列表字典
|
||||
// this.g.ppint = retjson.ppint; //字典从列表全量获得,如果为从列表进入,则需后台获取
|
||||
// this.g.renzheng = retjson.renzheng; //字典从列表全量获得,如果为从列表进入,则需后台获取
|
||||
this.editdata = retjson.data;
|
||||
this.init = this.objdeepmerge(this.init, retjson);
|
||||
},
|
||||
async edited() {
|
||||
|
|
@ -268,9 +258,7 @@
|
|||
this._loading = true;
|
||||
var retjson = await this.callfunc({
|
||||
func: 'demo/demo.update',
|
||||
data: {
|
||||
...this.editdata
|
||||
}
|
||||
data: this.editdata
|
||||
});
|
||||
this._loading = false;
|
||||
if (retjson.code != 1)
|
||||
|
|
@ -278,6 +266,7 @@
|
|||
var page = getApp().getpage(1);
|
||||
if (page?.init?.list)
|
||||
this.objtolist(page.init.list, retjson.data);
|
||||
await this.toast('提交成功');
|
||||
// const eventChannel = this.getOpenerEventChannel();
|
||||
// eventChannel.emit('writedata', retjson.data);
|
||||
uni.navigateBack();
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@
|
|||
<view>{{totimepoint(item.dayclock, true)}}</view>
|
||||
</view>
|
||||
<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">
|
||||
<label>是否使用</label>
|
||||
|
|
@ -163,7 +164,12 @@
|
|||
</view>
|
||||
</view>
|
||||
<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>
|
||||
</template>
|
||||
|
||||
|
|
@ -221,6 +227,7 @@
|
|||
this.init.lis = [...this.g.auditstatus];
|
||||
this.g.zc_depart = retjson.zc_depart;
|
||||
this.g.ppint = retjson.ppint;
|
||||
this.g.renzheng = retjson.renzheng;
|
||||
}
|
||||
this.getrefs('query').then(ref => {
|
||||
ref.setdata(retjson.where);
|
||||
|
|
@ -247,13 +254,6 @@
|
|||
});
|
||||
},
|
||||
async edit(item) {
|
||||
item = item || {
|
||||
url: '',
|
||||
data: {
|
||||
id: 0,
|
||||
_idx: -1
|
||||
}
|
||||
};
|
||||
this.gourl('demo_edit?id=' + item.data.id, 'navigate', item.data, 'demo');
|
||||
},
|
||||
async del(item) {
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@
|
|||
}, {
|
||||
ok: true,
|
||||
url: 'comform/upload',
|
||||
title: '图片多选器'
|
||||
title: '多文件上传选择器'
|
||||
}, {
|
||||
ok: true,
|
||||
url: 'comform/selmap',
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@
|
|||
func: 调用函数。<br />
|
||||
http开头,指向到外部位置。<br />
|
||||
包含?,jsnurl本地服务器下任意位置。<br />
|
||||
否则,jsnurl+jsnajax+[类名.函数名]。<br />
|
||||
否则,jsnurl+[类名.函数名]。<br />
|
||||
cache: 0不缓存 >0 超过秒数请求<br />
|
||||
cachekey: 指定缓存名,一般参数区分用。默认f_[func]<br />
|
||||
loadhide: true隐藏加载中显示<br />
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
from: 'avar'
|
||||
};
|
||||
opn.path = 'icon';
|
||||
opn.stor = app.globalData.storselect;
|
||||
opn.stor = app.globalData.stordefault;
|
||||
opn.maxkb = 0;
|
||||
opn.imgwidth = 400;
|
||||
opn.imgheight = 400;
|
||||
|
|
|
|||
|
|
@ -134,6 +134,11 @@ export default {
|
|||
});
|
||||
app.methods.launch = function() {
|
||||
var app = this;
|
||||
app.globalData.scrollcbs = {}; //滚动事件全局回调
|
||||
app.globalData.errdata = app.getstorage('err'); //错误收集队列。立即进storage缓存,定时上报。
|
||||
if (!(app.globalData.errdata instanceof Array))
|
||||
app.globalData.errdata = [];
|
||||
app.globalData.mqfunc = []; //防重复调用函数队列。
|
||||
// #ifdef MP-WEIXIN
|
||||
var sys_system = wx.getSystemSetting();
|
||||
var sys_window = wx.getWindowInfo();
|
||||
|
|
@ -184,7 +189,70 @@ export default {
|
|||
} catch (e) {
|
||||
console.log('err', e);
|
||||
}
|
||||
const accountInfo = uni.getAccountInfoSync();
|
||||
app.globalData._wxappid = accountInfo.miniProgram.appId;
|
||||
app.globalData._wxenv = accountInfo.miniProgram.envVersion;
|
||||
app.globalData._version = accountInfo.miniProgram.version;
|
||||
if (!app.globalData._version)
|
||||
app.globalData._version = accountInfo.miniProgram.envVersion;
|
||||
// #endif
|
||||
|
||||
setInterval(() => { //静默刷新字典。静默上传前端错误
|
||||
if (app.globalData._restorage) {
|
||||
app.callfunc({
|
||||
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.callfunc({
|
||||
func: 'login.uperr',
|
||||
data: {
|
||||
meid: app.getme().id,
|
||||
err: app.globalData.errdata
|
||||
},
|
||||
loadhide: true,
|
||||
});
|
||||
app.globalData.errdata = [];
|
||||
app.removestorage('err');
|
||||
}
|
||||
}, 1000);
|
||||
setInterval(async () => {
|
||||
if (app.globalData.mqfunc.length > 0) {
|
||||
console.log(app.globalData.mqfunc);
|
||||
var ret = await app.callfunc({
|
||||
func: app.globalData.mqfunc[0].func,
|
||||
data: app.globalData.mqfunc[0].data,
|
||||
loadhide: true,
|
||||
});
|
||||
var name = app.globalData.mqfunc[0].name;
|
||||
for (var i = app.globalData.mqfunc.length - 1; i >= 0; i--) {
|
||||
if (app.globalData.mqfunc[i].name == name) {
|
||||
app.globalData.mqfunc[i].callback(ret);
|
||||
app.globalData.mqfunc.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 200);
|
||||
};
|
||||
app.methods.lang = function(str) {
|
||||
var app = this;
|
||||
|
|
@ -273,7 +341,7 @@ export default {
|
|||
}
|
||||
return JSON.parse(data);
|
||||
} catch (e) {
|
||||
console.error('json_parse', e);
|
||||
console.error('json_parse', e, 'data=', data);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
|
@ -304,10 +372,7 @@ export default {
|
|||
return reject({
|
||||
errmsg: 'srv无法匹配:' + opt.srv
|
||||
});
|
||||
if (opt.func.indexOf('?') > -1)
|
||||
url += opt.func;
|
||||
else
|
||||
url += app.globalData.jsnajax + opt.func;
|
||||
url += opt.func;
|
||||
}
|
||||
opt.cache = opt.cache || 0; // 0不缓存 >0 对比时间,是否请求
|
||||
if (opt.cache > 0) {
|
||||
|
|
@ -350,16 +415,20 @@ export default {
|
|||
opt.data._appid = app.globalData._wxappid;
|
||||
if (opt.pagethis)
|
||||
opt.data = Object.assign({}, opt.pagethis.opn, opt.data);
|
||||
|
||||
opt.data._pf = 'MB' + new Date().getTime() + '_' + parseInt(80000000 + Math.random() * 10000000);
|
||||
var reqdata = opt.data;
|
||||
if (opt.file) {
|
||||
reqdata = opt.file;
|
||||
//opt.data并入url,仅upload用,暂不实现
|
||||
}
|
||||
const makeRequest = () => {
|
||||
header['ciyauth'] = app.getstorage("_" + app.globalData.tokenfield);
|
||||
opt.data._pf = 'MB' + new Date().getTime() + '_' + parseInt(80000000 + Math.random() * 10000000);
|
||||
uni.request({
|
||||
url: url,
|
||||
data: opt.data,
|
||||
data: reqdata,
|
||||
withCredentials: true,
|
||||
dataType: 'text',
|
||||
method: opt.data ? 'POST' : 'GET',
|
||||
method: opt.method ? opt.method : 'POST',
|
||||
header: header,
|
||||
fail: res => {
|
||||
var errmsg = res.errMsg || 'nofind errMsg.';
|
||||
|
|
@ -675,7 +744,7 @@ export default {
|
|||
this.isPage = true;
|
||||
if (opn.scene) {
|
||||
var scene = decodeURIComponent(opn.scene);
|
||||
console.log(scene);
|
||||
console.log('scene', scene);
|
||||
var obj = this.getstrparam(scene);
|
||||
for (var i in obj)
|
||||
opn[i] = obj[i];
|
||||
|
|
@ -805,7 +874,14 @@ export default {
|
|||
return str;
|
||||
},
|
||||
|
||||
async gourl(b, type, initdata, initkey) { //url支持 http[web]、![原型]、*[alert提示]、$[需登录常规url]、常规url
|
||||
async gourl(b, type, initdata, initkey) {
|
||||
//url http开头,全屏打开web页面
|
||||
//!开头,打开原型图页面
|
||||
//*开头,alert提示
|
||||
//$开头,需要登录
|
||||
//%开头,需要登录,且个人昵称等信息已完善
|
||||
//^开头,需要登录,且已实名认证
|
||||
//&开头,需要登录,且已实名认证+绑定银行卡
|
||||
var url = '';
|
||||
if (typeof(b) != 'string') {
|
||||
url = b.currentTarget.dataset.url;
|
||||
|
|
@ -825,84 +901,79 @@ export default {
|
|||
if (!url)
|
||||
return console.warn('gourl传参错误:' + url);
|
||||
var app = getApp();
|
||||
if (url.substring(0, 4) == 'http') {
|
||||
this.goweb(url, name);
|
||||
} else if (url.substring(0, 1) == '!') {
|
||||
if (url.substring(0, 4) == 'http')
|
||||
return this.goweb(url);
|
||||
if (url[0] == '!') {
|
||||
var dmos = url.substring(1).split('|');
|
||||
if (dmos.length < 2)
|
||||
dmos[1] = '';
|
||||
uni.navigateTo({
|
||||
url: '/pages/pub/web?web=' + encodeURIComponent(app.globalData.demourl + '?menuid=' + dmos[0] + '&title=no&tag=' + dmos[1]) + (dmos[2] ? '&name=' + dmos[2] : ''),
|
||||
url: '/pages/pub/web?web=' + encodeURIComponent('https://i.qiboc.cn/app.goc?menuid=' + dmos[0] + '&title=no&tag=' + dmos[1]) + (dmos[2] ? '&name=' + dmos[2] : ''),
|
||||
animationType: 'pop-in',
|
||||
animationDuration: 1000
|
||||
});
|
||||
} else if (url.substring(0, 1) == '*') {
|
||||
this.alert(url.substring(1));
|
||||
return;
|
||||
} else if (url[0] == '*') {
|
||||
return this.alert(url.substring(1));
|
||||
} else if (url[0] == '$') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth();
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
} else if (url[0] == '%') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('info');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
} else if (url[0] == '^') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('real');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
} else if (url[0] == '&') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('bank');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
} else if (url[0] == '|') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('cciy');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
app.globalData.ciy_page_data[initkey] = {
|
||||
...initdata
|
||||
};
|
||||
if (this.isPage)
|
||||
app.globalData.ciy_page_g = this.g;
|
||||
if (type == 'redirect') {
|
||||
uni.redirectTo({
|
||||
url: url,
|
||||
animationType: 'pop-in',
|
||||
animationDuration: 1000,
|
||||
fail: res => {
|
||||
uni.switchTab({
|
||||
url: url,
|
||||
fail: res => {
|
||||
return this.toast(name + ' 未定义链接:' + url);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (url.substring(0, 1) == '$') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth();
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
if (url.substring(0, 1) == '%') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('info');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
if (url.substring(0, 1) == '^') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('real');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
if (url.substring(0, 1) == '&') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('bank');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
if (url.substring(0, 1) == '*') {
|
||||
url = url.substring(1);
|
||||
var auth = await this.getauth('cciy');
|
||||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
app.globalData.ciy_page_data[initkey] = {
|
||||
...initdata
|
||||
};
|
||||
if (this.isPage)
|
||||
app.globalData.ciy_page_g = this.g;
|
||||
if (type == 'redirect') {
|
||||
uni.redirectTo({
|
||||
url: url,
|
||||
animationType: 'pop-in',
|
||||
animationDuration: 1000,
|
||||
fail: res => {
|
||||
uni.switchTab({
|
||||
url: url,
|
||||
fail: res => {
|
||||
return this.toast(name + ' 未定义链接:' + url);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
animationType: 'pop-in',
|
||||
animationDuration: 1000,
|
||||
fail: res => {
|
||||
uni.switchTab({
|
||||
url: url,
|
||||
fail: res => {
|
||||
return this.toast(name + ' 未定义链接:' + url);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
animationType: 'pop-in',
|
||||
animationDuration: 1000,
|
||||
fail: res => {
|
||||
uni.switchTab({
|
||||
url: url,
|
||||
fail: res => {
|
||||
return this.toast(name + ' 未定义链接:' + url);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
goweb(url, name) {
|
||||
|
|
@ -1141,7 +1212,7 @@ export default {
|
|||
}
|
||||
return '';
|
||||
},
|
||||
file_stor(url, pre) {
|
||||
file_stor(url, act) {
|
||||
if (!url)
|
||||
return '';
|
||||
if (this.islocalmedia(url))
|
||||
|
|
@ -1149,19 +1220,16 @@ export default {
|
|||
if (url.substring(0, 4).toLowerCase() == 'http')
|
||||
return url;
|
||||
var app = getApp();
|
||||
var cdnurl = app.globalData.storlist[url.substring(0, 1)];
|
||||
if (this.isobject(cdnurl)) {
|
||||
var fast = false;
|
||||
if (url.indexOf('banner') > -1)
|
||||
fast = true;
|
||||
if (pre)
|
||||
fast = true;
|
||||
if (fast)
|
||||
cdnurl = cdnurl.fast;
|
||||
else
|
||||
cdnurl = cdnurl.all;
|
||||
if (act == 'thumb') {
|
||||
var pre = app.globalData.storthumb[url[0]];
|
||||
if (pre) {
|
||||
if (pre.indexOf('#img#') > -1)
|
||||
return pre.replace('#img#', '') + url.substring(1);
|
||||
else
|
||||
return app.globalData.storlist[url[0]] + url.substring(1) + pre;
|
||||
}
|
||||
}
|
||||
return cdnurl + url.substring(1) + (pre ? pre : '');
|
||||
return app.globalData.storlist[url[0]] + url.substring(1);
|
||||
},
|
||||
hasstr(str, find) {
|
||||
if (!str)
|
||||
|
|
@ -1589,7 +1657,6 @@ export default {
|
|||
},
|
||||
setfont(font) {
|
||||
// 空,lg xl xxl xxl
|
||||
var app = getApp();
|
||||
if (!font) {
|
||||
font = this.getstorage('_font');
|
||||
if (!font) {
|
||||
|
|
@ -1976,16 +2043,12 @@ export default {
|
|||
}
|
||||
var me = this.getme();
|
||||
if (opn.type == 'message') {
|
||||
if (opn.path == app.globalData.sharefirstpage)
|
||||
if (app.globalData.share_backmainpage && opn.path != app.globalData.mainpage) {
|
||||
if (urlp[0] == '&')
|
||||
urlp = '?' + urlp.substring(1);
|
||||
param.path = app.globalData.mainpage + '?upid=' + me.id + '&u=' + encodeURIComponent(opn.path + urlp);
|
||||
} else {
|
||||
param.path = opn.path + '?upid=' + me.id + urlp;
|
||||
else {
|
||||
if (app.globalData.sharefirstpage) {
|
||||
if (urlp[0] == '&')
|
||||
urlp = '?' + urlp.substring(1);
|
||||
param.path = app.globalData.sharefirstpage + '?upid=' + me.id + '&u=' + encodeURIComponent(opn.path + urlp);
|
||||
} else {
|
||||
param.path = opn.path + '?upid=' + me.id + urlp;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
param.query = 'upid=' + me.id + urlp;
|
||||
|
|
@ -2282,16 +2345,8 @@ export default {
|
|||
}
|
||||
opn.path = path;
|
||||
}
|
||||
if (opn.action) {
|
||||
if (opn.action.substring(0, 4) != 'http') {
|
||||
var uus = opn.action.split('.');
|
||||
if (uus.length == 1)
|
||||
uus[1] = this.srv;
|
||||
opn.action = app.globalData.jsnurl[uus[1]] + 'z/?func=' + uus[0] + '/upload.';
|
||||
}
|
||||
} else {
|
||||
opn.action = app.globalData.jsnurl[app.globalData.srv] + app.globalData.jsnajax + 'upload.';
|
||||
}
|
||||
if (!opn.action)
|
||||
opn.action = app.globalData.jsnurl[app.globalData.srv] + 'upload.';
|
||||
if (typeof(fn.fail) != 'function')
|
||||
fn.fail = () => {};
|
||||
opn.waterfont = opn.waterfont || '36px Arial';
|
||||
|
|
@ -2349,7 +2404,7 @@ export default {
|
|||
})], gf.name));
|
||||
// #endif
|
||||
|
||||
// #ifndef H5
|
||||
// #ifdef MP-WEIXIN
|
||||
var [err, img] = await this.go(uni.getImageInfo({
|
||||
src: fpath
|
||||
}));
|
||||
|
|
@ -2386,7 +2441,9 @@ export default {
|
|||
var res = await uni.canvasToTempFilePath({
|
||||
canvas: canvas,
|
||||
fileType: 'jpg',
|
||||
quality: zipjpg / 100
|
||||
quality: zipjpg / 100,
|
||||
destWidth: width,
|
||||
destHeight: height,
|
||||
});
|
||||
gf.tempFilePath = res.tempFilePath;
|
||||
fs.getFileInfo({
|
||||
|
|
@ -2397,6 +2454,56 @@ export default {
|
|||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
try {
|
||||
if (!opn.offcanvas)
|
||||
return uploadpfile(gf);
|
||||
var [err, img] = await this.go(uni.getImageInfo({
|
||||
src: fpath
|
||||
}));
|
||||
if (err)
|
||||
return fn.fail('getImageInfo Error:' + fpath, gf, err);
|
||||
var [width, height] = setimgrect(img);
|
||||
var zipjpg = this.toint(opn.zipjpg);
|
||||
if (width == 0 && zipjpg == 0 && !opn.watertext)
|
||||
return uploadpfile(gf);
|
||||
if (width == 0) {
|
||||
width = img.width;
|
||||
height = img.height;
|
||||
}
|
||||
opn.offcanvas.dom.cvwidth = width;
|
||||
opn.offcanvas.dom.cvheight = height;
|
||||
await opn.offcanvas.dom.$nextTick();
|
||||
await this.sleep(100);
|
||||
const ctx = uni.createCanvasContext(opn.offcanvas.id, opn.offcanvas.dom);
|
||||
if (!ctx)
|
||||
return fn.fail('createCanvasContext Error:' + fpath, gf, err);
|
||||
ctx.drawImage(fpath, 0, 0, width, height);
|
||||
waterctx(ctx, width, height);
|
||||
ctx.draw(true, async () => {
|
||||
if (zipjpg <= 0)
|
||||
zipjpg = 70;
|
||||
var res = await uni.canvasToTempFilePath({
|
||||
canvasId: opn.offcanvas.id,
|
||||
fileType: 'jpg',
|
||||
quality: zipjpg / 100,
|
||||
destWidth: width,
|
||||
destHeight: height,
|
||||
});
|
||||
gf.path = res.tempFilePath;
|
||||
gf.name = res.tempFilePath.substring(res.tempFilePath.length - 6);
|
||||
uni.getFileInfo({
|
||||
filePath: gf.path,
|
||||
success: fsize => {
|
||||
gf.size = fsize.size;
|
||||
uploadpfile(gf);
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch (err) {
|
||||
console.log('app canvas err', err);
|
||||
}
|
||||
// #endif
|
||||
})(files[u], 1 + u * 1050);
|
||||
}
|
||||
|
||||
|
|
@ -2494,96 +2601,100 @@ export default {
|
|||
}
|
||||
ctx.globalAlpha = 1;
|
||||
};
|
||||
var getfileArray = async pf => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// #ifdef H5
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function(evt) {
|
||||
resolve(evt.target.result);
|
||||
};
|
||||
reader.onerror = function(evt) {
|
||||
console.error('读取文件失败:', evt.target.error);
|
||||
reject(evt.target.error);
|
||||
};
|
||||
reader.readAsArrayBuffer(pf);
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN
|
||||
const wxfs = wx.getFileSystemManager();
|
||||
const fileBuffer = wxfs.readFile({
|
||||
filePath: pf.tempFilePath,
|
||||
success: function(evt) {
|
||||
resolve(evt.data);
|
||||
},
|
||||
fail: function(err) {
|
||||
console.error('读取文件失败:', err);
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
var pfpath = pf.path;
|
||||
if (pfpath.substring(0, 7) == 'file://')
|
||||
pfpath = pfpath.substring(7);
|
||||
plus.io.resolveLocalFileSystemURL(pfpath, function(fileEntry) {
|
||||
fileEntry.file(function(file) {
|
||||
const reader = new plus.io.FileReader();
|
||||
reader.onloadend = function(evt) {
|
||||
const buffer = new ArrayBuffer(evt.target.result.length);
|
||||
const view = new Uint8Array(buffer);
|
||||
for (let i = 0; i < evt.target.result.length; i++) {
|
||||
view[i] = evt.target.result.charCodeAt(i);
|
||||
}
|
||||
resolve(buffer);
|
||||
};
|
||||
|
||||
reader.onerror = function(evt) {
|
||||
console.error('读取文件失败:', evt.target.error);
|
||||
reject(evt.target.error);
|
||||
};
|
||||
//reader.readAsArrayBuffer(file);
|
||||
reader.readAsText(file, 'latin1');
|
||||
}, function(error) {
|
||||
console.error('获取 File 对象失败:', error);
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
// #endif
|
||||
}).catch(e => {
|
||||
console.log('getfileArray', e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
var uploadpfile = async gf => { //文件多通道上传
|
||||
if (opn.maxkb > 0 && gf.size >= opn.maxkb * 1024)
|
||||
return fn.fail('MaxSize:' + opn.maxkb + 'KB, This:' + parseInt(gf.size /
|
||||
1024) + 'KB', gf);
|
||||
var app = getApp();
|
||||
var header = {};
|
||||
header['ciyauth'] = app.getstorage("_" + app.globalData.tokenfield);
|
||||
var filepath = gf.tempFilePath || gf.tempImagePath || gf.path;
|
||||
return fn.fail('MaxSize:' + opn.maxkb + 'KB, This:' + parseInt(gf.size / 1024) + 'KB', gf);
|
||||
var now = new Date();
|
||||
var fext = this.file_ext(gf.name);
|
||||
var pathfile = opn.path + '/' + now.getHours() + now.getMinutes() + now
|
||||
.getSeconds() + '_' +
|
||||
(1000 + Math.round(Math.random() * 8000)) + '.' + fext.toLowerCase();
|
||||
var pathfile = opn.path + '/' + now.getHours() + now.getMinutes() + now.getSeconds() + '_' + (1000 + Math.round(Math.random() * 8000)) + '.' + fext.toLowerCase();
|
||||
const fileBuffer = await getfileArray(gf);
|
||||
if (opn.stor == '/') {
|
||||
var ufparam = {};
|
||||
ufparam.url = opn.action + "upload&pathfile=" + pathfile;
|
||||
ufparam.header = header;
|
||||
if (opn.post)
|
||||
ufparam.formData = opn.post;
|
||||
if (filepath) {
|
||||
ufparam.filePath = filepath;
|
||||
ufparam.name = 'file';
|
||||
} else {
|
||||
ufparam.file = gf;
|
||||
}
|
||||
var [err, retupfile] = await this.go(uni.uploadFile(ufparam));
|
||||
if (err)
|
||||
return fn.fail(err.errMsg, gf, err);
|
||||
var jsonup = this.json_parse(retupfile.data);
|
||||
if (jsonup === null)
|
||||
return fn.fail('JSON Parse ERROR:' + retupfile.data.substr(0, 30),
|
||||
gf);
|
||||
if (jsonup.code != 1)
|
||||
return fn.fail(jsonup.errmsg, gf, jsonup);
|
||||
if (typeof(fn.success) == 'function')
|
||||
fn.success(jsonup.url, gf);
|
||||
var retjson = await this.callfunc({
|
||||
func: opn.action + "upload?pathfile=" + pathfile,
|
||||
file: fileBuffer
|
||||
});
|
||||
if (retjson.code != 1)
|
||||
return fn.fail(retjson.errmsg, gf, retjson);
|
||||
fn.success(retjson.url, gf);
|
||||
} else {
|
||||
var [err, s3json] = await this.go(this.callfunc({
|
||||
func: opn.action + "s3&pathfile=" + pathfile +
|
||||
"&storselect=" + opn.stor
|
||||
}));
|
||||
if (err)
|
||||
return fn.fail(err.errMsg, gf, err);
|
||||
var s3json = await this.callfunc({
|
||||
func: opn.action + "s3?pathfile=" + pathfile + "&storselect=" + opn.stor
|
||||
});
|
||||
if (s3json.code != 1)
|
||||
return fn.fail(s3json.errmsg, gf, s3json);
|
||||
// #ifdef H5
|
||||
//H5,直接xhr
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open(s3json.method, s3json.url, true);
|
||||
for (var i in s3json.headers) {
|
||||
xhr.setRequestHeader(i, s3json.headers[i]);
|
||||
}
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
if (typeof(fn.success) == 'function')
|
||||
fn.success(opn.stor + pathfile, gf);
|
||||
} else if (xhr.status != 200) {
|
||||
fn.fail('云存储上传失败:' + xhr.status, gf, xhr);
|
||||
}
|
||||
};
|
||||
xhr.send(gf);
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
if (app.globalData.stortransfer.includes(opn.stor)) {
|
||||
var ufparam = {};
|
||||
ufparam.url = opn.action + "yunsync";
|
||||
if (s3json.syncurl)
|
||||
ufparam.url = s3json.syncurl;
|
||||
s3json.headers = JSON.stringify(s3json.headers);
|
||||
ufparam.formData = s3json;
|
||||
if (filepath) {
|
||||
ufparam.filePath = filepath;
|
||||
ufparam.name = 'file';
|
||||
} else {
|
||||
ufparam.file = gf;
|
||||
}
|
||||
var retupfile = await uni.uploadFile(ufparam);
|
||||
var jsonup = this.json_parse(retupfile.data);
|
||||
if (jsonup === null)
|
||||
return fn.fail('JSON Parse ERROR:' + retupfile.data.substr(0,
|
||||
30), gf, jsonup);
|
||||
if (jsonup.code != 1)
|
||||
return fn.fail(jsonup.errmsg, gf, jsonup);
|
||||
if (typeof(fn.success) == 'function')
|
||||
|
||||
var requestTask = uni.request({
|
||||
url: s3json.url,
|
||||
method: s3json.method,
|
||||
header: s3json.headers,
|
||||
data: fileBuffer,
|
||||
success: function(res) {
|
||||
fn.success(opn.stor + pathfile, gf);
|
||||
} else {
|
||||
console.warn('直传,微信小程序需备案域名,添加域名白名单');
|
||||
fn.fail('未支持', gf);
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
fail: function(res) {
|
||||
console.warn('request fail', res);
|
||||
fn.fail('云存储上传失败:' + res.status, gf, xhr);
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
},
|
||||
|
|
|
|||
|
|
@ -164,6 +164,8 @@ text {
|
|||
box-sizing: border-box;
|
||||
/* font-size: clamp(14px, 4vw, 40px); */
|
||||
font-size-adjust: ex-height 0.53;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
|
|
@ -533,6 +535,8 @@ text {
|
|||
padding: 0.5em 0;
|
||||
color: var(--txt7);
|
||||
font-size: 0.9rem;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.ciy-grid .icon {
|
||||
|
|
@ -922,6 +926,23 @@ text {
|
|||
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 {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
|
@ -1190,6 +1211,7 @@ text {
|
|||
|
||||
.noselect.noselect.noselect {
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.tran5.tran5.tran5 {
|
||||
|
|
@ -1280,4 +1302,4 @@ text {
|
|||
|
||||
.lh4.lh4.lh4 {
|
||||
line-height: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
main.go
2
main.go
|
|
@ -99,7 +99,7 @@ func main() {
|
|||
c.Log = c.NewCiyLog(500)
|
||||
c.Log.SupportStack(c.CiyVars.Version)
|
||||
c.Log.InitFile(logfile, logfilelevel)
|
||||
c.Log.InitTCP(logtcp, logtcplevel)
|
||||
//c.Log.InitTCP(logtcp, logtcplevel)
|
||||
c.Log.Info("Ciyon", "Ciyon Start.")
|
||||
go watchMe()
|
||||
|
||||
|
|
|
|||
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>
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
<!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/intro.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 坤班简介头部Banner -->
|
||||
<section class="intro-banner">
|
||||
<div class="intro-banner-text">
|
||||
<h1>关于坤班</h1>
|
||||
<p>独立思辨,深耕技术,研无止境</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 板块一:核心信息 -->
|
||||
<section class="intro-section1">
|
||||
<div class="container">
|
||||
<div class="intro-grid">
|
||||
<?php
|
||||
$db = new ciy\db();
|
||||
$csql = new ciy\sql('www_single');
|
||||
$web = new ciy\web();
|
||||
$csql->column('name,content,keyw');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
foreach ($rows as $row) {
|
||||
$content = $row['content'];
|
||||
if ($row['name'] == 'intro') {
|
||||
echo
|
||||
'
|
||||
<div class="intro-card">
|
||||
<h3>'.$row['keyw'].'</h3>
|
||||
'.$web->Web_markdown_convert($content).'
|
||||
</div>
|
||||
';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<!-- 板块二:坤班负责人-->
|
||||
<section class="intro-section2">
|
||||
<div class="container">
|
||||
<div class="section-title">
|
||||
<h2>坤班负责人</h2>
|
||||
</div>
|
||||
<?php
|
||||
$db = new ciy\db();
|
||||
$web = new ciy\web();
|
||||
$csql = new ciy\sql('www_single');
|
||||
$csql->where('keyw', '简介');
|
||||
$csql->order('id desc');
|
||||
$csql->column('id,name,seotitle,content');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
foreach ($rows as $row) {
|
||||
$contentText = $row['content'];
|
||||
if($row['name']=="马瑞强老师简介"){
|
||||
echo
|
||||
'
|
||||
<div class="leader-container">
|
||||
<div class="leader-avatar">
|
||||
<img src="/ud/img/Ma.jpg" alt="坤班负责人">
|
||||
<p>' . $row['name'] . '</p>
|
||||
</div>
|
||||
<div class="leader-timeline">
|
||||
<div class="timeline-item">
|
||||
' . $web->Web_markdown_convert($contentText) . '
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
if($row['name']=="王坤老师简介"){
|
||||
echo
|
||||
'
|
||||
<div class="leader-container">
|
||||
<div class="leader-avatar">
|
||||
<img src="/ud/img/Wang.jpg" alt="坤班负责人">
|
||||
<p>' . $row['name'] . '</p>
|
||||
</div>
|
||||
<div class="leader-timeline">
|
||||
<div class="timeline-item">
|
||||
' . $web->Web_markdown_convert($contentText) . '
|
||||
</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">提交</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,152 @@
|
|||
<!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/join.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$db = new ciy\db();
|
||||
|
||||
$cate_id = new ciy\sql('www_list_cate');
|
||||
$cate_id->where('name','加入我们');
|
||||
$cate_id->column("id");
|
||||
$count = -1;
|
||||
$id = $db->get1($cate_id);
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$csql->where('cateid',$id);
|
||||
$csql->column("icon,name,descs,content");
|
||||
$rows = $db->get($csql,$count);
|
||||
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 加入我们头部Banner -->
|
||||
<section class="join-banner">
|
||||
<!-- <img src="images/版心.jpg" class="banner-img"> -->
|
||||
<div class="join-banner-text">
|
||||
|
||||
<h1>加入我们</h1>
|
||||
<p>加入坤班,解锁技术实战新可能</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 加入我们内容容器 -->
|
||||
<div class="container">
|
||||
<!-- 基地1 -->
|
||||
<!-- <div class="join-container"> -->
|
||||
<?php
|
||||
foreach($rows as $row){
|
||||
$img = explode("~",$row['icon']);
|
||||
$content = substr($row['content'],4);
|
||||
$de = explode("\n",$content);
|
||||
$a = '';
|
||||
foreach($de as $d){
|
||||
$a .= '<li>'.$d.'</li>';
|
||||
}
|
||||
echo
|
||||
'
|
||||
<div class="join-container">
|
||||
<div class="join-card base-card">
|
||||
<div class="base-img">
|
||||
<img src="/ud'.$img[0].'" alt="基地图片">
|
||||
</div>
|
||||
<p>基地名称:'.$row['name'].'</p>
|
||||
</div>
|
||||
|
||||
<div class="join-card contact-card">
|
||||
<h3 style="font-size: 16px; color: #165DFF; margin-bottom: 16px;">联系我们</h3>
|
||||
<p>'.$row['descs'].'</p>
|
||||
<div class="contact-qr">
|
||||
<img src="/ud'.$img[1].'" alt="基地二维码">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="join-card require-card">
|
||||
<h3 style="font-size: 16px; color: #165DFF; margin-bottom: 16px;">培养目标</h3>
|
||||
<ul>
|
||||
<li>'.$a.'</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
';
|
||||
}
|
||||
?>
|
||||
<!-- 卡片1:基地信息 -->
|
||||
<!-- <div class="join-card base-card">
|
||||
<div class="base-img">
|
||||
<img src="images/内蒙古工业大学白天.jpg" alt="基地图片">
|
||||
</div>
|
||||
<p>基地名称:内蒙古工业大学计算机技术实践基地</p>
|
||||
</div> -->
|
||||
|
||||
<!-- 卡片2:联系我们 -->
|
||||
<!-- <div class="join-card contact-card"> -->
|
||||
<!-- <p>联系我们:<br>官方微信号:kunban_tech</p> -->
|
||||
<!-- 二维码图片 -->
|
||||
<!-- <div class="contact-qr">
|
||||
<img src="images/二维码.jpg" alt="基地二维码">
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- 卡片3:加入要求 -->
|
||||
<!-- <div class="join-card require-card">
|
||||
<h3 style="font-size: 16px; color: #165DFF; margin-bottom: 16px;">加入要求</h3>
|
||||
<ul>
|
||||
<li>1. 热爱技术探索,对实验室数字化、产教融合等方向有浓厚兴趣</li>
|
||||
<li>2. 具备自主学习能力,能快速跟进前沿技术,适配项目迭代需求</li>
|
||||
<li>3. 能够投入固定时间参与项目,遵守团队协作规范与项目进度要求</li>
|
||||
</ul>
|
||||
</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,154 @@
|
|||
<!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/kunban_activity.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$keyw_name = [
|
||||
'Ac_Sal' => '坤班沙龙',
|
||||
'Ac_Welcome' => '迎新活动',
|
||||
'Ac_SaiS' => '赛事集锦',
|
||||
'Ac_News' => '时政新闻'
|
||||
];
|
||||
$activity_type = urldecode(Web_getString('type'));
|
||||
// clog($activity_type);
|
||||
$PageSize = 4;
|
||||
$currentPage = Web_getint('currentPage');
|
||||
// clog($currentPage);
|
||||
$db = new ciy\db();
|
||||
$csql = new ciy\sql("www_list_art");
|
||||
$csql->where('cateid', 9);
|
||||
if ($activity_type == 'all' || $activity_type == '') {
|
||||
$totalData = $db->execute('select cateid from www_list_art where cateid=?', [9]);
|
||||
// clog($totalData);
|
||||
} else{
|
||||
$csql->where('keyw', $activity_type);
|
||||
$totalData = $db->execute('select cateid from www_list_art where cateid=? and keyw=?', [9, $activity_type]);
|
||||
}
|
||||
|
||||
$csql->limit($currentPage, $PageSize);
|
||||
$csql->column('id,name,keyw,descs,icon');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
include_once("wwpage/Kun_header.php");
|
||||
?>
|
||||
|
||||
<!-- 活动页头部Banner -->
|
||||
<section class="activity-banner">
|
||||
<div class="activity-banner-text">
|
||||
<h1>坤班团体活动</h1>
|
||||
<p>把职业困惑聊开,把成长方向聊明</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 活动分类导航 -->
|
||||
<div class="container">
|
||||
<div class="activity-nav">
|
||||
<div class="activity-nav-list">
|
||||
<a href="/activity/type/all" class="activity-nav-item <?php echo $activity_type == 'all' ? 'active' : '' ?>" data-type="all">全部活动</a>
|
||||
<?php
|
||||
$select = new ciy\sql('www_list_art');
|
||||
$select->where('cateid', 9);
|
||||
$select->column('distinct keyw');
|
||||
$data = $db->get($select, $count);
|
||||
foreach ($data as $a) {
|
||||
if (isset($keyw_name[$a['keyw']])) {
|
||||
$b = $keyw_name[$a['keyw']];
|
||||
echo '
|
||||
<a href="/activity/type/' . $a['keyw'] . '"
|
||||
class="activity-nav-item ' . ($activity_type == $a['keyw'] ? 'active' : '') . '"
|
||||
data-type="' . substr($a['keyw'], 3) . '">' . $b . '</a>
|
||||
';
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 活动列表 -->
|
||||
<div class="activity-list">
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
$img_src = '/ud' . $row['icon'];
|
||||
echo
|
||||
'
|
||||
<a href="/detail/' . $row['id'] . '">
|
||||
<div class="activity-img" data-type="' . $row['keyw'] . '">
|
||||
<img src="' . $img_src . '" alt="' . $row['name'] . '">
|
||||
</div>
|
||||
<div class="activity-info">
|
||||
<h3>' . $row['name'] . '</h3>
|
||||
<p>' . $row['descs'] . '</p>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
';
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
|
||||
<!-- 分页导航 -->
|
||||
<div class="pagination">
|
||||
<?php
|
||||
\web\cwebcomon::www_Kun_showpage($totalData, $PageSize, $currentPage, '/activity', function ($currentPage) {
|
||||
$activity_type = Web_getString('type');
|
||||
if ($activity_type == '') {
|
||||
return '/type/all/page/' . $currentPage;
|
||||
} else {
|
||||
return '/type/' . $activity_type . '/page/' . $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>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
<!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/list_detail.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<section class="list-detail-banner">
|
||||
<!-- <div class="list-detail-banner-text">
|
||||
</div> -->
|
||||
</section>
|
||||
|
||||
<!-- 详情内容 -->
|
||||
<div class="container">
|
||||
<div class="list-detail-banner-container">
|
||||
<?php
|
||||
// clog($_GET['currentPage']);
|
||||
$db = new ciy\db();
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$web = new ciy\web();
|
||||
// clog($_GET['currentPage']);
|
||||
if (isset($_GET['id']) == true) {
|
||||
$url_id = intval($_GET['id']);
|
||||
} else {
|
||||
$url_id = 0;
|
||||
}
|
||||
$csql->where('id=?', $url_id);
|
||||
$csql->column('content');
|
||||
$rows = $db->get($csql);
|
||||
foreach ($rows as $row) {
|
||||
$contentText = $row['content'];
|
||||
// clog($contentText);
|
||||
echo $web->Web_markdown_convert($contentText);
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</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,184 @@
|
|||
<!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/loading.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$db = new ciy\db();
|
||||
$currentPage = Web_getint('currentPage');
|
||||
$cate_id = new ciy\sql('www_list_cate');
|
||||
$cate_id->where('name', '在研项目');
|
||||
$cate_id->column('id');
|
||||
|
||||
$count = -1;
|
||||
$id = $db->get1($cate_id);
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$PageSize = 3;
|
||||
$totalData = $db->execute('select cateid from www_list_art where cateid=?', [$id]);
|
||||
$csql->limit($currentPage, $PageSize);
|
||||
$csql->where('cateid', $id);
|
||||
$csql->order('uptimes desc');
|
||||
$csql->column('name,keyw,descs,content,cateid,uptimes,id');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
|
||||
$psql = new ciy\sql('www_list_art');
|
||||
$psql->where('keyw', '坤班产品');
|
||||
$psql->column('name,id');
|
||||
$pd = $db->get($psql, $count);
|
||||
// clog($pd);
|
||||
|
||||
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 在研项目头部Banner -->
|
||||
<section class="research-banner">
|
||||
<div class="research-banner-text">
|
||||
<h1>在研项目</h1>
|
||||
<p>深耕技术,研无止境</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 在研项目内容 -->
|
||||
<!-- <div class="container"> -->
|
||||
<div class="research-container">
|
||||
<?php
|
||||
foreach ($rows as $row1) {
|
||||
$desc = explode(";\n", $row1['descs']);
|
||||
|
||||
$content = substr($row1['content'], 4);
|
||||
$se_content = explode("队员:", $content);
|
||||
//获取进度
|
||||
preg_match('/完成度:(\d+)/', $content, $match);
|
||||
$leaderPart = trim($se_content[0]);
|
||||
$memberPart = isset($se_content[1]) ? $se_content[1] : '';
|
||||
$leader = '';
|
||||
if (strpos($leaderPart, ':') !== false) {
|
||||
$leader = trim(explode(':', $leaderPart)[1]);
|
||||
}
|
||||
|
||||
$members = [];
|
||||
if (!empty($memberPart)) {
|
||||
preg_match_all('/.*?\([^)]+\)/', $memberPart, $matches);
|
||||
$members = $matches[0];
|
||||
}
|
||||
$memberHtml = !empty($members) ? implode('<br>', $members) : '';
|
||||
$new_id = '';
|
||||
$detailLink = '';
|
||||
foreach($pd as $pd_item){
|
||||
if($pd_item['name']==$row1['name']){
|
||||
$new_id = $pd_item['id'];
|
||||
$detailLink = '<a href="/product_detail/'.$new_id.'">查看详情</a>';
|
||||
}
|
||||
}
|
||||
echo
|
||||
'
|
||||
<div class="research-grid">
|
||||
<div class="research-left">
|
||||
<div class="research-item">
|
||||
<strong>产品名称:</strong>
|
||||
<span>' . $row1['name'] . '</span>
|
||||
</div>
|
||||
<div class="research-item">
|
||||
<strong>产品话题:</strong>
|
||||
<p>' . $row1['keyw'] . '</p>
|
||||
</div>
|
||||
<div class="research-item">
|
||||
<strong>产品简介:</strong>
|
||||
<p>' . implode("<br>", $desc) . '</p>
|
||||
' . $detailLink . '
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="research-right">
|
||||
<div class="research-item">
|
||||
<strong>负责人:</strong>
|
||||
<span>' . $leader . '</span>
|
||||
</div>
|
||||
<div class="research-item">
|
||||
<strong>团队成员及职能:</strong>
|
||||
<p>' . $memberHtml . '</p>
|
||||
</div>
|
||||
<div class="progress-group">
|
||||
<div class="research-item update-time">
|
||||
<strong>更新时间:</strong>
|
||||
<span>' . (isset($row1['uptimes']) ? date('Y-m-d', $row1['uptimes']) : '暂无更新') . '</span>
|
||||
</div>
|
||||
<div class="progress-label">
|
||||
<span>完成度:</span>
|
||||
<span>' . $match[1] . '%</span>
|
||||
</div>
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" style="width: ' . $match[1] . '%;"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
';
|
||||
}
|
||||
?>
|
||||
<!-- </div> -->
|
||||
<div class="research-switch">
|
||||
<?php
|
||||
$page = new web\cwebcomon();
|
||||
$page->www_Kun_showpage_r($totalData, $PageSize, $currentPage, '/loading', function ($currentPage) {
|
||||
return '/product/' . $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/loading.js"></script>
|
||||
<script src="js/ask.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<!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/pay.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- <div class="form-mask" id="formMask"></div> -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$db = new ciy\db();
|
||||
$cate_id = new ciy\sql('www_list_cate');
|
||||
$cate_id->where('name', '外包服务');
|
||||
$cate_id->column("id");
|
||||
$count = -1;
|
||||
$id = $db->get1($cate_id);
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$csql->where('cateid', $id);
|
||||
$csql->column("name,keyw");
|
||||
$rows = $db->get($csql, $count);
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
<!-- 主体内容 -->
|
||||
<div class="pay-container">
|
||||
|
||||
<div class="event-list">
|
||||
<h2>推荐赛事</h2>
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
echo
|
||||
'
|
||||
<div class="event-item" data-event="' . $row['keyw'] . '">' . $row['name'] . '</div>
|
||||
';
|
||||
}
|
||||
|
||||
?>
|
||||
<!-- <div class="event-item" data-event="ai-competition">AI工具开发大赛</div>
|
||||
<div class="event-item" data-event="3d-model">3D建模挑战赛</div>
|
||||
<div class="event-item" data-event="hardware-dev">硬件设备创新赛</div>
|
||||
<div class="event-item" data-event="overseas">海内外技术对接赛</div> -->
|
||||
</div>
|
||||
|
||||
<!-- 放表单 -->
|
||||
<div class="form-area">
|
||||
|
||||
</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" class="submit_btn">提交</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/pay.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/private.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 坤班简介头部Banner -->
|
||||
<section class="private-banner">
|
||||
<div class="private-banner-text">
|
||||
<h1>隐私政策</h1>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 免责信息 -->
|
||||
<section class="private-section1">
|
||||
<?php
|
||||
$db = new ciy\db();
|
||||
$web = new ciy\web();
|
||||
$csql = new ciy\sql('www_single');
|
||||
// clog($csql);
|
||||
$csql->where("name",'private');
|
||||
$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,100 @@
|
|||
<!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/product.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$db = new ciy\db();
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$currentPage = Web_getint('currentPage');
|
||||
$PageSize = 4;
|
||||
$totalData = $db->execute('select keyw from www_list_art where keyw=?', ['坤班产品']);
|
||||
$csql->where('keyw', '坤班产品');
|
||||
$csql->order('uptimes desc');
|
||||
$csql->limit($currentPage, $PageSize);
|
||||
$csql->column('id,name,keyw,descs');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<section class="product-banner">
|
||||
<div class="product-banner-text">
|
||||
<h1>产品服务</h1>
|
||||
<p>技筑产品,服务赋能</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 核心修改:统一容器类名 + 调整卡片结构 -->
|
||||
<div class="product-container">
|
||||
<div class="product-card-wrapper" id="productCardList">
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
echo
|
||||
'
|
||||
<div class="product-card-item">
|
||||
<div class="product-card-img-box">
|
||||
<img src="/ud/img/product.jpg" alt="'.$row['name'].'">
|
||||
</div>
|
||||
<div class="product-card-content">
|
||||
<h3 class="product-card-title">'.$row['name'].'</h3>
|
||||
<p class="product-card-desc">'.$row['descs'].'</p>
|
||||
<a href="/product_detail/'.$row['id'].'" class="product-card-link">查看详情</a>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="product-page-nav">
|
||||
<?php
|
||||
$page = new web\cwebcomon();
|
||||
$page->www_Kun_showpage($totalData, $PageSize, $currentPage, '/product', function ($currentPage) {
|
||||
return '/page/' . $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>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
<!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/product_detail.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$db = new ciy\db();
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$product_id = Web_getint('id');
|
||||
// clog($product_id);
|
||||
$csql->where('id', $product_id);
|
||||
// $csql->where('keyw', '坤班产品');
|
||||
$csql->column('name,content');
|
||||
$count = -1;
|
||||
$rows = $db->get($csql, $count);
|
||||
// clog($rows);
|
||||
// 产品推荐
|
||||
$product_sql = new ciy\sql('www_list_art');
|
||||
$product_sql->where('id != ?', $product_id);
|
||||
$product_sql->where('keyw', "坤班产品");
|
||||
$product_sql->column('id,name');
|
||||
$product_rows = $db->get($product_sql, $count);
|
||||
$recommendRows = [];
|
||||
if (!empty($product_rows)) {
|
||||
shuffle($product_rows);
|
||||
$recommendRows = array_slice($product_rows, 0, 3);
|
||||
}
|
||||
|
||||
// clog($recommendRows);
|
||||
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 产品详情内容 -->
|
||||
<div class="container">
|
||||
<div class="product-detail-wrap">
|
||||
<div class="product-detail-main">
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
$content = substr($row['content'], 4);
|
||||
$new_content = explode("优势功能:", $content);
|
||||
$product_feature = $new_content[0];
|
||||
$feature_name = explode("\n", $product_feature);
|
||||
$feature = array_slice($feature_name, 1);
|
||||
$a = '';
|
||||
foreach ($feature as $f) {
|
||||
$a = $a . $f . '<br>';
|
||||
}
|
||||
|
||||
$product_ability = $new_content[1];
|
||||
$ability_name = explode("\n", $product_ability);
|
||||
$ability = array_slice($ability_name, 1);
|
||||
$b = '';
|
||||
foreach ($ability as $ab) {
|
||||
$b = $b . $ab . '<br>';
|
||||
}
|
||||
|
||||
echo '
|
||||
<h2 id="detailTitle">' . $row['name'] . '</h2>
|
||||
<div id="detailContent">
|
||||
<div class="product-section">
|
||||
<h3>' . $feature_name[0] . '</h3>
|
||||
<ul>
|
||||
<li>' . $a . '</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="product-section">
|
||||
<h3>优势功能:</h3>
|
||||
<ul>
|
||||
<li>' . $b . '</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
?>
|
||||
<a href="/product" class="product-return-link">返回</a>
|
||||
</div>
|
||||
|
||||
<!-- 右侧:侧边栏 -->
|
||||
<div class="product-sidebar">
|
||||
<!-- 推荐产品 -->
|
||||
<div class="product-recommend-sidebar">
|
||||
<h3 class="recommend-title">推荐产品</h3>
|
||||
<div class="recommend-list">
|
||||
<?php
|
||||
if (!empty($recommendRows)) {
|
||||
foreach ($recommendRows as $rec) {
|
||||
echo '<a href="/product_detail/' . $rec['id'] . '" class="recommend-item">' . htmlspecialchars($rec['name']) . '</a>';
|
||||
}
|
||||
} else {
|
||||
echo '<div class="recommend-empty">暂无推荐产品</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 预约表单 -->
|
||||
<div class="product-form">
|
||||
<?php
|
||||
foreach ($rows as $row) {
|
||||
echo '
|
||||
<h4 class="father">预约产品:<span id="formProductName">' . $row['name'] . '</span></h4>
|
||||
<div id="formTip" class="form-tip"></div>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="user-name">真实姓名:</label>
|
||||
<input type="text" id="user-name" placeholder="请输入您的姓名">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="contact">联系方式:</label>
|
||||
<input type="tel" id="contact" placeholder="请输入您的手机号">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-btn-group">
|
||||
<button class="form-btn btn-reserve">【提交预约】</button>
|
||||
</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/product_detail.js"></script> -->
|
||||
<script src="/js/ask.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
<!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/resource.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="form-mask" id="formMask"></div>
|
||||
<!-- 导航栏 -->
|
||||
<?php
|
||||
$currentPath = getCurrentPurePath();
|
||||
$db = new ciy\db();
|
||||
$cate_id = new ciy\sql("www_list_cate");
|
||||
$cate_id->where("name",'坤班资源');
|
||||
$cate_id->column("id");
|
||||
$id = $db->get1($cate_id);
|
||||
|
||||
$pageSize = 3;
|
||||
$currentPage = Web_getint('currentPage');
|
||||
$csql = new ciy\sql('www_list_art');
|
||||
$totalData = $db->execute('select cateid from www_list_art where cateid=?',[$id]);
|
||||
$csql->where("cateid",$id);
|
||||
$csql->order('uptimes desc');
|
||||
$csql->limit($currentPage,$totalData);
|
||||
$csql->column("id,icon,name,author,descs");
|
||||
$count = -1;
|
||||
$rows = $db->get($csql,$count);
|
||||
include_once('wwpage/Kun_header.php');
|
||||
?>
|
||||
|
||||
<!-- 坤班资源头部Banner -->
|
||||
<section class="resource-banner">
|
||||
<div class="resource-banner-text">
|
||||
<h1>坤班资源</h1>
|
||||
<p>资源聚力,赋能技术成长</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 坤班资源列表 class="container"-->
|
||||
<div class="container">
|
||||
<div class="resource-list" id="resource-list">
|
||||
<?php
|
||||
foreach($rows as $row){
|
||||
$img_src = '/ud'.$row['icon'];
|
||||
echo
|
||||
'
|
||||
<div class="resource-card">
|
||||
<div class="resource-img">
|
||||
<img src="'.$img_src.'" alt="全栈开发教程文档">
|
||||
</div>
|
||||
<div class="resource-info">
|
||||
<h3>名称:'.$row['name'].'</h3>
|
||||
<p>摘要:'.$row['descs'].'</p>
|
||||
<p>负责人:'.$row['author'].'</p>
|
||||
<p><a href="/detail/'.$row['id'].'">了解详情</a></p>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- 资源2:开源项目模板 -->
|
||||
<!-- <div class="resource-card">
|
||||
<div class="resource-img">
|
||||
<img src="images/resource-template.jpg" alt="开源项目模板">
|
||||
</div>
|
||||
<div class="resource-info">
|
||||
<h3>名称:SpringBoot+Vue3开源项目模板</h3>
|
||||
<p>摘要:集成权限管理、日志记录、接口文档等基础功能的全栈项目模板,可直接用于快速搭建企业级应用,已开源至Gitee。</p>
|
||||
<p>负责人:李四(后端组负责人)</p>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- 资源3:AI工具使用手册 -->
|
||||
<!-- <div class="resource-card">
|
||||
<div class="resource-img">
|
||||
<img src="images/resource-ai.jpg" alt="AI工具使用手册">
|
||||
</div>
|
||||
<div class="resource-info">
|
||||
<h3>名称:AI开发工具高效使用手册</h3>
|
||||
<p>摘要:包含Copilot、Cursor、MidJourney等AI工具在技术开发中的实战技巧,附坤班成员总结的提效指令集。</p>
|
||||
<p>负责人:张三(AI组核心成员)</p>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<!-- 分页导航 -->
|
||||
<div class="pagination">
|
||||
<?php
|
||||
$page = new web\cwebcomon();
|
||||
$page->www_Kun_showpage($totalData,$pageSize,$currentPage,'/resource',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/resource.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<a class="lang btn" onclick="addnew()">新建API通道</a>
|
||||
<a class="lang btn def" href="/ud/api/api.pdf" target="_blank">API文档</a>
|
||||
<a class="lang btn def" href="/ud/api/api_sign.pdf" target="_blank">签名文档</a>
|
||||
<a class="lang btn def" href="/ud/public.pem" onclick="">平台回调公钥下载</a>
|
||||
<a data-lang class="btn" onclick="addnew()">新建API通道</a>
|
||||
<a data-lang class="btn def" href="/ud/api/api.pdf" target="_blank">API文档</a>
|
||||
<a data-lang class="btn def" href="/ud/api/api_sign.pdf" target="_blank">签名文档</a>
|
||||
<a data-lang class="btn def" href="/ud/public.pem" onclick="">平台回调公钥下载</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,8 +28,8 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24 top">
|
||||
<label class="lang">白名单IP</label>
|
||||
<label data-lang>白名单IP</label>
|
||||
<div>
|
||||
<ciy-textarea com="ips" minheight="10em" />
|
||||
</div>
|
||||
|
|
@ -50,17 +50,17 @@
|
|||
<div id="alert_pubkey" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24 top">
|
||||
<label class="lang">公钥</label>
|
||||
<label data-lang>公钥</label>
|
||||
<div>
|
||||
<ciy-textarea com="pubkey" minheight="10em" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">待签数据</label>
|
||||
<label data-lang>待签数据</label>
|
||||
<div id="id_hash"></div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">签名</label>
|
||||
<label data-lang>签名</label>
|
||||
<div>
|
||||
<ciy-textarea com="sign" minheight="10em" />
|
||||
</div>
|
||||
|
|
@ -98,19 +98,19 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">设置</a>`;
|
||||
html += `<a class="lang btn warn" onclick="menubtn(this, 'rekey')">重置ApiKey</a>`;
|
||||
html += `<a class="lang btn dag" onclick="menubtn(this, 'del')">删除</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">设置</a>`;
|
||||
html += `<a data-lang class="btn warn" onclick="menubtn(this, 'rekey')">重置ApiKey</a>`;
|
||||
html += `<a data-lang class="btn dag" onclick="menubtn(this, 'del')">删除</a>`;
|
||||
return html;
|
||||
}
|
||||
if (key == 'pubkey') {
|
||||
if(data[key] == '')
|
||||
return '<a class="lang btn" onclick="menubtn(this, \'pubkey\')">安装证书</a>';
|
||||
return '<a data-lang class="btn" onclick="menubtn(this, \'pubkey\')">安装证书</a>';
|
||||
return '已安装';
|
||||
}
|
||||
if (key == 'msg') {
|
||||
if(data['apisecret'] == '')
|
||||
return '<a class="lang btn def" onclick="menubtn(this, \'qa\')">质量分析</a> 接入质量较低,已经暂停API,请重置ApiKey恢复';
|
||||
return '<a data-lang class="btn def" onclick="menubtn(this, \'qa\')">质量分析</a> 接入质量较低,已经暂停API,请重置ApiKey恢复';
|
||||
else
|
||||
return '正常';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,24 +16,24 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="topbtn">
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="multiin()">导入</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="multiin()">导入</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
<div class="table">
|
||||
<div class="loading col-24">Loading...</div>
|
||||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -45,10 +45,10 @@
|
|||
<ciy-upload com="file" />
|
||||
</div>
|
||||
<div style="margin-left:0.3em;">
|
||||
<a class="lang btn btn-sm def" href="/ud/inpl/ap_art_post.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div class="lang">每次导入建议不超过1000条</div>
|
||||
<div class="lang">导入更新,首列为导出的行码</div>
|
||||
<div class="lang">请按模版列填写</div>
|
||||
<a data-lang class="btn btn-sm def" href="/ud/inpl/ap_art_post.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div data-lang>每次导入建议不超过1000条</div>
|
||||
<div data-lang>导入更新,首列为导出的行码</div>
|
||||
<div data-lang>请按模版列填写</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -56,49 +56,49 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-18">
|
||||
<label class="lang imp">推荐排序</label>
|
||||
<label data-lang class="imp">推荐排序</label>
|
||||
<div>
|
||||
<ciy-radio com="artsort" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-6">
|
||||
<label class="lang">阅读数</label>
|
||||
<label data-lang>阅读数</label>
|
||||
<div>
|
||||
<input type="text" name="readcnt" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">文章标题</label>
|
||||
<label data-lang class="imp">文章标题</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">来源</label>
|
||||
<label data-lang>来源</label>
|
||||
<div>
|
||||
<input type="text" name="source" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">作者</label>
|
||||
<label data-lang>作者</label>
|
||||
<div>
|
||||
<input type="text" name="author" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-6 top">
|
||||
<label class="lang">音视频</label>
|
||||
<label data-lang>音视频</label>
|
||||
<div>
|
||||
<ciy-upload com="avmp" num="1" type="mp3,mp4,wav,ogg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-18 top">
|
||||
<label class="lang">缩略图</label>
|
||||
<label data-lang>缩略图</label>
|
||||
<div>
|
||||
<ciy-upload com="img" num="1" type="jpg,png,webp" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24 top">
|
||||
<label class="lang">摘要</label>
|
||||
<label data-lang>摘要</label>
|
||||
<div>
|
||||
<ciy-textarea com="descs" total="{line}行,{word}字" />
|
||||
</div>
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -181,16 +181,15 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('art', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=artsort]', dom), value: dat.artsort, range: 'artsort' });
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
$5('[name=source]', dom).val(dat.source);
|
||||
$5('[name=author]', dom).val(dat.author);
|
||||
$5('[name=readcnt]', dom).val(dat.readcnt);
|
||||
ciycmp({ dom: $5('[com=avmp]', dom), value: dat.avmp, path: path });
|
||||
ciycmp({ dom: $5('[com=img]', dom), value: dat.img, path: path });
|
||||
ciycmp({ dom: $5('[com=avmp]', dom), value: dat.avmp, path: ciyfn.makeuploadpath('apartav', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
ciycmp({ dom: $5('[com=img]', dom), value: dat.img, path: ciyfn.makeuploadpath('apartimg', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
ciycmp({ dom: $5('[com=descs]', dom), value: dat.descs });
|
||||
ciycmp({ dom: $5('[com=content]', dom), value: dat.content, path: path });
|
||||
ciycmp({ dom: $5('[com=content]', dom), value: dat.content, path: ciyfn.makeuploadpath('apartct', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
}
|
||||
, cb: function (opn) {
|
||||
if (opn.btn == "关闭")
|
||||
|
|
@ -219,7 +218,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -481,13 +481,13 @@ class art_post {
|
|||
if (count($unqs) > 0) {
|
||||
$unq = implode('|', $unqs);
|
||||
if (in_array($unq, $uniques))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div data-lang>重复</div></td>';
|
||||
else {
|
||||
$uniques[] = $unq;
|
||||
$csql->column('id');
|
||||
$chkid = toint($db->get1($csql));
|
||||
if ($chkid > 0 && (($id > 0 && $chkid != $id) || $id == 0))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div data-lang>重复</div></td>';
|
||||
}
|
||||
}
|
||||
$html .= '<tr>' . $firsthtml . $hrhtml . '</tr>';
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -27,10 +27,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -40,13 +40,13 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">分组名</label>
|
||||
<label data-lang>分组名</label>
|
||||
<div>
|
||||
<input type="text" name="ngroup" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang imp">版块名称</label>
|
||||
<label data-lang class="imp">版块名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -77,9 +77,9 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a class="lang btn succ" onclick="menubtn(this, 'art')">文章管理</a>`;
|
||||
html += `<a class="lang btn succ" onclick="menubtn(this, 'vent')">反馈管理</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn succ" onclick="menubtn(this, 'art')">文章管理</a>`;
|
||||
html += `<a data-lang class="btn succ" onclick="menubtn(this, 'vent')">反馈管理</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -123,7 +123,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('art_section', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
$5('[name=ngroup]', dom).val(dat.ngroup);
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
}
|
||||
|
|
@ -145,7 +144,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,11 +26,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn" onclick="ciyfn.select_callfunc(table, this, 'read','已选{n}条,是否批量已读?', {status:1},function(json){table.updateline(json)})">批量已读</a>
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="ciyfn.select_callfunc(table, this, 'read','已选{n}条,是否批量已读?', {status:1},function(json){table.updateline(json)})">批量已读</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if(data.audituser == 0)
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'read')">已读</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'read')">已读</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -38,19 +38,19 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">轮播图</label>
|
||||
<label data-lang class="imp">轮播图</label>
|
||||
<div>
|
||||
<ciy-upload com="img" num="1" type="jpg,png,webp" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang">组别代码</label>
|
||||
<label data-lang>组别代码</label>
|
||||
<div>
|
||||
<input type="text" name="groupcode" style="width:6em;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang">链接</label>
|
||||
<label data-lang>链接</label>
|
||||
<div>
|
||||
<input type="text" name="url" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -113,8 +113,7 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('banner', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=img]', dom), value: dat.img, path: path });
|
||||
ciycmp({ dom: $5('[com=img]', dom), value: dat.img, path: ciyfn.makeuploadpath('apbanner', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
$5('[name=groupcode]', dom).val(dat.groupcode);
|
||||
$5('[name=url]', dom).val(dat.url);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,11 +26,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a class="lang btn" onclick="ciyfn.select_callfunc(table, this, 'audit','已选{n}条,是否批量通过?', {act:1},function(json){table.updateline(json)})">批量通过</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="ciyfn.select_callfunc(table, this, 'audit','已选{n}条,是否批量通过?', {act:1},function(json){table.updateline(json)})">批量通过</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
<div id="alert_reject" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">拒绝原因</label>
|
||||
<label data-lang>拒绝原因</label>
|
||||
<div>
|
||||
<input type="text" name="auditmsg" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if(data['cashstatus'] == 10)
|
||||
html += `<a class="lang btn dag" onclick="menubtn(this, 'reject')">拒绝</a>`;
|
||||
html += `<a data-lang class="btn dag" onclick="menubtn(this, 'reject')">拒绝</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,11 +26,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a class="lang btn" onclick="ciyfn.select_callfunc(table, this, 'audit','已选{n}条,是否批量通过?', {act:1},function(json){table.updateline(json)})">批量通过</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="ciyfn.select_callfunc(table, this, 'audit','已选{n}条,是否批量通过?', {act:1},function(json){table.updateline(json)})">批量通过</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
<div id="alert_reject" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">拒绝原因</label>
|
||||
<label data-lang>拒绝原因</label>
|
||||
<div>
|
||||
<input type="text" name="auditmsg" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if(data['cashstatus'] == 30)
|
||||
html += `<a class="lang btn dag" onclick="menubtn(this, 'reject')">拒收</a>`;
|
||||
html += `<a data-lang class="btn dag" onclick="menubtn(this, 'reject')">拒收</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn">导入支付</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<a class="lang btn" onclick="exporttaxxls()">报税导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn">导入支付</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
<a data-lang class="btn" onclick="exporttaxxls()">报税导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if (data['cashstatus'] == 50) {
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'review')">支付操作</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'review')">支付操作</a>`;
|
||||
}
|
||||
return html;
|
||||
}
|
||||
|
|
@ -101,17 +101,17 @@
|
|||
var dat = jsndat.data;
|
||||
var html = '<div class="char5 row gridline">';
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">提现状态</label><div>';
|
||||
html += '<label data-lang>提现状态</label><div>';
|
||||
html += ciyfn.tdshow('cashstatus', dat.cashstatus, table.field.cashstatus.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">所属用户</label><div>';
|
||||
html += '<label data-lang>所属用户</label><div>';
|
||||
html += ciyfn.tdshow('vuser', dat.vuser, table.field.vuser.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">提现方式</label><div>';
|
||||
html += '<label data-lang>提现方式</label><div>';
|
||||
html += ciyfn.tdshow('cashtype', dat.cashtype, table.field.cashtype.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
|
|
@ -119,32 +119,32 @@
|
|||
if (dat.taxmoney > 0)
|
||||
money -= dat.taxmoney;
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">打款金额</label><div>';
|
||||
html += '<label data-lang>打款金额</label><div>';
|
||||
html += ciyfn.tdshow('money', money, table.field.cashmoney.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">账户名称</label><div>';
|
||||
html += '<label data-lang>账户名称</label><div>';
|
||||
html += ciyfn.tdshow('bankaccount', dat.bankaccount, table.field.bankaccount.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">银行卡号</label><div>';
|
||||
html += '<label data-lang>银行卡号</label><div>';
|
||||
html += ciyfn.tdshow('bankno', dat.bankno, table.field.bankno.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">开户银行</label><div>';
|
||||
html += '<label data-lang>开户银行</label><div>';
|
||||
html += ciyfn.tdshow('bankname', dat.bankname, table.field.bankname.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">联行号</label><div>';
|
||||
html += '<label data-lang>联行号</label><div>';
|
||||
html += ciyfn.tdshow('bankcode', dat.bankcode, table.field.bankcode.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">支付流水号</label><div>';
|
||||
html += '<label data-lang>支付流水号</label><div>';
|
||||
html += '<input type="text" name="cashno"/> ';
|
||||
html += '</div></div>';
|
||||
|
||||
|
|
@ -179,7 +179,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
ciyfn.callfunc('exporttaxxls', table.post, function (json) {
|
||||
opn.close();
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -27,10 +27,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -40,19 +40,19 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang imp">名称</label>
|
||||
<label data-lang class="imp">名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">维护人</label>
|
||||
<label data-lang>维护人</label>
|
||||
<div>
|
||||
<ciy-select com="adminuser" all="无" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">备注信息</label>
|
||||
<label data-lang>备注信息</label>
|
||||
<div>
|
||||
<input type="text" name="memo" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -39,37 +39,37 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">名称</label>
|
||||
<label data-lang class="imp">名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">税号</label>
|
||||
<label data-lang>税号</label>
|
||||
<div>
|
||||
<input type="text" name="taxnumber" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">单位地址</label>
|
||||
<label data-lang>单位地址</label>
|
||||
<div>
|
||||
<input type="text" name="addr" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">电话号码</label>
|
||||
<label data-lang>电话号码</label>
|
||||
<div>
|
||||
<input type="text" name="phone" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">银行名称</label>
|
||||
<label data-lang>银行名称</label>
|
||||
<div>
|
||||
<input type="text" name="bankname" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">银行账号</label>
|
||||
<label data-lang>银行账号</label>
|
||||
<div>
|
||||
<input type="text" name="bankaccount" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -138,7 +138,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('usr_invoicetitle', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
$5('[name=taxnumber]', dom).val(dat.taxnumber);
|
||||
$5('[name=addr]', dom).val(dat.addr);
|
||||
|
|
@ -166,7 +165,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -68,9 +68,9 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if (data.auditstatus == 20)
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'review')">开票</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'review')">开票</a>`;
|
||||
if (data.auditstatus == 100)
|
||||
html += `<a class="lang btn def" onclick="menubtn(this, 'reback')">冲红</a>`;
|
||||
html += `<a data-lang class="btn def" onclick="menubtn(this, 'reback')">冲红</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -151,11 +151,11 @@
|
|||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">上传发票</label><div>';
|
||||
html += '<label data-lang>上传发票</label><div>';
|
||||
html += '<ciy-upload com="invfile" num="1" type="jpg,png,webp,pdf,ofd,zip,rar" />';
|
||||
html += '</div></div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">发票编号</label><div>';
|
||||
html += '<label data-lang>发票编号</label><div>';
|
||||
html += '<input type="text" name="invcode"/> ';
|
||||
html += '</div></div>';
|
||||
|
||||
|
|
@ -171,8 +171,7 @@
|
|||
, content: html
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('invoice', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=invfile]', dom), path: path });
|
||||
ciycmp({ dom: $5('[com=invfile]', dom), path: ciyfn.makeuploadpath('apinvoice', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
}
|
||||
, cb: function (opn) {
|
||||
if (opn.btn == "关闭")
|
||||
|
|
@ -193,7 +192,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -25,11 +25,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a class="lang btn" onclick="multiread()">批量审阅</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="multiread()">批量审阅</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -25,10 +25,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -25,10 +25,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -37,13 +37,13 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">名称</label>
|
||||
<label data-lang class="imp">名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang" title="不填写则为全屏效果">显示标题</label>
|
||||
<label data-lang title="不填写则为全屏效果">显示标题</label>
|
||||
<div>
|
||||
<input type="text" name="title" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -78,8 +78,8 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += '<a class="lang btn def" onclick="menubtn(this, \'view\')">查看</a>';
|
||||
html += '<a class="lang btn" onclick="menubtn(this, \'edit\')">修改</a>';
|
||||
html += '<a data-lang class="btn def" onclick="menubtn(this, \'view\')">查看</a>';
|
||||
html += '<a data-lang class="btn" onclick="menubtn(this, \'edit\')">修改</a>';
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -136,37 +136,37 @@
|
|||
var html = '<div class="char4 row gridline">';
|
||||
var dat = table.data[id];
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">名称</label>';
|
||||
html += '<label data-lang>名称</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.tdshow('name', dat.name, table.field.name.ext, dat, table.json, true);
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-12">';
|
||||
html += '<label class="lang">显示标题</label>';
|
||||
html += '<label data-lang>显示标题</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.tdshow('title', dat.title, table.field.title.ext, dat, table.json, true);
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">阅读数</label>';
|
||||
html += '<label data-lang>阅读数</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.tdshow('readcnt', dat.readcnt, table.field.readcnt.ext, dat, table.json, true);
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">撰写人</label>';
|
||||
html += '<label data-lang>撰写人</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.tdshow('inputuser', dat.inputuser, table.field.inputuser.ext, dat, table.json, true);
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">更新时间</label>';
|
||||
html += '<label data-lang>更新时间</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.tdshow('uptimes', dat.uptimes, table.field.uptimes.ext, dat, table.json, true);
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">内容</label>';
|
||||
html += '<label data-lang>内容</label>';
|
||||
html += '<div>';
|
||||
html += ciyfn.markdown(dat.content);
|
||||
html += '</div>';
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="multiin()">导入</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="multiin()">导入</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -43,10 +43,10 @@
|
|||
<ciy-upload com="file" />
|
||||
</div>
|
||||
<div style="margin-left:0.3em;">
|
||||
<a class="lang btn btn-sm def" href="/ud/inpl/ap_pnt_bundle.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div class="lang">每次导入建议不超过1000条</div>
|
||||
<div class="lang">导入更新,首列为导出的行码</div>
|
||||
<div class="lang">请按模版列填写</div>
|
||||
<a data-lang class="btn btn-sm def" href="/ud/inpl/ap_pnt_bundle.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div data-lang>每次导入建议不超过1000条</div>
|
||||
<div data-lang>导入更新,首列为导出的行码</div>
|
||||
<div data-lang>请按模版列填写</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -54,13 +54,13 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char2 row">
|
||||
<div class="ciy-form col-24 col-sm-6">
|
||||
<label class="lang imp">金币</label>
|
||||
<label data-lang class="imp">金币</label>
|
||||
<div>
|
||||
<input type="text" name="buypnt" style="width:5em;text-align:right;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-6">
|
||||
<label class="lang imp">金额</label>
|
||||
<label data-lang class="imp">金额</label>
|
||||
<div>
|
||||
<ciy-inputbet com="buymoney" unit="元" bet="100" />
|
||||
</div>
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -130,7 +130,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('pnt_bundle', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
$5('[name=buypnt]', dom).val(dat.buypnt);
|
||||
ciycmp({ dom: $5('[com=buymoney]', dom), value: dat.buymoney });
|
||||
}
|
||||
|
|
@ -162,7 +161,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -283,13 +283,13 @@ class pnt_bundle {
|
|||
if (count($unqs) > 0) {
|
||||
$unq = implode('|', $unqs);
|
||||
if (in_array($unq, $uniques))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div data-lang>重复</div></td>';
|
||||
else {
|
||||
$uniques[] = $unq;
|
||||
$csql->column('id');
|
||||
$chkid = toint($db->get1($csql));
|
||||
if ($chkid > 0 && (($id > 0 && $chkid != $id) || $id == 0))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div data-lang>重复</div></td>';
|
||||
}
|
||||
}
|
||||
$html .= '<tr>' . $firsthtml . $hrhtml . '</tr>';
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<a class="lang btn def" onclick="pagehelp()">帮助</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
<a data-lang class="btn def" onclick="pagehelp()">帮助</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -40,19 +40,19 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char5 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">埋点名称</label>
|
||||
<label data-lang class="imp">埋点名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">可获积分</label>
|
||||
<label data-lang>可获积分</label>
|
||||
<div>
|
||||
<input type="text" name="point" style="width:5em;text-align:right;" /> 分
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">24小时上限</label>
|
||||
<label data-lang>24小时上限</label>
|
||||
<div>
|
||||
<input type="text" name="limh24" style="width:5em;text-align:right;" /> 分
|
||||
</div>
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -122,7 +122,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('pnt_track', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
$5('[name=point]', dom).val(dat.point);
|
||||
$5('[name=limh24]', dom).val(dat.limh24);
|
||||
|
|
@ -146,7 +145,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if (data['pubkeyid'] > 0)
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'checksign')">验签</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'checksign')">验签</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
|
|
@ -38,38 +38,38 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char6 row">
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">头像</label>
|
||||
<label data-lang>头像</label>
|
||||
<div>
|
||||
<ciy-upload com="icon" num="1" type="jpg,png,webp" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">用户昵称</label>
|
||||
<label data-lang class="imp">用户昵称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang">手机号</label>
|
||||
<label data-lang>手机号</label>
|
||||
<div>
|
||||
<input type="text" name="mobile" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang">账号状态</label>
|
||||
<label data-lang>账号状态</label>
|
||||
<div>
|
||||
<ciy-radio com="stpstatus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang">重设密码</label>
|
||||
<label data-lang>重设密码</label>
|
||||
<div>
|
||||
<input type="text" name="repass" style="width:10em;" />
|
||||
<code>不填写不变,填写则重设密码</code>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">备注</label>
|
||||
<label data-lang>备注</label>
|
||||
<div>
|
||||
<input type="text" name="memo" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -107,8 +107,8 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn def" onclick="menubtn(this, 'view')">查看</a>`;
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn def" onclick="menubtn(this, 'view')">查看</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -146,8 +146,7 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('user', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=icon]', dom), value: dat.icon, path: path });
|
||||
ciycmp({ dom: $5('[com=icon]', dom), value: dat.icon, path: ciyfn.makeuploadpath('apuser', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
$5('[name=mobile]', dom).val(dat.mobile);
|
||||
$5('[name=memo]', dom).val(dat.memo);
|
||||
|
|
@ -259,7 +258,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,23 +15,23 @@
|
|||
<div class="ciy-tabcard simple" style="width: 25em;margin: auto;">
|
||||
<div class="px2 py4">
|
||||
<div class="ciy-form">
|
||||
<label class="lang">会员编号</label>
|
||||
<label data-lang>会员编号</label>
|
||||
<div><input type="text" name="eid"></div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">用户昵称</label>
|
||||
<label data-lang>用户昵称</label>
|
||||
<div><input type="text" name="name"></div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">手机号</label>
|
||||
<label data-lang>手机号</label>
|
||||
<div><input type="text" name="mobile"></div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">备注</label>
|
||||
<label data-lang>备注</label>
|
||||
<div><input type="text" name="memo"></div>
|
||||
</div>
|
||||
<div class="txt-center">
|
||||
<button class="lang btn lg" type="submit">用户检索</button>
|
||||
<button data-lang class="btn lg" type="submit">用户检索</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="multiin()">导入</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="multiin()">导入</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -43,10 +43,10 @@
|
|||
<ciy-upload com="file" />
|
||||
</div>
|
||||
<div style="margin-left:0.3em;">
|
||||
<a class="lang btn btn-sm def" href="/ud/inpl/ap_usr_buy_bundle.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div class="lang">每次导入建议不超过1000条</div>
|
||||
<div class="lang">导入更新,首列为导出的行码</div>
|
||||
<div class="lang">请按模版列填写</div>
|
||||
<a data-lang class="btn btn-sm def" href="/ud/inpl/ap_usr_buy_bundle.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div data-lang>每次导入建议不超过1000条</div>
|
||||
<div data-lang>导入更新,首列为导出的行码</div>
|
||||
<div data-lang>请按模版列填写</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -54,25 +54,25 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">套餐说明</label>
|
||||
<label data-lang class="imp">套餐说明</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">对应等级</label>
|
||||
<label data-lang class="imp">对应等级</label>
|
||||
<div>
|
||||
<ciy-select com="userlevel" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-6">
|
||||
<label class="lang imp">天数</label>
|
||||
<label data-lang class="imp">天数</label>
|
||||
<div>
|
||||
<input type="text" name="days" style="width:5em;text-align:right;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-6">
|
||||
<label class="lang imp">金额</label>
|
||||
<label data-lang class="imp">金额</label>
|
||||
<div>
|
||||
<ciy-inputbet com="usermoney" unit="元" bet="100" />
|
||||
</div>
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -142,7 +142,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('usr_buy_bundle', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
ciycmp({ dom: $5('[com=userlevel]', dom), value: dat.userlevel, range: 'userlevel' });
|
||||
$5('[name=days]', dom).val(dat.days);
|
||||
|
|
@ -176,7 +175,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -316,13 +316,13 @@ class usr_buy_bundle {
|
|||
if (count($unqs) > 0) {
|
||||
$unq = implode('|', $unqs);
|
||||
if (in_array($unq, $uniques))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div data-lang>重复</div></td>';
|
||||
else {
|
||||
$uniques[] = $unq;
|
||||
$csql->column('id');
|
||||
$chkid = toint($db->get1($csql));
|
||||
if ($chkid > 0 && (($id > 0 && $chkid != $id) || $id == 0))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div data-lang>重复</div></td>';
|
||||
}
|
||||
}
|
||||
$html .= '<tr>' . $firsthtml . $hrhtml . '</tr>';
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -25,10 +25,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'chat')">回复</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'chat')">回复</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -141,7 +141,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if(data.auditstatus < 100)
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'review')">审核</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'review')">审核</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -95,47 +95,47 @@
|
|||
var dat = jsndat.data;
|
||||
var html = '<div class="char6 row gridline">';
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">所属用户</label><div>';
|
||||
html += '<label data-lang>所属用户</label><div>';
|
||||
html += ciyfn.tdshow('vuser', dat.vuser, table.field.vuser.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">真实姓名</label><div>';
|
||||
html += '<label data-lang>真实姓名</label><div>';
|
||||
html += ciyfn.tdshow('name', dat.name, table.field.name.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">身份证号</label><div>';
|
||||
html += '<label data-lang>身份证号</label><div>';
|
||||
html += ciyfn.tdshow('idid', dat.idid, table.field.idid.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">身份证人像面</label><div>';
|
||||
html += '<label data-lang>身份证人像面</label><div>';
|
||||
html += ciyfn.tdshow('idcard1', dat.idcard1, table.field.idcard1.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-16">';
|
||||
html += '<label class="lang">身份证国徽面</label><div>';
|
||||
html += '<label data-lang>身份证国徽面</label><div>';
|
||||
html += ciyfn.tdshow('idcard2', dat.idcard2, table.field.idcard2.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">申请时间</label><div>';
|
||||
html += '<label data-lang>申请时间</label><div>';
|
||||
html += ciyfn.tdshow('addtimes', dat.addtimes, table.field.addtimes.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">审核员</label><div>';
|
||||
html += '<label data-lang>审核员</label><div>';
|
||||
html += ciyfn.tdshow('audituser', dat.audituser, table.field.audituser.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-8">';
|
||||
html += '<label class="lang">审核时间</label><div>';
|
||||
html += '<label data-lang>审核时间</label><div>';
|
||||
html += ciyfn.tdshow('audittimes', dat.audittimes, table.field.audittimes.ext, dat, table.json, true);
|
||||
html += '</div></div>';
|
||||
|
||||
html += '<div class="ciy-form col-24 col-sm-24">';
|
||||
html += '<label class="lang">拒绝理由</label><div>';
|
||||
html += '<label data-lang>拒绝理由</label><div>';
|
||||
html += '<input type="text" name="auditmsg" style="width:100%;" />';
|
||||
html += '</div></div>';
|
||||
html += '</div>';
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,11 +26,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a class="lang btn" onclick="ciyfn.select_callfunc(table, this, '','已选{n}条,是否批量重发?', {xxx:1},function(json){table.updateline(json)})">批量重发</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="ciyfn.select_callfunc(table, this, '','已选{n}条,是否批量重发?', {xxx:1},function(json){table.updateline(json)})">批量重发</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, '')"></a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, '')"></a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -48,10 +48,10 @@ class usr_sendmail {
|
|||
$pagecount = $post->getint('pagecount', 10);
|
||||
$csql->limit($pageno, $pagecount);
|
||||
$mainrowcount = $post->getint('count');
|
||||
$rows = $db->get($csql, $mainrowcount);
|
||||
if($rows === false)
|
||||
$mrows = $db->get($csql, $mainrowcount);
|
||||
if ($mrows === false)
|
||||
return errjson($db->error);
|
||||
$ret = array('searchwhere' => $where, 'pageno' => $pageno, 'pagecount' => $pagecount, 'count' => $mainrowcount, 'list' => $rows);
|
||||
$ret = array('searchwhere' => $where, 'pageno' => $pageno, 'pagecount' => $pagecount, 'count' => $mainrowcount, 'list' => $mrows);
|
||||
if ($post->getbool('field')) {
|
||||
$field = array();
|
||||
$fshow = $db->getfield($field, 'ap_usr_sendmail');
|
||||
|
|
@ -74,7 +74,7 @@ class usr_sendmail {
|
|||
$input[] = array('type' => 'daterange', 'form' => 'donetimes', 'name' => '完成时间');
|
||||
$ret['searchinput'] = $input;
|
||||
}
|
||||
$ret['ap_user'] = getrelation($db, $rows, 'ap_user', 'vuser');
|
||||
$ret['ap_user'] = getrelation($db, $mrows, 'ap_user', 'vuser');
|
||||
return succjson($ret);
|
||||
}
|
||||
|
||||
|
|
@ -84,21 +84,22 @@ class usr_sendmail {
|
|||
//if (nopower($db, $rsuser['id'], 'p d'))
|
||||
// return errjson('您未被授权操作');
|
||||
$post = new \ciy\post();
|
||||
//$db->trace($post->get('_pf'), $rsuser);
|
||||
$ids = $post->get('ids');
|
||||
if (empty($ids))
|
||||
return errjson('请选择至少一条');
|
||||
$csql = new \ciy\sql('ap_usr_sendmail');
|
||||
$csql->where('id in', $ids);
|
||||
$rows = $db->get($csql);
|
||||
$mrows = $db->get($csql);
|
||||
$vids = array();
|
||||
try {
|
||||
$db->begin();
|
||||
foreach ($rows as $row) {
|
||||
$delid = $row['id'];
|
||||
foreach ($mrows as $mrow) {
|
||||
$delid = $mrow['id'];
|
||||
//delcheck($db, $delid, 'tablexx', 'xxid', '管理员');
|
||||
//delall($db, $delid, 'tablexx', 'xxid', '运动员'); //deltimeall
|
||||
delme($db, $delid, 'ap_usr_sendmail');
|
||||
savelogdb($db, $rsuser['id'], 'ap_usr_sendmail', $row, null);
|
||||
savelogdb($db, $rsuser['id'], 'ap_usr_sendmail', $mrows, null);
|
||||
$vids[] = $delid;
|
||||
}
|
||||
$db->commit();
|
||||
|
|
@ -154,9 +155,9 @@ class usr_sendmail {
|
|||
// return errjson('您未被授权操作');
|
||||
$post = new \ciy\post();
|
||||
list($where, $csql) = self::setwhere($db, $post, $rsuser);
|
||||
$rows = $db->get($csql);
|
||||
if (count($rows) > 10000)
|
||||
return errjson('将导出' . count($rows) . '条,不建议超过1万条,请筛选缩小范围');
|
||||
$mrows = $db->get($csql);
|
||||
if (count($mrows) > 10000)
|
||||
return errjson('将导出' . count($mrows) . '条,不建议超过1万条,请筛选缩小范围');
|
||||
$fields = array();
|
||||
$fields[] = array('style' => 'l', 'width' => 60, 'field' => 'id', 'name' => '行码');
|
||||
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'vuser', 'name' => '所属用户');
|
||||
|
|
@ -166,13 +167,13 @@ class usr_sendmail {
|
|||
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'addtimes', 'name' => '添加时间');
|
||||
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'sendtimes', 'name' => '发送时间');
|
||||
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'donetimes', 'name' => '完成时间');
|
||||
$code_vuser = getrelation($db, $rows, 'ap_user', 'vuser', 'id,name');
|
||||
$code_vuser = getrelation($db, $mrows, 'ap_user', 'vuser', 'id,name');
|
||||
$datas = array();
|
||||
foreach ($rows as $row) {
|
||||
foreach ($mrows as $mrow) {
|
||||
$dat = array();
|
||||
foreach ($fields as $field) {
|
||||
$field = $field['field'];
|
||||
$val = isset($row[$field]) ? $row[$field] : '';
|
||||
$val = isset($mrow[$field]) ? $mrow[$field] : '';
|
||||
if ($field == 'id')
|
||||
$val = enid($val);
|
||||
if ($field == 'vuser')
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,11 +26,11 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a class="lang btn" onclick="ciyfn.select_callfunc(table, this, '','已选{n}条,是否批量重发?', {xxx:1},function(json){table.updateline(json)})">批量重发</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn" onclick="ciyfn.select_callfunc(table, this, '','已选{n}条,是否批量重发?', {xxx:1},function(json){table.updateline(json)})">批量重发</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, '')"></a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, '')"></a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -39,25 +39,25 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">所在地区</label>
|
||||
<label data-lang>所在地区</label>
|
||||
<div>
|
||||
<ciy-selcas com="areacode" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">详细地址</label>
|
||||
<label data-lang>详细地址</label>
|
||||
<div>
|
||||
<input type="text" name="addr" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">收件人</label>
|
||||
<label data-lang class="imp">收件人</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">联系电话</label>
|
||||
<label data-lang>联系电话</label>
|
||||
<div>
|
||||
<input type="text" name="phone" style="width:100%;" />
|
||||
</div>
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -128,7 +128,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('usr_shipaddr', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=areacode]', dom), value: dat.areacode, range: ciy_arearpc });
|
||||
$5('[name=addr]', dom).val(dat.addr);
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
|
|
@ -154,7 +153,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char4 row">
|
||||
<div class="ciy-form col-24 col-sm-24 top">
|
||||
<label class="lang">答复内容</label>
|
||||
<label data-lang>答复内容</label>
|
||||
<div>
|
||||
<ciy-textarea com="replymsg" minheight="15em" />
|
||||
</div>
|
||||
|
|
@ -74,8 +74,8 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn def" onclick="menubtn(this, 'view')">查看</a>`;
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">答复</a>`;
|
||||
html += `<a data-lang class="btn def" onclick="menubtn(this, 'view')">查看</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">答复</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -110,7 +110,6 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('suggest', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=replymsg]', dom), value: dat.replymsg });
|
||||
}
|
||||
, cb: function (opn) {
|
||||
|
|
@ -184,7 +183,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="datatxt()">导出资源</a>
|
||||
<a class="lang btn" onclick="importtxt()">导入资源</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="datatxt()">导出资源</a>
|
||||
<a data-lang class="btn" onclick="importtxt()">导入资源</a>
|
||||
<ciy-select com="stor" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -29,10 +29,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -42,31 +42,31 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char2 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">路径</label>
|
||||
<label data-lang>路径</label>
|
||||
<div>
|
||||
<ciy-selcas com="cpath" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">名称</label>
|
||||
<label data-lang class="imp">名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">图片</label>
|
||||
<label data-lang class="imp">图片</label>
|
||||
<div>
|
||||
<ciy-upload com="url" num="1" type="jpg,png,webp" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">宽度</label>
|
||||
<label data-lang class="imp">宽度</label>
|
||||
<div>
|
||||
<ciy-inputbet com="w" unit="米" bet="1000" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">高度</label>
|
||||
<label data-lang class="imp">高度</label>
|
||||
<div>
|
||||
<ciy-inputbet com="h" unit="米" bet="1000" />
|
||||
</div>
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -135,10 +135,9 @@
|
|||
//, noparent:true
|
||||
, fn_showed: function (doc, dom) {
|
||||
var dat = jsndat.data;
|
||||
var path = ciyfn.makeuploadpath('cemap_bill', ciyfn.getstorage(ciy_vars.tokenfield));
|
||||
ciycmp({ dom: $5('[com=cpath]', dom), value: dat.cpath, range: table.json.zc_cemap_pbill });
|
||||
$5('[name=name]', dom).val(dat.name);
|
||||
ciycmp({ dom: $5('[com=url]', dom), value: dat.url, path: path });
|
||||
ciycmp({ dom: $5('[com=url]', dom), value: dat.url, path: ciyfn.makeuploadpath('cemap_bill', ciyfn.getstorage(ciy_vars.tokenfield)) });
|
||||
ciycmp({ dom: $5('[com=w]', dom), value: dat.w });
|
||||
ciycmp({ dom: $5('[com=h]', dom), value: dat.h });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -276,55 +276,55 @@
|
|||
<div class="title"><span onclick="$5(this).parent().next().toggle('slide', 0.2)">世界地图</span></div>
|
||||
<div class="content char5">
|
||||
<div class="ciy-form">
|
||||
<label class="lang"><a href="https://cesium.com/platform/cesium-ion/" target="_blank" style="color:#80caff;">icn</a>授权</label>
|
||||
<label data-lang><a href="https://cesium.com/platform/cesium-ion/" target="_blank" style="color:#80caff;">icn</a>授权</label>
|
||||
<div>
|
||||
<input type="text" name="ion" style="width:100%;" title="在cesium中注册后,添加对应token" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">地图样式</label>
|
||||
<label data-lang>地图样式</label>
|
||||
<div>
|
||||
<ciy-select com="wmts_style"></ciy-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">地图服务商</label>
|
||||
<label data-lang>地图服务商</label>
|
||||
<div>
|
||||
<ciy-select com="wmts_source"></ciy-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form wtms_ext wtms_2" style="display:none;">
|
||||
<label class="lang">纯色地图</label>
|
||||
<label data-lang>纯色地图</label>
|
||||
<div>
|
||||
底图颜色 <input type="text" name="map_color" style="width:6em;" title="输入#颜色号" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form wtms_ext wtms_3" style="display:none;">
|
||||
<label class="lang">天地图<a href="https://www.tianditu.gov.cn/" target="_blank" style="color:#80caff;">Token</a></label>
|
||||
<label data-lang>天地图<a href="https://www.tianditu.gov.cn/" target="_blank" style="color:#80caff;">Token</a></label>
|
||||
<div>
|
||||
<input type="text" name="tdt_wmts_token" style="width:100%;" title="注册天地图后,输入其token" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">ion地形</label>
|
||||
<label data-lang>ion地形</label>
|
||||
<div>
|
||||
编号 <input type="text" name="ion_terrain" style="width:4em;" title="在cesium中注册后,添加合适的地形资源后,填写对应编号" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">自建影像</label>
|
||||
<label data-lang>自建影像</label>
|
||||
<div>
|
||||
<input type="text" name="my_wmts" style="width:100%;" title="输入影像网络地址" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">自建地形</label>
|
||||
<label data-lang>自建地形</label>
|
||||
<div>
|
||||
<input type="text" name="my_terrain" style="width:100%;" title="输入地形网络地址" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form top">
|
||||
<label class="lang">平面图</label>
|
||||
<label data-lang>平面图</label>
|
||||
<div>
|
||||
<div class="py1">
|
||||
<input type="text" name="my_singleimg_url" style="width:100%;" title="输入图片的网络地址,不输入为边框。可先通过边框判断位置,再参照边框绘制平面图" />
|
||||
|
|
@ -341,13 +341,13 @@
|
|||
<div class="title"><span onclick="$5(this).parent().next().toggle('slide', 0.2)">地图设置</span></div>
|
||||
<div class="content char5">
|
||||
<div class="ciy-form">
|
||||
<label class="lang">操作模式</label>
|
||||
<label data-lang>操作模式</label>
|
||||
<div>
|
||||
<ciy-radio com="setop" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form top">
|
||||
<label class="lang">初始视角</label>
|
||||
<label data-lang>初始视角</label>
|
||||
<div>
|
||||
<div class="py1">
|
||||
<ciy-radio com="setin" />
|
||||
|
|
@ -359,7 +359,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">光照时间</label>
|
||||
<label data-lang>光照时间</label>
|
||||
<div class="flex">
|
||||
<div>
|
||||
<input type="text" name="sunhourmin" style="width:4em;text-align: center;" />
|
||||
|
|
@ -373,13 +373,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="ciy-form">
|
||||
<label class="lang">阴影模式</label>
|
||||
<label data-lang>阴影模式</label>
|
||||
<div>
|
||||
<ciy-radio com="sunshadow" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form top">
|
||||
<label class="lang">边界遮罩</label>
|
||||
<label data-lang>边界遮罩</label>
|
||||
<div>
|
||||
<div class="py1">
|
||||
<input type="text" name="maskrange" style="width:100%;" title="lat,lng;...封闭围栏内显示,围栏外用颜色覆盖" />
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="edit(0)">添加</a>
|
||||
<a class="lang btn" onclick="datatxt()">导出资源</a>
|
||||
<a class="lang btn" onclick="importtxt()">导入资源</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加</a>
|
||||
<a data-lang class="btn" onclick="datatxt()">导出资源</a>
|
||||
<a data-lang class="btn" onclick="importtxt()">导入资源</a>
|
||||
<ciy-select com="stor" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -29,10 +29,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -42,19 +42,19 @@
|
|||
<div id="alert_edit" style="display:none;">
|
||||
<div class="char2 row">
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">路径</label>
|
||||
<label data-lang class="imp">路径</label>
|
||||
<div>
|
||||
<ciy-selcas com="cpath" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang imp">名称</label>
|
||||
<label data-lang class="imp">名称</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label class="lang">GLB</label>
|
||||
<label data-lang>GLB</label>
|
||||
<div>
|
||||
<ciy-upload com="url" num="1" type="glb" />
|
||||
</div>
|
||||
|
|
@ -86,7 +86,7 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
return html;
|
||||
}
|
||||
if (key == 'img') {
|
||||
|
|
@ -135,7 +135,7 @@
|
|||
for (let i = 0; i < binaryString.length; i++)
|
||||
byteArray[i] = binaryString.charCodeAt(i);
|
||||
const blob = new Blob([byteArray], { type: mimeType });
|
||||
ciyfn.file_uploads(1, [new File([blob], 'thumb.jpg', { type: mimeType })], {stor:Glob.stor, path:'glb', fname:fname, action:'/z/?func=admin/'}, {
|
||||
ciyfn.file_uploads(1, [new File([blob], 'thumb.jpg', { type: mimeType })], {stor:Glob.stor, path:'glb', fname:fname, action:'/admin/'}, {
|
||||
success: function (url, file) {
|
||||
console.log(url);
|
||||
dom.src = ciyfn.file_stor(url);
|
||||
|
|
@ -233,7 +233,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="multiadd()">添加新分类</a>
|
||||
<a class="lang btn dag" onclick="deltree()">批量删除</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="multiadd()">添加新分类</a>
|
||||
<a data-lang class="btn dag" onclick="deltree()">批量删除</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
</div>
|
||||
<div id="alert_modifyupid" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">调整到</label>
|
||||
<label style="min-width:3em;" data-lang>调整到</label>
|
||||
<div>
|
||||
<ciy-select com="newupid"></select>
|
||||
</div>
|
||||
|
|
@ -36,13 +36,13 @@
|
|||
</div>
|
||||
<div id="alert_multiadd" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">添加到</label>
|
||||
<label style="min-width:3em;" data-lang>添加到</label>
|
||||
<div>
|
||||
<ciy-select com="upid"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form v">
|
||||
<label style="min-width:3em;"><span class="lang">分类名称</span><code class="lang">(一行一个)</code></label>
|
||||
<label style="min-width:3em;"><span data-lang>分类名称</span><code data-lang>(一行一个)</code></label>
|
||||
<div>
|
||||
<ciy-textarea com="multi" minheight="30em"></ciy-textarea>
|
||||
</div>
|
||||
|
|
@ -94,8 +94,8 @@
|
|||
return '<input spellcheck="false" style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '"/>';
|
||||
}
|
||||
if (key == '_btn') {
|
||||
var html = '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a class="lang btn" onclick="menubtn(this, \'tz\')">调整</a>';
|
||||
var html = '<a data-lang class="btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a data-lang class="btn" onclick="menubtn(this, \'tz\')">调整</a>';
|
||||
return html;
|
||||
}
|
||||
if (key == 'name') {
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="multiadd()">添加新分类</a>
|
||||
<a class="lang btn dag" onclick="deltree()">批量删除</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="multiadd()">添加新分类</a>
|
||||
<a data-lang class="btn dag" onclick="deltree()">批量删除</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
</div>
|
||||
<div id="alert_modifyupid" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">调整到</label>
|
||||
<label style="min-width:3em;" data-lang>调整到</label>
|
||||
<div>
|
||||
<ciy-select com="newupid"></select>
|
||||
</div>
|
||||
|
|
@ -36,13 +36,13 @@
|
|||
</div>
|
||||
<div id="alert_multiadd" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">添加到</label>
|
||||
<label style="min-width:3em;" data-lang>添加到</label>
|
||||
<div>
|
||||
<ciy-select com="upid"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form v">
|
||||
<label style="min-width:3em;"><span class="lang">分类名称</span><code class="lang">(一行一个)</code></label>
|
||||
<label style="min-width:3em;"><span data-lang>分类名称</span><code data-lang>(一行一个)</code></label>
|
||||
<div>
|
||||
<ciy-textarea com="multi" minheight="30em"></ciy-textarea>
|
||||
</div>
|
||||
|
|
@ -94,8 +94,8 @@
|
|||
return '<input spellcheck="false" style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '"/>';
|
||||
}
|
||||
if (key == '_btn') {
|
||||
var html = '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a class="lang btn" onclick="menubtn(this, \'tz\')">调整</a>';
|
||||
var html = '<a data-lang class="btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a data-lang class="btn" onclick="menubtn(this, \'tz\')">调整</a>';
|
||||
return html;
|
||||
}
|
||||
if (key == 'name') {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,18 @@ var ciy_vars = {
|
|||
, "loginurl": "admin/login.html"
|
||||
, "dupsec": 60
|
||||
, "storselect": '/'
|
||||
, "storlist": { '/': '/ud/', 'A': 'https://cf5.nyyzsoft.cn/ud/' }
|
||||
, "storlist": {
|
||||
'/': '/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/'
|
||||
}
|
||||
, "storthumb": {
|
||||
'/': '?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'
|
||||
}
|
||||
, "langs": {
|
||||
'': '简体中文'
|
||||
, 'en': 'English'
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@
|
|||
<div class="container">
|
||||
<div>
|
||||
<div class="ciy-form inline">
|
||||
<label class="lang">公用参数</label>
|
||||
<label data-lang>公用参数</label>
|
||||
<div>
|
||||
<input type="text" name="sse_param" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<br/><a onclick="run('demo')" class="lang btn">Demo</a>SSE Demo
|
||||
<br/><a onclick="run('imgs.upimg')" class="lang btn">无用数据清理</a>
|
||||
<br/><a onclick="run('demo')" data-lang class="btn">Demo</a>SSE Demo
|
||||
<br/><a onclick="run('imgs.upimg')" data-lang class="btn">无用数据清理</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -48,9 +48,9 @@
|
|||
</div>
|
||||
<div style="flex:1;display:flex;flex-direction:column;min-width: 0;">
|
||||
<div class="topbtn">
|
||||
<a class="lang btn" onclick="edit(0)">添加管理员</a>
|
||||
<a class="lang btn" onclick="multiin()">导入</a>
|
||||
<a class="lang btn" onclick="exportxls()">导出</a>
|
||||
<a data-lang class="btn" onclick="edit(0)">添加管理员</a>
|
||||
<a data-lang class="btn" onclick="multiin()">导入</a>
|
||||
<a data-lang class="btn" onclick="exportxls()">导出</a>
|
||||
</div>
|
||||
<div class="table">
|
||||
<div class="loading col-24">Loading...</div>
|
||||
|
|
@ -58,10 +58,10 @@
|
|||
</div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,是否批量删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -76,10 +76,10 @@
|
|||
<ciy-upload com="file" />
|
||||
</div>
|
||||
<div style="margin-left:0.3em;">
|
||||
<a class="lang btn btn-sm def" href="/ud/inpl/zc_admin.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div class="lang">每次导入建议不超过1000条</div>
|
||||
<div class="lang">导入更新,首列为导出的行码</div>
|
||||
<div class="lang">请按模版列填写</div>
|
||||
<a data-lang class="btn btn-sm def" href="/ud/inpl/zc_admin.xlsx" target="_blank">下载导入模板</a><br />
|
||||
<div data-lang>每次导入建议不超过1000条</div>
|
||||
<div data-lang>导入更新,首列为导出的行码</div>
|
||||
<div data-lang>请按模版列填写</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -91,37 +91,37 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">姓名</label>
|
||||
<label data-lang class="imp">姓名</label>
|
||||
<div>
|
||||
<input type="text" name="name" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">状态</label>
|
||||
<label data-lang class="imp">状态</label>
|
||||
<div>
|
||||
<ciy-select com="stpstatus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">手机号</label>
|
||||
<label data-lang class="imp">手机号</label>
|
||||
<div>
|
||||
<input type="text" name="mobile" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-8">
|
||||
<label class="lang imp">性别</label>
|
||||
<label data-lang class="imp">性别</label>
|
||||
<div>
|
||||
<ciy-select com="sex" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang">所属组织</label>
|
||||
<label data-lang>所属组织</label>
|
||||
<div>
|
||||
<ciy-selcas com="departid" all="本级" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-16">
|
||||
<label class="lang" id="id_role_label">岗位角色</label>
|
||||
<label data-lang id="id_role_label">岗位角色</label>
|
||||
<div id="id_role">
|
||||
<ciy-select com="roleid" minwidth="10em" />
|
||||
</div>
|
||||
|
|
@ -160,8 +160,8 @@
|
|||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == '_btn') {
|
||||
var html = '';
|
||||
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a class="lang btn warn" onclick="menubtn(this, 'repass')">重置密码</a>`;
|
||||
html += `<a data-lang class="btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
||||
html += `<a data-lang class="btn warn" onclick="menubtn(this, 'repass')">重置密码</a>`;
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
@ -170,10 +170,10 @@
|
|||
});
|
||||
function filldepart(departs) {
|
||||
departs = ciyfn.conv_treerow(departs, 0, 0);
|
||||
var html = '<div data-id="" class="lang selected">全部</div>';
|
||||
var html = '<div data-id="" data-lang class="selected">全部</div>';
|
||||
for (var i in departs) {
|
||||
var deep = toint(departs[i]['_deep']);
|
||||
html += '<div data-id="' + departs[i]['id'] + '" class="lang">' + ' '.repeat(deep) + departs[i]['name'] + '</div>';
|
||||
html += '<div data-id="' + departs[i]['id'] + '" data-lang>' + ' '.repeat(deep) + departs[i]['name'] + '</div>';
|
||||
}
|
||||
$5('.tabledepart').html(html);
|
||||
$5('.tabledepart').on('click', 'div', function (e) {
|
||||
|
|
@ -240,7 +240,7 @@
|
|||
function exportxls() {
|
||||
ciyfn.table_exportxls('exportxls', table, function (json) {
|
||||
ciyfn.alert({
|
||||
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
content: '<div style="text-align:center;"><span data-lang>导出数据已生成</span><br/><br/><a data-lang class="btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
||||
, btns: null
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -455,13 +455,13 @@ class catlist {
|
|||
if (count($unqs) > 0) {
|
||||
$unq = implode('|', $unqs);
|
||||
if (in_array($unq, $uniques))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与待导入数据有重复"><div data-lang>重复</div></td>';
|
||||
else {
|
||||
$uniques[] = $unq;
|
||||
$csql->column('id');
|
||||
$chkid = toint($db->get1($csql));
|
||||
if ($chkid > 0 && (($id > 0 && $chkid != $id) || $id == 0))
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div class="lang">重复</div></td>';
|
||||
$firsthtml = '<td style="background:#ffe8c5;" title="#' . $lineidx . ':该行与数据库数据有重复"><div data-lang>重复</div></td>';
|
||||
}
|
||||
}
|
||||
$html .= '<tr>' . $firsthtml . $hrhtml . '</tr>';
|
||||
|
|
|
|||
|
|
@ -18,81 +18,81 @@
|
|||
<form>
|
||||
<div class="char5 row">
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">smtp服务器</label>
|
||||
<label data-lang class="imp">smtp服务器</label>
|
||||
<div>
|
||||
<input type="text" name="smtpserver" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">smtp端口</label>
|
||||
<label data-lang class="imp">smtp端口</label>
|
||||
<div>
|
||||
<input type="text" name="smtpport" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">邮箱地址</label>
|
||||
<label data-lang class="imp">邮箱地址</label>
|
||||
<div>
|
||||
<input type="text" name="user" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">安全密码</label>
|
||||
<label data-lang class="imp">安全密码</label>
|
||||
<div>
|
||||
<input type="text" name="pass" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">发送地址</label>
|
||||
<label data-lang class="imp">发送地址</label>
|
||||
<div>
|
||||
<input type="text" name="mailto" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">标题</label>
|
||||
<label data-lang class="imp">标题</label>
|
||||
<div>
|
||||
<input type="text" name="title" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24 top">
|
||||
<label class="lang imp">内容</label>
|
||||
<label data-lang class="imp">内容</label>
|
||||
<div>
|
||||
<ciy-textarea com="content" minheight="15em"></ciy-textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="txt-center">
|
||||
<a onclick="mailsend(this)" class="lang btn lg">发送邮件</a>
|
||||
<a onclick="mailsend(this)" data-lang class="btn lg">发送邮件</a>
|
||||
</div>
|
||||
</form>
|
||||
<form>
|
||||
<div class="char5 row">
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">imap服务器</label>
|
||||
<label data-lang class="imp">imap服务器</label>
|
||||
<div>
|
||||
<input type="text" name="imapserver" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang">LastUID</label>
|
||||
<label data-lang>LastUID</label>
|
||||
<div>
|
||||
<input type="text" name="lastuid" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">邮箱地址</label>
|
||||
<label data-lang class="imp">邮箱地址</label>
|
||||
<div>
|
||||
<input type="text" name="user" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-12">
|
||||
<label class="lang imp">安全密码</label>
|
||||
<label data-lang class="imp">安全密码</label>
|
||||
<div>
|
||||
<input type="text" name="pass" style="width:100%;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="txt-center">
|
||||
<a onclick="mailrecv(this)" class="lang btn lg">接收邮件</a>
|
||||
<a onclick="mailrecv(this)" data-lang class="btn lg">接收邮件</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<div>
|
||||
<div>
|
||||
<ciy-textarea com="prompt"></ciy-textarea>
|
||||
<a onclick="llm(this)" class="lang btn">提问</a>
|
||||
<a onclick="llm(this)" data-lang class="btn">提问</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="id_result" class="markdown-body"></div>
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@
|
|||
<div class="container">
|
||||
<div>
|
||||
<div>
|
||||
<a onclick="demo_get()" class="lang btn">SSE Get</a>
|
||||
<a onclick="demo_post()" class="lang btn">SSE Post</a>
|
||||
<a onclick="demo_get()" data-lang class="btn">SSE Get</a>
|
||||
<a onclick="demo_post()" data-lang class="btn">SSE Post</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ int main() {
|
|||
<br/>
|
||||
|
||||
<a class="btn btn-menu btn-menu-caret">
|
||||
<span class="lang">触发按钮</span>
|
||||
<span data-lang>触发按钮</span>
|
||||
<div class="caret"></div>
|
||||
<ul class="ciy-popmenu">
|
||||
<li>菜单1</li>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,15 @@
|
|||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label>A.s3</label>
|
||||
<div><ciy-upload com="i" num="10" stor="A" /></div>
|
||||
<div><ciy-upload com="ia" num="10" stor="A" /></div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label>B.COS</label>
|
||||
<div><ciy-upload com="ib" num="10" stor="B" /></div>
|
||||
</div>
|
||||
<div class="ciy-form col-24 col-sm-24">
|
||||
<label>C.OSS</label>
|
||||
<div><ciy-upload com="ic" num="10" stor="C" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn lg">提交</button>
|
||||
|
|
@ -81,7 +89,9 @@
|
|||
});
|
||||
ciycmp({ dom: '[com=g]', path: path, onchange: function (d) { showlog(d) } });
|
||||
ciycmp({ dom: '[com=h]', path: path, onchange: function (d) { showlog(d) } });
|
||||
ciycmp({ dom: '[com=i]', path: path, onchange: function (d) { showlog(d) } });
|
||||
ciycmp({ dom: '[com=ia]', path: path, onchange: function (d) { showlog(d) } });
|
||||
ciycmp({ dom: '[com=ib]', path: path, onchange: function (d) { showlog(d) } });
|
||||
ciycmp({ dom: '[com=ic]', path: path, onchange: function (d) { showlog(d) } });
|
||||
});
|
||||
function formsubmit(event) {
|
||||
event.preventDefault();
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@
|
|||
|
||||
<div class="ciy-tabcard simple" style="margin: 1em;border-radius: 0.5em;box-shadow: 3px 3px 8px #00000033;">
|
||||
<ul>
|
||||
<li data-liid="0" class="lang">全部</li>
|
||||
<li data-liid="1" class="lang">选项1</li>
|
||||
<li data-liid="2" class="lang">选项2</li>
|
||||
<li data-liid="0" data-lang>全部</li>
|
||||
<li data-liid="1" data-lang>选项1</li>
|
||||
<li data-liid="2" data-lang>选项2</li>
|
||||
<right>右侧按钮<button class="btn sm">按钮</button></right>
|
||||
</ul>
|
||||
<div>
|
||||
|
|
@ -47,9 +47,9 @@
|
|||
<br/><br/><br/><br/><br/>
|
||||
<div class="ciy-tabcard form" style="margin: 1em;">
|
||||
<ul>
|
||||
<li data-liid="0" class="lang">全部</li>
|
||||
<li data-liid="1" class="lang">选项1</li>
|
||||
<li data-liid="2" class="lang">选项2</li>
|
||||
<li data-liid="0" data-lang>全部</li>
|
||||
<li data-liid="1" data-lang>选项1</li>
|
||||
<li data-liid="2" data-lang>选项2</li>
|
||||
<right>右侧按钮<button class="btn sm">按钮</button></right>
|
||||
</ul>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn def" onclick="pagehelp()">帮助</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn def" onclick="pagehelp()">帮助</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -25,10 +25,10 @@
|
|||
<div class="list"></div>
|
||||
<div>
|
||||
<div class="btmbtn">
|
||||
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_all(table)">全选</a>
|
||||
<a data-lang class="btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
||||
|
|
||||
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,确认是否删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
<a data-lang class="btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,确认是否删除?',{},function(json){table.delline(json)})">批量删除</a>
|
||||
</div>
|
||||
<div class="page"></div>
|
||||
</div>
|
||||
|
|
@ -76,9 +76,9 @@
|
|||
if (key == '_btn') {
|
||||
var html = '';
|
||||
if (data['id'] == 0)
|
||||
html += '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">新增</a>';
|
||||
html += '<a data-lang class="btn def upbtn" onclick="menubtn(this, \'edit\')">新增</a>';
|
||||
else
|
||||
html += '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">更新</a>';
|
||||
html += '<a data-lang class="btn def upbtn" onclick="menubtn(this, \'edit\')">更新</a>';
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@
|
|||
<div>
|
||||
<div class="sinps"></div>
|
||||
<div class="sbtns">
|
||||
<button class="lang btn" type="submit">查询</button>
|
||||
<a class="lang btn" onclick="multiadd()">添加</a>
|
||||
<a class="lang btn def" onclick="datatxt()">结构</a>
|
||||
<a class="lang btn dag" onclick="deltree()">批量删除</a>
|
||||
<button data-lang class="btn" type="submit">查询</button>
|
||||
<a data-lang class="btn" onclick="multiadd()">添加</a>
|
||||
<a data-lang class="btn def" onclick="datatxt()">结构</a>
|
||||
<a data-lang class="btn dag" onclick="deltree()">批量删除</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
<div id="alert_modifyupid" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">调整到</label>
|
||||
<label style="min-width:3em;" data-lang>调整到</label>
|
||||
<div>
|
||||
<ciy-select com="newupid"></select>
|
||||
</div>
|
||||
|
|
@ -37,13 +37,13 @@
|
|||
</div>
|
||||
<div id="alert_multiadd" style="display:none;">
|
||||
<div class="ciy-form">
|
||||
<label style="min-width:3em;" class="lang">添加到</label>
|
||||
<label style="min-width:3em;" data-lang>添加到</label>
|
||||
<div>
|
||||
<ciy-select com="upid"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ciy-form v">
|
||||
<label style="min-width:3em;"><span class="lang">名称</span><code class="lang">(一行一个)</code></label>
|
||||
<label style="min-width:3em;"><span data-lang>名称</span><code data-lang>(一行一个)</code></label>
|
||||
<div>
|
||||
<ciy-textarea com="multi" minheight="30em"></ciy-textarea>
|
||||
</div>
|
||||
|
|
@ -70,6 +70,7 @@
|
|||
table = new ciyclass.table({
|
||||
dom: '.table'
|
||||
, url: 'init'
|
||||
, chkbox: true
|
||||
, thfield: function (name, key, field, json) {
|
||||
if (key == 'name')
|
||||
return '<a style="font-size: 1.5em;vertical-align: middle;padding-right: 0.5em;" onclick="exall()">⇅</a> ' + ciyfn.lang(name);
|
||||
|
|
@ -92,28 +93,28 @@
|
|||
}
|
||||
, fn_tdcontent: function (key, datashow, field, data) {
|
||||
if (key == 'isuse') {
|
||||
return '<ciy-switch com="' + key + '" value="' + data[key] + '" y="显示" n="隐藏" onmousedown="event.stopPropagation();"/>';
|
||||
return '<ciy-switch com="' + key + '" value="' + data[key] + '" y="显示" n="隐藏" />';
|
||||
}
|
||||
if (key == 'leaderuser') {
|
||||
return '<ciy-select com="' + key + '" value="' + data[key] + '" onmousedown="event.stopPropagation();"/>';
|
||||
return '<ciy-select com="' + key + '" value="' + data[key] + '"/>';
|
||||
}
|
||||
if (key == 'csort') {
|
||||
return '<input spellcheck="false" style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '" onmousedown="event.stopPropagation();"/>';
|
||||
return '<input spellcheck="false" style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '"/>';
|
||||
}
|
||||
if (key == '_btn') {
|
||||
var html = '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')" onmousedown="event.stopPropagation();">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a class="lang btn" onclick="menubtn(this, \'tz\')" onmousedown="event.stopPropagation();">调整</a>';
|
||||
var html = '<a data-lang class="btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
|
||||
html += '<a data-lang class="btn" onclick="menubtn(this, \'tz\')">调整</a>';
|
||||
return html;
|
||||
}
|
||||
if (key == 'name') {
|
||||
var deep = toint(data['_deep']);
|
||||
var html = ' '.repeat(deep);
|
||||
if (data['_count'] > 0) {
|
||||
html += '<span class="ciy-tree-dot" onmousedown="event.stopPropagation();">▶</span> <input style="margin-left: 0.3em;width:100%;" onclick="event.stopPropagation();" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '" onmousedown="event.stopPropagation();"/>';
|
||||
html += '<span class="ciy-tree-dot">▶</span> <input style="margin-left: 0.3em;width:100%;" onclick="event.stopPropagation();" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '"/>';
|
||||
} else {
|
||||
if (deep > 0)
|
||||
html += ' ';
|
||||
html += '<input style="width:100%;" onclick="event.stopPropagation();" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '" onmousedown="event.stopPropagation();"/>';
|
||||
html += '<input style="width:100%;" onclick="event.stopPropagation();" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '"/>';
|
||||
}
|
||||
return {
|
||||
divprop: (data['_count'] > 0 ? ' data-treeid="' + data['id'] + '"' : '') + ' data-deep="' + data['_deep'] + '" style="display: flex;" class="ciy-tree-spread"'// class="ciy-tree-spread"
|
||||
|
|
|
|||
|
|
@ -1050,13 +1050,13 @@ func Normal_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if len(unqs) > 0 {
|
||||
unq := strings.Join(unqs, "|")
|
||||
if _, ok := uniques[unq]; ok {
|
||||
firsthtml = "<td style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":该行与待导入数据有重复\"><div class=\"lang\">重复</div></td>"
|
||||
firsthtml = "<td style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":该行与待导入数据有重复\"><div data-lang>重复</div></td>"
|
||||
} else {
|
||||
uniques[unq] = true
|
||||
csql.Column("id")
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
firsthtml = "<td style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":该行与数据库数据有重复\"><div class=\"lang\">重复</div></td>"
|
||||
firsthtml = "<td style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":该行与数据库数据有重复\"><div data-lang>重复</div></td>"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user