diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c9707ee --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,149 @@ +# AGENTS.md + +本文件面向在当前仓库中协作的智能编码代理,目标是帮助代理快速理解项目结构、开发方式和既有约定,并在不破坏现有行为的前提下做最小改动。 + +## 1. 项目概览 + +- 项目类型:`uni-app`,以 `Vue 2 + Vuex + uni-app H5` 为主。 +- 入口文件:`main.js`;根组件:`App.vue`;页面注册:`pages.json`。 +- H5 路由:`router/index.js`,基于 `js_sdk/hhyang-uni-simple-router`。 +- 运行配置:`config.js`、`vue.config.js`、`manifest.json`、`pages.json`。 +- 当前未发现需合并的其他规则文件:`.cursorrules`、`.cursor/rules/`、`.github/copilot-instructions.md`、`CLAUDE.md` 均不存在。 + +## 2. 目录结构与模块组织 + +### 根目录关键文件 + +- `main.js`:应用启动、全局原型方法、请求封装、路由挂载。 +- `App.vue`:全局生命周期与样式入口。 +- `pages.json`:页面声明、全局样式、easycom 配置。 +- `config.js`:接口地址、`app_id`、H5 地址等运行参数。 +- `vue.config.js`:H5 构建配置、`postcss-px-to-viewport`、本地代理。 +- `template.h5.html`、`uni.scss`:H5 模板与全局 SCSS 变量入口。 + +### 源代码目录 + +- `pages/`:主业务页面;优先修改 `pages.json` 已注册的正式页面。 +- `pages/part/`:页面级公共组件,如 `layout.vue`、`header.vue`、`footer.vue`、`member_left.vue`、`pay.vue`。 +- `components/`:通用组件,如 `jxs-slider/`、`u-charts/`、`uni-popup/`、`w-picker/`。 +- `common/`:工具与辅助逻辑,如 `utils.js`、`bus.js`、`pc.js`。 +- `router/`:H5 路由配置;`store/`:Vuex 状态;`styles/`:全局样式。 +- `js_sdk/`:本地/第三方 SDK,重点是 `hhyang-uni-simple-router/`。 +- `uni_modules/`:模块插件,如 `uview-ui/`、`uni-icons/`、`qiun-data-charts/`、`hjy-sign/`。 + +### 资源、测试与构建产物 + +- 静态资源主要在 `static/img/`、`static/imgs/`,页面大量使用相对路径引用。 +- 当前未发现测试目录、`*.spec.*`、`*.test.*` 文件。 +- 不直接编辑 `node_modules/`、`unpackage/`、`.hbuilderx/`。 + +### 备份/副本文件 + +- 仓库存在 `pages/index - 副本.vue`、`pages/game copy.vue`、`pages/asset_list copy.vue`、`config - 副本.js`、`pages/development1.vue` 等历史文件。 +- 除非用户明确要求,否则不要修改这类“副本 / copy / 试验”文件。 + +## 3. 路由与页面协作 + +- 新增页面时,至少同步更新 `pages.json`。 +- H5 需要别名访问时,通常还要同步更新 `router/index.js`。 +- H5 首页依赖 `router/index.js` 中 `aliasPath: '/'`,不要随意改动。 +- H5 通过 `RouterMount(app, '#app')` 挂载;非 H5 仍走 `app.$mount()`。 +- 修改页面路径、文件名或导航逻辑时,至少检查:`pages.json`、`router/index.js`、页面内跳转代码。 + +## 4. 构建、运行、lint、测试 + +### 当前仓库现状 + +- 根目录 `package.json` 没有定义 `scripts`。 +- 已确认可用命令:`npm install`。 +- `vue.config.js` 中已配置 H5 代理,`/api` 转发到 `https://static-cog.scszsj.com`。 +- 当前未发现 `eslint`、`prettier`、`stylelint` 脚本。 +- 当前未发现 `jest`、`vitest`、`mocha`、`cypress` 等测试框架配置。 + +### 给代理的执行建议 + +- 运行、预览、发布更接近依赖 HBuilderX,而不是 npm scripts。 +- 用户要求“构建/运行项目”时,优先按 uni-app / HBuilderX 方式处理,不要先假设有 Vite/Webpack 脚本。 +- 用户要求“lint”时,应先说明仓库未配置 lint 脚本。 +- 用户要求“测试”或“单个测试”时,应先说明当前没有现成测试框架与测试用例。 +- 当前状态下无法运行单个测试;若后续新增测试框架,需补充测试入口与单测筛选命令。 + +## 5. 代码风格与实现习惯 + +### JavaScript / Vue + +- 代码以 Options API 为主:`data`、`created`、`methods`、`watch`。 +- 当前不是 TypeScript 项目;新增代码默认使用 `JS + Vue SFC`。 +- 页面内公共布局通常由 `pages/part/*.vue` 组合,不主动抽复杂全局体系。 +- 页面脚本里常把表单对象初始化为 `[]` 后再挂字段,这是历史写法;除非顺手修复当前问题,不要大面积“规范化”。 +- 修改时保持局部风格一致,不做整仓格式化。 + +### imports / 命名 / 格式 + +- 先导入框架与第三方库,再导入本地模块。 +- 本地导入以相对路径为主;若文件已稳定使用相对路径,不要仅为风格改成 `@/`。 +- 组件注册名大小写并不统一,如 `memberleft`、`pay`;修改现有页面时保持原注册名即可。 +- 页面文件常用小写或下划线风格,如 `asset_add.vue`、`pay_detail.vue`。 +- 若字段名明显来自后端返回或接口参数,不要擅自重命名。 + +### 样式 + +- 全局样式主要来自 `styles/common.scss` 与 `styles/style.scss`。 +- H5 适配依赖 `postcss-px-to-viewport`,默认会把 `px` 转成 `vw`;不想转换时可使用 `.ignore-` 选择器约定。 +- 不要随意调整全局 `html` 字号和样式入口,除非用户明确要求。 +- uni-app H5 中不要给 `input`、`textarea` 设置 `box-sizing: border-box`,否则可能导致无法聚焦或无法输入。 +- 页面样式普遍直接引用 `static/img`、`static/imgs` 资源,并大量使用固定宽高;改版时优先保持目录与引用方式。 + +### easycom / uni_modules + +- `pages.json` 已开启 `easycom.autoscan`。 +- 当前自定义映射:`html2canvas -> html2canvas/dist/html2canvas.esm.js`。 +- 使用 `uni_modules` 中已有组件时,优先沿用现有接入方式,不要重复复制到 `components/`。 + +## 6. 数据请求、错误处理与状态 + +- 全局请求封装在 `main.js`,通过 `Vue.prototype._get`、`Vue.prototype._post` 调用。 +- 请求默认会附带 `token` 与 `app_id`。 +- 登录失效由请求层统一处理:接口返回 `code === -1` 时触发 `doLogin()`。 +- 页面错误提示普遍使用 `uni.showToast({ icon: 'none', ... })`;必要时中断流程。 +- 现有代码中有不少 `console.log` 调试输出;新增代码不要继续扩散无意义日志。 + +### 接口调用隐性约定 + +- 接口路径通常只传业务片段,`main.js` 会统一拼接 `/api/` 前缀。 +- 接口命名大小写并不统一,如 `asset.asset/index`、`asset.Asset/paymentDetail`、`user.User/updateInfo`、`gameasset.GameAsset/index`。 +- 现有代码里接口路径是否以 `/` 开头也不统一;复用同一模块接口时优先跟随原写法,不要顺手批量改。 +- 申请类页面常调用 `game.Apply/add` 或 `game.Apply/addApply`;改“我要资金/发行/技术”等表单时,先搜索同类页面保持参数结构一致。 + +### 状态管理 + +- `store/index.js` 当前较空,很多状态仍放在页面内部。 +- 不要为了“更规范”就把局部状态机械迁移到 Vuex。 + +## 7. 隐性约定与协作边界 + +- 优先做最小正确改动,不主动重构超长 Vue 页面。 +- 不主动清理历史副本文件、旧调试代码,除非它们直接影响当前需求。 +- 修改接口请求、路由、登录态、上传、支付流程时,必须检查相关页面是否复用同逻辑。 +- 变更静态资源路径时,要检查 H5 相对路径是否仍然有效。 + +### 页面跳转与布局约定 + +- H5 跳转是混用的:导航栏、页头、侧边菜单多用 `this.$router.push/replace({ path: 'xxx' })`;业务流程页也常直接用 `uni.navigateTo({ url: '/xxx' })`。 +- 修改跳转时优先保持所在文件原有方式,不要在单页里再引入第三种封装;改完后手工验证 H5 路由是否正常。 +- 项目大量使用短路径,如 `path: 'login'`、`url: '/apply'`,这是既有行为,新增同类跳转先参考相邻页面。 +- `layout.vue` 常用于首页/资讯页等含 Banner 的页面;`layouts.vue` 用于常规内页;`layoutNo.vue` 用于不展示移动端头尾的内容页;`layoutNoh.vue` 常用于登录/注册/忘记密码等轻页面。 +- 多个布局组件都会在 `created` 中请求 `game.index/setting` 获取站点配置;新增整页时优先复用布局,不要重复在页面里拉同类站点信息。 + +### 组件复用与前置校验 + +- 成员中心页面通常采用 `Layout + member_left + 右侧内容区` 双栏结构;付款场景会额外复用 `pages/part/pay.vue`。 +- 资产新增、资产列表、付款记录等成员页进入关键操作前,常先检查 `apply_status`、`third_auth_status` 等本地认证状态;修改这些流程时不要漏掉前置校验。 +- “我要发行 / 技术 / 出海 / 补贴”等专题页常带 `uni-popup` 申请弹窗,提交成功后关闭弹窗并 toast 提示;新增同类落地页时优先沿用该交互。 + +## 8. 给代理的工作建议 + +- 动手前先确认目标文件是正式入口文件,而不是“副本”。 +- 涉及导航先看 `pages.json` 与 `router/index.js`;涉及接口先看 `main.js` 的 `_get` / `_post` 约定。 +- 涉及样式先判断是否受全局 SCSS、`vw` 转换或 H5 输入框兼容性影响。 +- 仓库当前缺少自动化验证手段;完成改动后,应至少说明需要用户手工验证的页面、流程或平台。 diff --git a/App.vue b/App.vue index 6ef9268..75f2b76 100644 --- a/App.vue +++ b/App.vue @@ -28,7 +28,7 @@ console.log('App Show') }, onHide: function() { - //console.log('App Hide') + //console.log('App Hide') } } diff --git a/config.js b/config.js index c869c4a..eba1e12 100644 --- a/config.js +++ b/config.js @@ -1,15 +1,15 @@ -var app_url = 'https://cogapitest.scszsj.com'; +var app_url = 'https://cogapi.scszsj.com'; // 如果是本地测试环境 if(process.env.NODE_ENV === 'development'){ //#ifdef H5 - app_url = 'https://cogapitest.scszsj.com'; //http://cogapitest.scszsj.com http://gg.com/index.php + app_url = 'http://gg.com/index.php'; //http://cogapitest.scszsj.com http://gg.com/index.php //#endif } // 如果是生产环境,h5环境下直接读取url if(process.env.NODE_ENV === 'production'){ //#ifdef H5 // app_url = window.location.protocol+'//' + window.location.host+'/index.php'; http://cogapitest.scszsj.com https://cogapi.scszsj.com - app_url = 'https://cogapitest.scszsj.com'; + app_url = 'http://gg.com/index.php'; //#endif } diff --git a/pages/asset_add.vue b/pages/asset_add.vue index a874b83..9fd93f1 100644 --- a/pages/asset_add.vue +++ b/pages/asset_add.vue @@ -399,11 +399,17 @@ 上一步 - 保存 - 保存 + 保存 + 保存 下一步 - 立即免费提交 - 重新提交 + 立即免费提交 + 重新提交 + @@ -522,7 +528,10 @@ import Layout from './part/layouts.vue'; credit_report_img:'', file_num:0, id:0, - status:'' + status:'', + contract_status:'', + report_url:'', + is_edit:1 } }, created(){ @@ -533,17 +542,18 @@ import Layout from './part/layouts.vue'; if(isMobile){ this.list_rows = 30; } + + }, + onShow() { this.steps = 0; let obj = this.$Route.query; if(obj.hasOwnProperty('id')){ this.id = Number(obj.id); + this.is_edit = Number(obj.is_edit||1); } if(this.id>0){ this.getdetail() } - }, - onShow() { - }, mounted() { @@ -556,7 +566,9 @@ import Layout from './part/layouts.vue'; res=>{ console.log(res.data,3333) this.status = res.data.status; - console.log(this.status,3333) + this.contract_status = res.data.contract_status; + this.report_url = res.data.report_url; + console.log(this.status,this.contract_status,3333) this.form.base_info = res.data.base_info; this.form.develop_info = res.data.develop_info; this.form.title_info = res.data.title_info; diff --git a/pages/asset_list - 副本.vue b/pages/asset_list - 副本.vue new file mode 100644 index 0000000..9c6b34a --- /dev/null +++ b/pages/asset_list - 副本.vue @@ -0,0 +1,1101 @@ + + + + + diff --git a/pages/asset_list copy.vue b/pages/asset_list copy.vue index 792f2dc..37002e7 100644 --- a/pages/asset_list copy.vue +++ b/pages/asset_list copy.vue @@ -614,7 +614,7 @@ export default { formData.append('type', filetype); formData.append('app_id', '10001'); formData.append('token', uni.getStorageSync('token') || ''); - // uni.request暂不支持直接传formData,改用原生XMLHttpRequest优化图片上传 + // uni.request暂不支持直接传formData,改用原生XMLHttpRequest优化图片上传 const xhr = new XMLHttpRequest(); xhr.open('POST', this.config.app_url+'/api/file.upload/file', true); xhr.onreadystatechange = function () { @@ -627,7 +627,6 @@ export default { that.$message.error('签名上传返回异常'); return; } - console.log(res.data.file_id,2222222222222222) if(res.code === 1){ // 调用签约接口给后端参数 that.toqy(res.data.file_id); @@ -658,7 +657,7 @@ export default { this.getData(); }, err => { uni.showToast({ - icon: 'none', + icon: 'none', title: err.data.msg }) return; diff --git a/pages/asset_list.vue b/pages/asset_list.vue index 84ed51f..8225a66 100644 --- a/pages/asset_list.vue +++ b/pages/asset_list.vue @@ -11,6 +11,8 @@ 游戏产品评估确权 + + @@ -25,6 +27,8 @@ 有效解决游戏数字资产价值评估标准缺失、企业融资难、运营风险监管不透明以及不良资产处置专业度不足等问题 + + @@ -66,7 +70,7 @@ + - - + width="130"> + - - - -
- 评估服务协议 -
-
-
- 协议编号:________________
- 甲方(委托方):
- 统一社会信用代码:______________________________
- 联系地址:________________________________________
- 联系人/授权代表:__________________________________
- 法人身份证号:________________________________________
- 联系人电话:________________________________________
- - 乙方(服务方):四川数字世界文化科技有限公司
- 统一社会信用代码:91510100MACHFBAG0L
- 联系地址:四川省成都市高新区盛兴街518号
- 联系人/授权代表:文本文本
- 法人身份证号:1111111111
- 联系人电话:12345671111
- 鉴于:
- 甲方系依法设立并合法存续的游戏公司,享有游戏《文本名称》(暂定名,以游戏在上线平台实际名称为准,以下简称“该游戏产品”)的全部著作权及发行、运营该游戏产品所需的所有商标权及其他合法权利,或已得到合法权利人的合法、完整、有效及可转授权的授权,拥有游戏产品的合法知识产权。拟对其游戏产品进行专业评估,以便向银行申请贷款等融资活动。
- 产权信息:
- 计算机软件著作权登记号:________________________;
- 资产编号:________________________;
- 游戏版号:________________________;
-
- 乙方系一家具备合法资质、以游戏产业为主业的国有全资国家级科技型企业,以游戏数字资产管理、游戏发行运营、数字资产评估服务等为主要业务。拥有丰富的游戏行业评估经验和专业的评估团队,能够为甲方提供游戏产品评估服务并出具评估报告并上链。本评估报告经上链后,可溯源、不可篡改,作为可信数字资产应用参考有效依据。
- 甲乙双方经平等协商,在真实、充分地表达各自意愿的基础上,根据《中华人民共和国民法典》及相关法律法规的规定,就该游戏产品评估服务事宜达成如下协议,并由双方共同恪守:
- 第一条 服务内容
- 1.1 乙方接受甲方委托,为该游戏产品提供专业的评估服务,并出具《游戏产品评估报告》(以下简称“评估报告”)。
- 1.2 评估服务内容包括但不限于:游戏产品的市场价值分析、技术可行性评估、商业化潜力评估、游戏质量评估等专业评估内容。
- 1.3 评估报告将作为甲方向银行等金融机构申请贷款时的参考材料之一,乙方不对甲方能否成功获得贷款作出任何承诺或保证。
- 第二条 服务费用及支付方式
- 2.1 本次游戏产品评估服务费用为人民币壹仟元整(¥1,000.00元)。
- 2.2 甲方应通过乙方COG游戏可信资产服务平台提供的二维码支付方式完成服务费用的支付。
- 2.3 甲方完成扫码付费后,本协议即生效,乙方开始为甲方提供评估服务。
- 第三条 服务期限及交付
- 3.1 乙方应在甲方完成付费后的1个工作日内完成评估报告的编制工作。
- 3.2 评估报告完成后,甲方可通过乙方平台个人中心—游戏产品评估确权页面中进行下载。
- 3.3 如因甲方提供的游戏产品资料不完整、不准确或存在虚假陈述,导致评估工作无法正常进行或评估报告无法按时交付的,交付期限相应顺延,乙方不承担违约责任。
- 第四条 甲方的权利与义务
- 4.1 甲方有权要求乙方按照本协议约定提供评估服务,并按时获取评估报告。
- 4.2 甲方应向乙方提供评估所需的真实、完整、准确的游戏产品相关资料,包括但不限于游戏产品说明、技术文档、运营数据、知识产权证明等。
- 4.3 甲方应按照本协议约定及时支付服务费用。
- 4.4 甲方应对乙方提供的评估报告内容予以保密,未经乙方书面同意,不得将评估报告用于本协议约定以外的其他用途。
- 第五条 乙方的权利与义务
- 5.1 乙方有权按照本协议约定收取服务费用。
- 5.2 乙方应按照行业标准和专业规范,独立、客观、公正地为甲方提供评估服务,并出具评估报告。
- 5.3 乙方应对甲方提供的游戏产品资料及评估过程中知悉的甲方商业秘密予以保密,未经甲方书面同意,不得向任何第三方披露。
- 5.4 乙方应确保评估报告的内容真实,但评估报告中的结论和意见仅供银行参考,不构成对游戏产品价值的绝对保证。
- 第六条 知识产权
- 6.1 甲方提供的游戏产品及相关资料的知识产权归甲方所有。
- 6.2 乙方出具的评估报告的著作权归乙方所有,甲方获得该评估报告的使用权,使用范围限于向银行等金融机构申请贷款。
- 第七条 保密条款
- 7.1 双方应对在履行本协议过程中知悉的对方商业秘密、技术秘密及其他保密信息予以保密。
- 7.2 保密义务不因本协议的终止而失效,双方应持续承担保密义务。
- 7.3 如因一方违反保密义务给对方造成损失的,违约方应承担相应的赔偿责任。
- 第八条 协议的变更与终止
- 8.1 本协议的任何变更或补充,须经双方协商一致。
- 8.2 甲方申请退款后,本协议即行终止,乙方不再提供评估服务。
- 8.3 协议终止后,双方应按照本协议约定履行保密义务,已支付的款项将按原路退回。
- 第九条 违约责任
- 9.1 任何一方违反本协议约定的,应承担相应的违约责任,并赔偿由此给对方造成的直接经济损失。
- 9.2 因不可抗力导致本协议无法履行的,双方互不承担违约责任,但应及时通知对方并提供相关证明。
- 第十条 争议解决
- 10.1 本协议的订立、效力、解释、履行和争议解决均适用中华人民共和国法律。
- 10.2 因本协议引起的或与本协议有关的任何争议,双方应首先通过友好协商解决;协商不成的,任何一方均有权向乙方所在地有管辖权的人民法院提起诉讼。
- 第十一条 其他
- 11.1 本协议自甲方完成扫码付费之日起生效。
- 11.2 本协议一式两份,甲乙双方各执一份,具有同等法律效力。
- 11.3 本协议未尽事宜,双方可另行协商签订补充协议,补充协议与本协议具有同等法律效力。
-
- 乙方(盖章):
- 授权代表(签字):
- 日期: 年 月 日
-
- 甲方授权代表(签字):
- 日期: 年 月 日
-
-
-
- - 我已阅读并同意协议内容 - - - 同意协议并签字 - -
-
- - - - -
-
- 请在下方进行签名: -
- - - -
- 请用鼠标在框内签署您的名字。 -
- - - - -
-
- - - - - - - - +
+
+ diff --git a/pages/digital_assets - 副本.vue b/pages/digital_assets - 副本.vue new file mode 100644 index 0000000..9a3da79 --- /dev/null +++ b/pages/digital_assets - 副本.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/pages/login - 副本.vue b/pages/login - 副本.vue new file mode 100644 index 0000000..c0e1e39 --- /dev/null +++ b/pages/login - 副本.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/pages/login.vue b/pages/login.vue index 4d47d85..aa5488d 100644 --- a/pages/login.vue +++ b/pages/login.vue @@ -17,7 +17,7 @@ - + {{dynacodeData.codeText }} @@ -25,6 +25,14 @@ + + + + + + + + + 平台通知 - + --> diff --git a/vue.config.js b/vue.config.js index 433c660..a75d199 100644 --- a/vue.config.js +++ b/vue.config.js @@ -32,7 +32,7 @@ module.exports = { devServer: { proxy: { '/api': { - target: 'https://static-cog.scszsj.com', // 目标服务器地址 + target: 'https://cogapitest.scszsj.com', // 目标服务器地址 https://cogapitest.scszsj.com https://static-cog.scszsj.com changeOrigin: true, pathRewrite: { '^/api': ''