From b4146f812b05c7fe11e4bd8b45805b787df81ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=AF=85?= <1335909236@qq.com> Date: Mon, 1 Dec 2025 15:37:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=B5=E5=AD=90=E7=AD=BE?= =?UTF-8?q?=E7=BA=A6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/community.js | 2 + packages/customerService/contract/index.css | 430 +++++++ packages/customerService/contract/index.vue | 1159 +++++++++++++++++++ packages/customerService/sign/index.css | 116 ++ packages/customerService/sign/index.vue | 312 +++++ packages/storeManagement/index/index.vue | 5 + pages.json | 7 + 7 files changed, 2031 insertions(+) create mode 100644 packages/customerService/contract/index.css create mode 100644 packages/customerService/contract/index.vue create mode 100644 packages/customerService/sign/index.css create mode 100644 packages/customerService/sign/index.vue diff --git a/api/community.js b/api/community.js index 4f128427..852b63d9 100644 --- a/api/community.js +++ b/api/community.js @@ -57,4 +57,6 @@ export const apiArr = { getShopList: "/api/v2/wechat/merchant-crud-list/by-user", //根据用户获取商家列表 + + ecApply: "/api/v2/wechat/lkl-split-business/ec-apply", //电子合同申请 }; diff --git a/packages/customerService/contract/index.css b/packages/customerService/contract/index.css new file mode 100644 index 00000000..b40e17c3 --- /dev/null +++ b/packages/customerService/contract/index.css @@ -0,0 +1,430 @@ +/* 全局样式重置与基础设置 */ +* { + margin: 0; + padding: 0; + font-family: "SimSun", "宋体", serif; +} + +page { + padding-bottom: 0; +} + +.contract-container { + width: 100%; + background-color: #fff; + padding: 15px; + box-sizing: border-box; + margin: 0 auto; + position: relative; + word-break: break-word; + overflow-x: hidden; +} + +/* 导航栏样式 */ +.nav { + display: flex; + justify-content: space-between; + align-items: center; + padding: 20rpx 30rpx; + border-bottom: 1px solid #e5e5e5; + background-color: #fafafa; +} + +.nav-title { + font-size: 32rpx; + font-weight: bold; + color: #333333; +} + +.save-btn { + font-size: 26rpx; + color: #0066cc; + background: transparent; + padding: 0; + margin: 0; +} + +/* 滚动容器样式 */ +.contract-scroll { + width: 100%; + padding: 20rpx 30rpx; + box-sizing: border-box; +} + +/* 合同内容区基础样式 */ +.contract-content { + width: 100%; + line-height: 1.8; + font-size: 28rpx; + color: #333333; +} + +/* 合同头部样式 */ +.header { + margin-bottom: 40rpx; + /* text-align: center; */ +} + +.qrcode-tip { + font-size: 24rpx; + color: #666666; + margin-bottom: 20rpx; +} + +.contract-title { + font-size: 36rpx; + font-weight: bold; + margin: 20rpx 0; + color: #333333; +} + +.party-info { + text-align: left; + margin: 30rpx 0; + line-height: 2; +} + +.preamble { + text-indent: 56rpx; + /* 首行缩进2字符(28rpx*2) */ + margin-bottom: 20rpx; +} + +/* 条款通用样式 */ +.clauses { + margin-bottom: 60rpx; +} + +.clause { + margin-bottom: 40rpx; +} + +.clause-num { + font-size: 30rpx; + font-weight: bold; + margin: 20rpx 0; + color: #333333; +} + +.clause-content { + margin-left: 40rpx; + line-height: 1.8; +} + +/* 服务项样式 */ +.service-item { + font-size: 28rpx; + font-weight: 600; + margin: 20rpx 0 10rpx 0; + display: block; +} + +.service-desc { + text-indent: 56rpx; + margin: 10rpx 0; + display: block; +} + +.service-list { + list-style: disc; + margin-left: 50rpx; + margin-bottom: 20rpx; + padding-left: 20rpx; +} + +.service-list li { + margin-bottom: 15rpx; + line-height: 1.8; + display: block; +} + +/* 表格通用样式 */ +.fee-table, +.info-table { + width: 100%; + border-collapse: collapse; + margin: 20rpx 0; + font-size: 26rpx; +} + +.fee-table th, +.fee-table td, +.info-table th, +.info-table td { + border: 1px solid #333333; + padding: 12rpx 8rpx; + text-align: center; +} + +.fee-table th, +.info-table th, +.info-table .table-label { + background-color: #f5f5f5; + font-weight: bold; +} + +/* 填写项样式 */ +.fill-input { + border: 1px solid #ddd; + border-radius: 4rpx; + padding: 0 8px; + margin: 0 4rpx; + font-size: 13px; + color: #333333; + background-color: #ffffff; + flex-shrink: 0; + height: 28px; + width: 80px; + box-sizing: border-box; + vertical-align: middle; +} + +.fill-tiny { + width: 60px; + /* 小尺寸输入框(如百分比、台数) */ + text-align: center; +} + +.fill-small { + width: 140px; + /* 中尺寸输入框(如银行名称、其他说明) */ +} + +.fill-normal { + width: 300rpx; + /* 常规尺寸输入框(如商户名称、地址) */ +} + +.fill-date { + width: 220rpx; + /* 日期输入框 */ + text-align: center; +} + +.fill-table { + width: 100%; + /* 表格内输入框:填满单元格 */ + margin: 0; + box-sizing: border-box; +} + +/* 单选/多选样式 */ +.radio-label, +.checkbox-label { + margin-right: 25rpx; + margin-bottom: 15rpx; + display: inline-flex; + align-items: center; + font-size: 26rpx; + color: #333; + flex-wrap: wrap; + gap: 8rpx; + line-height: 1.6; +} + +/* 单选/多选组容器:控制整体间距 */ +.radio-group-container, +.checkbox-group-container { + display: flex; + flex-direction: column; + gap: 15rpx; + margin: 15rpx 0; + width: 100%; +} + +/* 单个单选/多选选项:垂直居中对齐,统一高度 */ +.radio-label, +.checkbox-label { + display: flex; + align-items: flex-start; + margin-right: 0; + margin-bottom: 0; + word-break: break-word; + max-width: 100%; + flex-wrap: wrap; + gap: 8rpx; + /* radio/checkbox 与文本的间距 */ + font-size: 26rpx; + color: #333; + padding: 8rpx 0; + line-height: 1.8; +} + +/* 商户更名输入框:仅在选中时显示,与文本对齐 */ +#input-original-name { + margin-left: 10rpx; + /* 与“商户更名”文本的间距 */ + margin-top: 0; + /* 清除默认margin,确保垂直居中 */ +} + +/* 备注/说明文本样式 */ +.note, +.mode-note, +.risk-note, +.deduct-note, +.table-note, +.appendix-footnote { + font-size: 24rpx; + color: #666666; + margin: 10rpx 0; + text-indent: 56rpx; +} + +/* 签字区域样式 */ +.sign-main, +.sign-appendix { + display: flex; + justify-content: space-between; + margin: 60rpx 0; + padding: 0 40rpx; +} + +.sign-party { + text-align: center; + width: 45%; + line-height: 2.2; +} + +/* 附件通用样式 */ +.appendix { + margin: 80rpx 0; + padding: 20rpx; + border-top: 1px dashed #cccccc; +} + +.appendix-title { + font-size: 32rpx; + font-weight: bold; + text-align: center; + margin: 30rpx 0; + color: #333333; +} + +.appendix-subtitle { + font-size: 28rpx; + font-weight: bold; + margin: 30rpx 0 15rpx; + color: #333333; +} + +.appendix-note { + font-size: 24rpx; + color: #666666; + text-align: right; + margin-bottom: 30rpx; +} + +/* 授权书内容样式 */ +.authorization-content { + text-indent: 56rpx; + margin: 15rpx 0; + line-height: 1.8; +} + +/* 提交按钮样式 */ +.submit-btn { + width: 90%; + margin: 0 auto; + background-color: #0066cc; + color: #ffffff; + font-size: 32rpx; + padding: 18rpx 0; + border-radius: 12rpx; + font-weight: 600; +} + +/* 适配小程序端滚动条样式(隐藏默认滚动条) */ +::-webkit-scrollbar { + width: 0; + height: 0; + color: transparent; +} + +/* 补充样式优化 */ +.radio-group-container { + display: flex; + flex-wrap: wrap; + gap: 20rpx; + margin: 10rpx 0; +} + +.radio-label, +.checkbox-label { + display: inline-flex; + align-items: center; + margin-right: 25rpx; + margin-bottom: 10rpx; + font-size: 26rpx; +} + +.checkbox-group { + display: flex; + flex-wrap: wrap; + gap: 15rpx; +} + +.service-list li { + margin-bottom: 15rpx; + line-height: 1.6; +} + +.fee-label { + display: block; + margin: 8rpx 0; +} + +.mode-item { + margin: 15rpx 0; + text-indent: 56rpx; +} + +.mode-note { + font-size: 24rpx; + color: #666; + margin: 10rpx 0; + text-indent: 56rpx; +} + +.table-note { + font-size: 24rpx; + color: #666; + margin: 10rpx 0 5rpx 0; +} + +.authorization-content { + text-indent: 56rpx; + margin: 15rpx 0; + line-height: 1.8; +} + +.sign-appendix { + display: flex; + flex-direction: column; + gap: 20rpx; + margin: 40rpx 0; + padding: 0 20rpx; +} + +.sign-appendix p { + line-height: 2; + font-size: 26rpx; + display: flex; + align-items: center; + gap: 10rpx; +} + +/* 优化表格内输入框 */ +.info-table .fill-input, +.fee-table .fill-input { + box-sizing: border-box; + border: 1px solid #0066cc; + margin: 2rpx; +} + +/* 优化单选/多选按钮对齐 */ +radio, +checkbox { + margin-right: 8rpx; + vertical-align: middle; +} \ No newline at end of file diff --git a/packages/customerService/contract/index.vue b/packages/customerService/contract/index.vue new file mode 100644 index 00000000..9d839e50 --- /dev/null +++ b/packages/customerService/contract/index.vue @@ -0,0 +1,1159 @@ + + + + + \ No newline at end of file diff --git a/packages/customerService/sign/index.css b/packages/customerService/sign/index.css new file mode 100644 index 00000000..09daffe5 --- /dev/null +++ b/packages/customerService/sign/index.css @@ -0,0 +1,116 @@ +/* 合同申请表单样式 */ +.contract-apply-container { + padding: 30rpx; + min-height: 100vh; +} + +.page-header { + margin-bottom: 15rpx; +} + +page { + padding-bottom: 0rpx; +} + +.page-header h1 { + font-size: 36rpx; + font-weight: bold; + color: #333; + margin-bottom: 10rpx; +} + +.page-header .subtitle { + font-size: 28rpx; + color: #666; +} + +.contract-form { + background-color: #fff; + border-radius: 10rpx; + padding: 30rpx; + box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05); +} + +.form-item { + margin-bottom: 30rpx; +} + +.form-label { + font-size: 28rpx; + color: #333; + margin-bottom: 10rpx; + display: block; +} + +.form-label.required::after { + content: '*'; + color: #e64340; + margin-left: 4rpx; +} + +.form-input, +.form-select { + width: 100%; + height: 80rpx; + border: 1rpx solid #d9d9d9; + border-radius: 8rpx; + padding: 0 20rpx; + font-size: 28rpx; + box-sizing: border-box; + line-height: 80rpx; +} + +.form-input:focus, +.form-select:focus { + border-color: #409eff; + outline: none; +} + +.form-select { + appearance: none; + background: url('data:image/svg+xml;charset=utf-8,') no-repeat right 20rpx center; + background-size: 24rpx 24rpx; +} + +/* 按钮样式 */ +.sign-btn, +.submit-btn { + width: 100%; + height: 90rpx; + border: none; + border-radius: 45rpx; + font-size: 32rpx; + font-weight: bold; + margin-bottom: 20rpx; + transition: all 0.3s; + line-height: 90rpx; +} + +.sign-btn { + background-color: #f0f0f0; + color: #666; +} + +.sign-btn:active { + background-color: #e0e0e0; +} + +.submit-btn { + background-color: #409eff; + color: #fff; +} + +.submit-btn:active { + background-color: #66b1ff; +} + +/* 响应式调整 */ +@media screen and (max-width: 768px) { + .contract-apply-container { + padding: 20rpx; + } + + .contract-form { + padding: 20rpx; + } +} \ No newline at end of file diff --git a/packages/customerService/sign/index.vue b/packages/customerService/sign/index.vue new file mode 100644 index 00000000..8cbfbb63 --- /dev/null +++ b/packages/customerService/sign/index.vue @@ -0,0 +1,312 @@ + + + + + \ No newline at end of file diff --git a/packages/storeManagement/index/index.vue b/packages/storeManagement/index/index.vue index a659818a..d38d8be9 100644 --- a/packages/storeManagement/index/index.vue +++ b/packages/storeManagement/index/index.vue @@ -126,6 +126,11 @@ export default { image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/kefu0.png", name: "客服", url: "/packages/customerService/chattingRecords/index", + }, + { + image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/contract.png", + name: "电子签约", + url: "/packages/customerService/sign/index", } ], walletInfo: {}, diff --git a/pages.json b/pages.json index 23694e96..3b58cfd6 100644 --- a/pages.json +++ b/pages.json @@ -165,6 +165,13 @@ "navigationBarTitleText": "合作协议", "navigationBarBackgroundColor": "#fff" } + }, + { + "path": "sign/index", + "style": { + "navigationBarTitleText": "电子签约", + "navigationBarBackgroundColor": "#fff" + } } ] },