From 0bafa6aa253c9ef6f5cb24e9a24c5282860e4c59 Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期一, 30 三月 2026 11:44:37 +0800
Subject: [PATCH] 新增线上配置
---
ui/car_wx_app/pages/observeLaw/index.vue | 796 ++++++++++++++++++++++----------------------------------
1 files changed, 316 insertions(+), 480 deletions(-)
diff --git a/ui/car_wx_app/pages/observeLaw/index.vue b/ui/car_wx_app/pages/observeLaw/index.vue
index 05ad5b7..4c086d1 100644
--- a/ui/car_wx_app/pages/observeLaw/index.vue
+++ b/ui/car_wx_app/pages/observeLaw/index.vue
@@ -1,523 +1,359 @@
<template>
- <view class="container">
- <!-- 椤堕儴瀵艰埅鏍� -->
+ <view class="container">
+ <Nav title="绛剧讲閬电邯瀹堟硶鎵胯涔�" @back="goBack" />
- <Nav title="绛剧讲閬电邯瀹堟硶鎵胯涔�" customBack="pages/acknowledgement/index"></Nav>
-
- <!-- 鎵胯涔﹀唴瀹瑰尯鍩燂紙鍙粴鍔級 -->
- <scroll-view class="content-scroll" scroll-y="true">
- <view class="agreement-content">
- <text class="title">閬电邯瀹堟硶鎵胯涔�</text>
-
- <text class="paragraph">鍥犳湰浜哄湪棣欐腐鎵ц鍑鸿溅浠诲姟锛屼负鏀寔閰嶅悎鍏徃瀵规寔鍓嶅線棣欐腐鎵ц鍑鸿溅浠诲姟浜哄憳鐨勭鐞嗭紝鍏卞悓缁存姢鍥藉鍜屽叕鍙哥殑澹拌獕锛屾湰浜烘壙璇哄仛鍒帮細</text>
-
- <text class="heading">涓�銆�</text>
- <text
- class="paragraph">涓ユ牸閬靛畧涓崕浜烘皯鍏卞拰鍥姐�婃捣鍏虫硶銆嬨�併�婂嚭澧冨叆澧冪鐞嗘硶銆嬨�併�婂嚭澧冨叆澧冭竟闃叉鏌ユ潯渚嬨�嬶紝棣欐腐鐗瑰埆琛屾斂鍖烘湁鍏虫硶寰嬫硶瑙勫強鏈夊叧澶栦簨绾緥瑙勫畾锛屼繚瀹堝浗瀹跺強鍏徃鐨勫晢涓氭満瀵嗐��</text>
-
- <text class="heading">浜屻��</text>
- <text class="paragraph">涓ユ牸閬靛畧鐝犳捣甯傛眹鐣呬氦閫氭姇璧勬湁闄愬叕鍙�/鐝犳捣甯傛捣娓苯杞﹁揣杩愬叕鍙搞�婂嚭鍥斤紙澧冿級宸ヤ綔绠$悊鍔炴硶銆嬬瓑瑙勭珷鍒跺害銆�</text>
-
- <text class="heading">涓夈��</text>
- <text
- class="paragraph">淇濊瘉涓嶅埄鐢ㄨ荡娓墽琛屽叕鍔′箣渚胯繘琛屾湁鎹熷浗瀹躲�佸叕鍙稿舰璞″強澹拌獕绛夋椿鍔紝涓嶄粠浜嬪浗瀹舵硶寰嬫硶瑙勩�侀娓壒鍒鏀垮尯娉曞緥銆佷笂绾т富绠¢儴闂ㄦ垨鍏徃瑙勭珷鍒跺害绂佹鐨勪竴鍒囪涓哄強娲诲姩銆�</text>
-
- <text class="heading">鍥涖��</text>
- <text
- class="paragraph">淇濊瘉涓嶅湪鍑鸿溅浠诲姟鏃堕棿鍐呰繘琛屽嚭鍏ュ鏃呮父锛屼笉璧扮璐╃銆佷笉鎼哄甫杩濈鍝佸嚭鍏ュ锛屼笉缁勭粐鍙婁笉鍙備笌璧屽崥銆佹秹瓒宠壊鎯呭満鎵�銆佸伔寮曟浮绛夋椿鍔ㄣ�傚鏈夊彂鐜板叾浠栦汉鍛樻垨绾跨储娑夊強杩濇硶杩濊娲诲姩锛屽嵆鍚戝叕鍙告姤鍛娿��</text>
-
- <text class="heading">浜斻��</text>
- <text class="paragraph">涓诲姩閰嶅悎鍙e哺鍚勭鐞嗛儴闂ㄦ寚鎸ャ�佹鏌ャ�傛湇浠庡彛宀稿悇绠$悊閮ㄩ棬鎸囨尌銆佹鏌ワ紝鎸夎瀹氱嚎璺椹跺拰鍋滄斁杞﹁締锛屾湇浠庤皟搴﹀拰宸ヤ綔瀹夋帓銆�</text>
-
- <text class="heading">鍏��</text>
- <text
- class="paragraph">姣忔棩椹鹃┒杞﹁締鍑哄叆澧冨墠鍚庤嚜瑙夋鏌ワ紝濡傚彂鐜颁汉鍛樻垨浜ら�氳繍杈撳伐鍏锋綔鍦ㄥ畨鍏ㄧ鐞嗛殣鎮o紝鎴栨湁娑夊強鍚勫彛宀哥殑杩濇硶鐘姜浜哄憳銆佽溅杈嗚繘鍑哄姩鎬佺瓑淇℃伅鐨勶紝鍙婃椂鎶ュ憡鍏徃鍙婄彔娴峰嚭鍏ュ杈归槻妫�鏌ョ珯銆�</text>
-
- <text class="paragraph">鏈汉濡傛湁杩濆弽锛岃嚜鎰挎帴鍙楁硶寰嬫硶瑙勬垨鍏徃瑙勭珷鍒跺害鐨勫缃氥��</text>
-
- <text class="paragraph">鐗规鎵胯锛�</text>
-
- <text class="sign-line">鎵胯浜虹瀛楋細[ ]</text>
- <text class="sign-line">鏃ユ湡锛歔 ]</text>
- </view>
- </scroll-view>
-
- <!-- 搴曢儴鍥哄畾鍖哄煙锛堝嬀閫夋+鎸夐挳锛� -->
- <view class="bottom-fixed">
- <!-- 鍕鹃�夊尯鍩� -->
- <!-- <view class="agree-area">
- <view class="checkbox-group">
- <checkbox
- class="checkbox"
- :checked="isAgreed"
- @change="handleAgreeChange"
- ></checkbox>
- <text class="agree-text">鎴戝凡闃呰骞剁悊瑙d笂杩板唴瀹癸紝鑷効绛剧讲</text>
- <text class="required">*</text>
+ <scroll-view class="content-scroll" scroll-y>
+ <view class="agreement-content">
+ <text class="title">{{ agreementContent.title }}</text>
+ <text class="intro">{{ agreementContent.intro }}</text>
+ <view v-for="(clause, i) in agreementContent.clauses" :key="i" class="clause">
+ <text class="clause-number">{{ clause.number }}銆�</text>
+ <text class="clause-text">{{ clause.text }}</text>
</view>
- </view> -->
-
- <!-- 搴曢儴鎸夐挳 -->
- <view class="btn-group">
- <button class="cancel-btn" @click="navigateBack">涓婁竴姝�</button>
- <button class="next-btn" type="primary" @click="showPopup = true">濉啓鍐呭</button>
- </view>
+ <text class="footer">{{ agreementContent.footer }}</text>
+ <text class="ending">{{ agreementContent.ending }}</text>
+ <view class="signature">
+ <text v-for="(line, i) in agreementContent.signature" :key="i" class="sign-line">{{ line }}</text>
</view>
+ </view>
+ </scroll-view>
- <!-- <uni-popup ref="popup" background-color="#fff" @change="change">
- <view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }"><text
- class="text">popup 鍐呭</text></view>
- </uni-popup> -->
- <view class="popup-mask" v-if="showPopup" @click="showPopup = false"></view>
- <view class="popup-container" v-if="showPopup" style="height: 100%;" :class="{ 'popup-show': showPopup }">
- <view class="popup-title">瀹炲悕淇℃伅纭</view>
-
- <!-- uView 琛ㄥ崟缁勪欢 -->
- <!-- <u-form ref="verifyForm" :model="formData" :rules="rules" labelPosition="left" labelWidth="180rpx">
- <u-form-item label="鏈汉濮撳悕" prop="name" required>
- <u-input v-model="formData.name" placeholder="璇疯緭鍏ュ鍚�" maxlength="20"></u-input>
- </u-form-item>
-
- <u-form-item label="韬唤璇佸彿" prop="idCard" required>
- <u-input v-model="formData.idCard" placeholder="璇疯緭鍏�18浣嶈韩浠借瘉鍙�" maxlength="18"
- keyboard-type="number"></u-input>
- </u-form-item>
-
- <u-form-item label="鏃ユ湡" prop="date" required>
- <uni-datetime-picker type="datetime" v-model="formData.date" style="flex: 1;"
- @change="onDateTimeChange">
- </uni-datetime-picker>
- </u-form-item>
-
-
-
- </u-form> -->
- <view class="content" style="padding: 10rpx;">
- <view style="border: 1rpx dashed #555555;">
- <Signature ref="sig" v-model="v"></Signature>
- </view>
- <u-button class="sign-btn" @click="startSign" type="primary" plain>寮�濮嬬鍚�</u-button>
-
- <!-- <text style="overflow-wrap: break-word;">{{ v }}</text> -->
- </view>
- <!-- 鎵嬪姩绛惧悕鍖哄煙 -->
- <!-- <view class="signature-area">
- <view class="signature-title">鎵嬪姩绛惧悕</view>
- <view class="signature-box">
- <text class="signature-hint" v-if="!v">瑕佹眰锛氬瓧杩规竻鏅帮紝涓庤韩浠借瘉涓�鑷�</text>
- <view class="signature-preview" v-if="v">
- <text>绛惧悕棰勮</text>
- </view>
- </view>
- </view> -->
-
- <!-- 搴曢儴鎸夐挳 -->
- <view class="btn-group">
- <u-button class="cancel-btn" @click="showPopup = false" type="info" plain>
- 鍙栨秷
- </u-button>
- <u-button class="submit-btn" @click="handleSubmit" type="primary">
- 鎻愪氦
- </u-button>
- </view>
- </view>
-
+ <!-- 搴曢儴鎸夐挳 -->
+ <view class="bottom-bar">
+ <view class="btn-group">
+ <button class="cancel-btn" @tap="goBack">涓婁竴姝�</button>
+ <button class="confirm-btn" type="primary" @tap="openSign">绛惧悕纭</button>
+ </view>
</view>
+
+ <!-- 绛惧悕缁勪欢锛堝叏灞忚鐩栧眰锛屼笉宓屽鍦ㄥ脊绐楀唴锛岄伩鍏嶅眰绾у啿绐侊級 -->
+ <Signature ref="signatureRef" v-model="signatureData" />
+
+ <!-- 绛惧悕棰勮纭寮圭獥锛堢瀹屽悕鍚庡睍绀猴級 -->
+ <u-popup :show="showPreview" round="12" mode="center" :closeable="true" @close="showPreview = false">
+ <view v-if="showPreview" class="preview-popup">
+ <text class="preview-title">绛惧悕棰勮</text>
+ <view class="preview-img-wrap">
+ <image v-if="signatureData" :src="signatureData" mode="aspectFit" class="preview-img" />
+ <text v-else class="no-sign">鏆傛棤绛惧悕</text>
+ </view>
+ <view class="preview-btns">
+ <button class="re-sign-btn" @tap="reSign">閲嶆柊绛惧悕</button>
+ <button class="submit-btn" type="primary" :loading="submitting" @tap="handleSubmit">纭鎻愪氦</button>
+ </view>
+ </view>
+ </u-popup>
+ </view>
</template>
<script>
import Signature from '@/components/sin-signature/index.vue'
-import { carUploadTrip } from "@/common/examine";
+import { carUploadTrip } from '@/common/examine'
+
+const AGREEMENT_CONTENT = Object.freeze({
+ title: '閬电邯瀹堟硶鎵胯涔�',
+ intro: '鍥犳湰浜哄湪棣欐腐鎵ц鍑鸿溅浠诲姟锛屼负鏀寔閰嶅悎鍏徃瀵规寔鍓嶅線棣欐腐鎵ц鍑鸿溅浠诲姟浜哄憳鐨勭鐞嗭紝鍏卞悓缁存姢鍥藉鍜屽叕鍙哥殑澹拌獕锛屾湰浜烘壙璇哄仛鍒帮細',
+ clauses: [
+ { number: '涓�', text: '涓ユ牸閬靛畧涓崕浜烘皯鍏卞拰鍥姐�婃捣鍏虫硶銆嬨�併�婂嚭澧冨叆澧冪鐞嗘硶銆嬨�併�婂嚭澧冨叆澧冭竟闃叉鏌ユ潯渚嬨�嬶紝棣欐腐鐗瑰埆琛屾斂鍖烘湁鍏虫硶寰嬫硶瑙勫強鏈夊叧澶栦簨绾緥瑙勫畾锛屼繚瀹堝浗瀹跺強鍏徃鐨勫晢涓氭満瀵嗐��' },
+ { number: '浜�', text: '涓ユ牸閬靛畧鐝犳捣甯傛眹鐣呬氦閫氭姇璧勬湁闄愬叕鍙�/鐝犳捣甯傛捣娓苯杞﹁揣杩愬叕鍙搞�婂嚭鍥斤紙澧冿級宸ヤ綔绠$悊鍔炴硶銆嬬瓑瑙勭珷鍒跺害銆�' },
+ { number: '涓�', text: '淇濊瘉涓嶅埄鐢ㄨ荡娓墽琛屽叕鍔′箣渚胯繘琛屾湁鎹熷浗瀹躲�佸叕鍙稿舰璞″強澹拌獕绛夋椿鍔紝涓嶄粠浜嬪浗瀹舵硶寰嬫硶瑙勩�侀娓壒鍒鏀垮尯娉曞緥銆佷笂绾т富绠¢儴闂ㄦ垨鍏徃瑙勭珷鍒跺害绂佹鐨勪竴鍒囪涓哄強娲诲姩銆�' },
+ { number: '鍥�', text: '淇濊瘉涓嶅湪鍑鸿溅浠诲姟鏃堕棿鍐呰繘琛屽嚭鍏ュ鏃呮父锛屼笉璧扮璐╃銆佷笉鎼哄甫杩濈鍝佸嚭鍏ュ锛屼笉缁勭粐鍙婁笉鍙備笌璧屽崥銆佹秹瓒宠壊鎯呭満鎵�銆佸伔寮曟浮绛夋椿鍔ㄣ�傚鏈夊彂鐜板叾浠栦汉鍛樻垨绾跨储娑夊強杩濇硶杩濊娲诲姩锛屽嵆鍚戝叕鍙告姤鍛娿��' },
+ { number: '浜�', text: '涓诲姩閰嶅悎鍙e哺鍚勭鐞嗛儴闂ㄦ寚鎸ャ�佹鏌ャ�傛湇浠庡彛宀稿悇绠$悊閮ㄩ棬鎸囨尌銆佹鏌ワ紝鎸夎瀹氱嚎璺椹跺拰鍋滄斁杞﹁締锛屾湇浠庤皟搴﹀拰宸ヤ綔瀹夋帓銆�' },
+ { number: '鍏�', text: '姣忔棩椹鹃┒杞﹁締鍑哄叆澧冨墠鍚庤嚜瑙夋鏌ワ紝濡傚彂鐜颁汉鍛樻垨浜ら�氳繍杈撳伐鍏锋綔鍦ㄥ畨鍏ㄧ鐞嗛殣鎮o紝鎴栨湁娑夊強鍚勫彛宀哥殑杩濇硶鐘姜浜哄憳銆佽溅杈嗚繘鍑哄姩鎬佺瓑淇℃伅鐨勶紝鍙婃椂鎶ュ憡鍏徃鍙婄彔娴峰嚭鍏ュ杈归槻妫�鏌ョ珯銆�' }
+ ],
+ footer: '鏈汉濡傛湁杩濆弽锛岃嚜鎰挎帴鍙楁硶寰嬫硶瑙勬垨鍏徃瑙勭珷鍒跺害鐨勫缃氥��',
+ ending: '鐗规鎵胯锛�',
+ signature: ['鎵胯浜虹瀛楋細[ ]', '鏃ユ湡锛歔 ]']
+})
+
export default {
- data() {
- return {
- url: '',
- v: '',
- // 鎺у埗寮圭獥鏄剧ず
- showPopup: false,
- uploadIshow: false,
- // 琛ㄥ崟鏁版嵁
- formData: {
- name: '',
- idCard: '',
- date: ''
- },
- // 绛惧悕鐘舵��
- hasSignature: false,
- // 琛ㄥ崟楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'blur' }
- ],
- idCard: [
- { required: true, message: '璇疯緭鍏ヨ韩浠借瘉鍙�', trigger: 'blur' },
- {
- pattern: /(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
- message: '璇疯緭鍏ユ纭殑18浣嶈韩浠借瘉鍙�',
- trigger: 'blur'
- }
- ],
- date: [
- { required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'blur' }
- ]
- },
- // 鍏朵粬鏁版嵁淇濇寔涓嶅彉
- signatureUrl: '', // 绛惧悕鍥剧墖鍦板潃
- hasSignature: false, // 绛惧悕鐘舵��
- // 鏂板锛氳褰曞師濮嬬鍚嶏紝鐢ㄤ簬閲嶆柊绛惧悕鍔熻兘
- originalSignature: ''
- };
- },
- components: {
- Signature,
- },
- methods: {
- async startSign() {
- let s = await this.$refs.sig.getSyncSignature();
- console.log('缁勪欢鐗堟湰', this.$refs.sig.VERSION);
- console.log('绛惧悕鏁版嵁', s);
- },
- // 杩斿洖涓婁竴椤�
- navigateBack() {
- uni.navigateTo({
- url: '/pages/acknowledgement/index?uploadIshow=' + this.uploadIshow
- });
- },
- // 澶勭悊绛惧悕鍙樺寲锛堜慨鏀瑰悗锛�
- handleSignatureChange(url) {
- console.log(url);
- this.signatureUrl = url;
- this.originalSignature = url; // 淇濆瓨鍘熷绛惧悕
- this.hasSignature = !!url; // 鏈夌鍚嶆椂鏇存柊鐘舵��
- },
- // 鎻愪氦琛ㄥ崟鏂规硶涓鍚嶉獙璇侀儴鍒嗕繚鎸佷笉鍙�
- handleSubmit() {
- if (this.v == '') {
- return uni.showToast({ title: '璇峰畬鎴愮鍚�', icon: 'none' });
- }
- const form = uni.getStorageSync("signContractForm");
- form.signImg = this.v
-
- carUploadTrip(form).then((res) => {
- if (res == 1) {
- this.uploadIshow =true
- uni.showToast({ title: '鎻愪氦鎴愬姛', icon: 'none' });
- this.v = ''
- this.showPopup = false;
- setTimeout(() => {
- wx.navigateTo({
- url: '/pages/examine/index?id=' + form.dispatchOrderId+'&name='+'涓婁紶琛岀▼'+'&router='+'pages/beReferred/index'
- });
- uni.removeStorageSync("signContractForm");
+ components: { Signature },
- }, 1000);
- }else {
- this.uploadIshow =false
- }
- });
-
-
- },
-
-
+ data() {
+ return {
+ agreementContent: AGREEMENT_CONTENT,
+ showPreview: false,
+ signatureData: '',
+ submitting: false,
+ formData: null
}
-};
+ },
+
+ onLoad() {
+ this.formData = uni.getStorageSync('signContractForm')
+ if (!this.formData) {
+ uni.showToast({ title: '鏈壘鍒扮缃蹭俊鎭�', icon: 'none' })
+ setTimeout(() => this.goBack(), 1500)
+ }
+ },
+
+ methods: {
+ goBack() {
+ const pages = getCurrentPages()
+ for (let i = pages.length - 2; i >= 0; i--) {
+ if (pages[i].route && pages[i].route.includes('pages/signContract')) {
+ uni.navigateBack({ delta: pages.length - 1 - i })
+ return
+ }
+ }
+ uni.navigateBack({ delta: 1 })
+ },
+
+ async openSign() {
+ try {
+ const data = await this.$refs.signatureRef.getSyncSignature()
+ if (data) {
+ this.signatureData = data
+ // 绛惧畬鍚嶅悗寮瑰嚭棰勮纭
+ this.$nextTick(() => { this.showPreview = true })
+ }
+ } catch {
+ uni.showToast({ title: '绛惧悕澶辫触', icon: 'none' })
+ }
+ },
+
+ async reSign() {
+ this.showPreview = false
+ this.signatureData = ''
+ // 绛夊脊绐楀叧闂悗鍐嶆墦寮�绛惧悕
+ setTimeout(() => { this.openSign() }, 300)
+ },
+
+ async handleSubmit() {
+ if (!this.signatureData) {
+ return uni.showToast({ title: '璇峰畬鎴愮鍚�', icon: 'none' })
+ }
+
+ this.submitting = true
+ uni.showLoading({ title: '鎻愪氦涓�...' })
+
+ try {
+ const form = { ...this.formData, signImg: this.signatureData }
+ const res = await carUploadTrip(form)
+
+ if (res === 1) {
+ uni.showToast({ title: '鎻愪氦鎴愬姛', icon: 'success' })
+ this.showPreview = false
+ uni.removeStorageSync('signContractForm')
+
+ // 璁剧疆鍒锋柊鏍囧織锛岃 operate 椤甸潰鐭ラ亾闇�瑕佸埛鏂版暟鎹�
+ uni.setStorageSync('needRefreshOperate', true)
+
+ // 杩斿洖鍒� examine 椤甸潰
+ setTimeout(() => {
+ const pages = getCurrentPages()
+ for (let i = pages.length - 2; i >= 0; i--) {
+ if (pages[i].route && pages[i].route.includes('pages/examine')) {
+ uni.navigateBack({ delta: pages.length - 1 - i })
+ return
+ }
+ }
+ uni.navigateBack({ delta: 1 })
+ }, 1000)
+ } else {
+ uni.showToast({ title: '鎻愪氦澶辫触', icon: 'none' })
+ }
+ } catch (err) {
+ uni.showToast({ title: err.message || '鎻愪氦澶辫触', icon: 'none' })
+ } finally {
+ this.submitting = false
+ uni.hideLoading()
+ }
+ }
+ }
+}
</script>
<style scoped>
.container {
- width: 100%;
- min-height: 100vh;
- background-color: #ffffff;
- display: flex;
- flex-direction: column;
- /* 鐣欏嚭搴曢儴鍥哄畾鍖哄煙绌洪棿 */
- padding-bottom: 200rpx;
- box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+ background-color: #ffffff;
}
-/* 瀵艰埅鏍忔牱寮� */
-.nav-bar {
- height: 88rpx;
- display: flex;
- align-items: center;
- padding: 0 30rpx;
- border-bottom: 1rpx solid #e5e5e5;
- position: relative;
- z-index: 10;
-}
-
-.back-btn image {
- width: 34rpx;
- height: 34rpx;
-}
-
-.nav-title {
- flex: 1;
- text-align: center;
- font-size: 34rpx;
- color: #333333;
- font-weight: 500;
-}
-
-/* 婊氬姩鍐呭鍖� */
.content-scroll {
- flex: 1;
- padding: 30rpx;
- box-sizing: border-box;
- /* 閬垮厤鍐呭琚簳閮ㄥ浐瀹氬尯閬尅 */
- padding-bottom: 220rpx;
+ flex: 1;
+ padding: 30rpx;
+ padding-bottom: 180rpx;
+ box-sizing: border-box;
}
+/* 鎵胯涔﹀唴瀹� */
.agreement-content {
- line-height: 1.8;
- width: 100%;
- height: calc(100vh - 200rpx);
+ line-height: 1.8;
}
.title {
- display: block;
- font-size: 32rpx;
- color: #333333;
- font-weight: 600;
- text-align: center;
- margin: 0 0 40rpx 0;
- padding-bottom: 20rpx;
- border-bottom: 1rpx solid #f0f0f0;
+ display: block;
+ font-size: 34rpx;
+ color: #303133;
+ font-weight: 600;
+ text-align: center;
+ margin-bottom: 30rpx;
+ padding-bottom: 20rpx;
+ border-bottom: 1rpx solid #f0f0f0;
}
-.heading {
- display: inline;
- font-size: 28rpx;
- color: #333333;
- font-weight: 500;
+.intro {
+ display: block;
+ font-size: 28rpx;
+ color: #606266;
+ margin-bottom: 20rpx;
+ text-indent: 2em;
}
-.paragraph {
- display: block;
- font-size: 28rpx;
- color: #666666;
- margin-bottom: 20rpx;
- text-indent: 0;
- /* 姝ゅ鏃犻渶棣栬缂╄繘锛屼笌鏉℃缂栧彿閰嶅悎 */
+.clause {
+ margin-bottom: 15rpx;
+}
+
+.clause-number {
+ font-size: 28rpx;
+ color: #303133;
+ font-weight: 500;
+}
+
+.clause-text {
+ font-size: 28rpx;
+ color: #606266;
+}
+
+.footer,
+.ending {
+ display: block;
+ font-size: 28rpx;
+ color: #606266;
+ margin-top: 20rpx;
+ text-indent: 2em;
+}
+
+.ending {
+ font-weight: 500;
+ color: #303133;
+}
+
+.signature {
+ margin-top: 40rpx;
}
.sign-line {
- display: block;
- font-size: 28rpx;
- color: #666666;
- margin-top: 30rpx;
- text-align: right;
- padding-right: 50rpx;
+ display: block;
+ font-size: 28rpx;
+ color: #606266;
+ margin-top: 15rpx;
+ text-align: right;
+ padding-right: 30rpx;
}
-/* 搴曢儴鍥哄畾鍖哄煙 */
-.bottom-fixed {
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: #ffffff;
- border-top: 1rpx solid #f5f5f5;
- z-index: 99;
+/* 搴曢儴鏍� */
+.bottom-bar {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #ffffff;
+ border-top: 1rpx solid #f0f0f0;
+ z-index: 99;
+ padding-bottom: env(safe-area-inset-bottom);
}
-/* 鍕鹃�夊尯鍩� */
-.agree-area {
- padding: 20rpx 30rpx;
-}
-
-.checkbox-group {
- display: flex;
- align-items: center;
-}
-
-.checkbox {
- width: 30rpx;
- height: 30rpx;
- margin-right: 15rpx;
-}
-
-.agree-text {
- font-size: 28rpx;
- color: #333333;
- flex: 1;
-}
-
-.required {
- font-size: 28rpx;
- color: #ff4d4f;
-}
-
-/* 搴曢儴鎸夐挳 */
.btn-group {
- padding: 30rpx;
- display: flex;
- gap: 20rpx;
-}
-
-.cancel-btn {
- flex: 1;
- height: 90rpx;
- line-height: 90rpx;
- font-size: 32rpx;
- color: #333333;
- background-color: #ffffff;
- border: 1rpx solid #e5e5e5;
- border-radius: 8rpx;
-}
-
-.next-btn {
- flex: 1;
- height: 90rpx;
- line-height: 90rpx;
- font-size: 32rpx;
- color: #ffffff;
- background-color: #1677ff;
- border: none;
- border-radius: 8rpx;
-}
-
-.next-btn[disabled] {
- background-color: #c9d8e9;
- opacity: 0.7;
-}
-
-/* 瀹炲悕 */
-.container {
- width: 100%;
- min-height: 100vh;
- background-color: #f5f5f5;
- display: flex;
- flex-direction: column;
-}
-
-/* 涓婚〉闈㈡牱寮� */
-.main-content {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- gap: 30rpx;
- padding: 30rpx;
-}
-
-.open-btn {
- width: 60%;
- height: 80rpx;
- line-height: 80rpx;
- background-color: #1677ff;
- color: #ffffff;
- border-radius: 40rpx;
- font-size: 30rpx;
-}
-
-/* 寮圭獥鏍峰紡 */
-.popup-mask {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: rgba(0, 0, 0, 0.5);
- z-index: 998;
- transition: opacity 0.3s;
-}
-
-.popup-container {
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: #ffffff;
- border-top-left-radius: 20rpx;
- border-top-right-radius: 20rpx;
- z-index: 999;
- padding: 30rpx;
- box-sizing: border-box;
- transform: translateY(100%);
- transition: transform 0.3s ease-out;
- max-height: 90vh;
- overflow-y: auto;
-}
-
-.popup-show {
- transform: translateY(0);
-}
-
-.popup-title {
- font-size: 34rpx;
- color: #333333;
- font-weight: 600;
- text-align: center;
- margin-bottom: 40rpx;
- padding-bottom: 20rpx;
- border-bottom: 1rpx solid #f0f0f0;
-}
-
-/* 绛惧悕鍖哄煙 */
-.signature-area {
- display: flex;
- flex-direction: column;
- gap: 20rpx;
- margin-top: 20rpx;
- padding-top: 20rpx;
- border-top: 1rpx solid #f0f0f0;
-}
-
-.signature-title {
- font-size: 28rpx;
- color: #333333;
- margin-bottom: 10rpx;
-}
-
-.signature-box {
- width: 100%;
- height: 200rpx;
- border: 1rpx dashed #e5e5e5;
- border-radius: 8rpx;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.signature-hint {
- font-size: 26rpx;
- color: #999999;
- text-align: center;
-}
-
-.signature-preview {
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- background-color: #f9f9f9;
- font-size: 26rpx;
- color: #666666;
-}
-
-.sign-btn {
- margin-top: 10rpx;
-}
-
-/* 搴曢儴鎸夐挳 */
-.btn-group {
- display: flex;
- gap: 20rpx;
- margin-top: 40rpx;
+ display: flex;
+ gap: 20rpx;
+ padding: 20rpx 30rpx 20rpx;
}
.cancel-btn,
-.submit-btn {
- flex: 1;
- height: 90rpx;
- line-height: 90rpx;
- font-size: 32rpx;
+.confirm-btn {
+ flex: 1;
+ height: 88rpx;
+ line-height: 88rpx;
+ font-size: 30rpx;
+ border-radius: 12rpx;
+ border: none;
+ font-weight: 500;
}
-/* 绛惧悕鍖哄煙鏍峰紡 */
-/* 浠呬慨鏀圭鍚嶅尯鍩熺浉鍏虫牱寮� */
-</style>
\ No newline at end of file
+.cancel-btn {
+ color: #606266;
+ background-color: #f5f7fa;
+}
+
+.cancel-btn::after,
+.confirm-btn::after {
+ border: none;
+}
+
+.confirm-btn {
+ color: #fff;
+ background-color: #4285f4;
+}
+
+/* 绛惧悕棰勮寮圭獥 */
+.preview-popup {
+ width: 600rpx;
+ padding: 40rpx;
+}
+
+.preview-title {
+ display: block;
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #303133;
+ text-align: center;
+ margin-bottom: 30rpx;
+}
+
+.preview-img-wrap {
+ width: 100%;
+ height: 300rpx;
+ border: 2rpx dashed #dcdfe6;
+ border-radius: 12rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #fafafa;
+ overflow: hidden;
+}
+
+.preview-img {
+ width: 100%;
+ height: 100%;
+}
+
+.no-sign {
+ color: #c0c4cc;
+ font-size: 28rpx;
+}
+
+.preview-btns {
+ display: flex;
+ gap: 20rpx;
+ margin-top: 30rpx;
+}
+
+.re-sign-btn,
+.submit-btn {
+ flex: 1;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ border-radius: 10rpx;
+ border: none;
+}
+
+.re-sign-btn {
+ color: #606266;
+ background-color: #f5f7fa;
+}
+
+.re-sign-btn::after,
+.submit-btn::after {
+ border: none;
+}
+
+.submit-btn {
+ color: #fff;
+ background-color: #4285f4;
+}
+</style>
--
Gitblit v1.8.0