diff --git a/FrontCode1/vue/package-lock.json b/FrontCode1/vue/package-lock.json index f139c71..268cf94 100644 --- a/FrontCode1/vue/package-lock.json +++ b/FrontCode1/vue/package-lock.json @@ -1755,6 +1755,17 @@ "webpack-merge": "^4.2.2" }, "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646655305&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.nlark.com/debug/download/debug-4.3.2.tgz?cache=0&sync_timestamp=1625374648057&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-4.3.2.tgz", @@ -1764,11 +1775,52 @@ "ms": "2.1.2" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.nlark.com/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1629910562433&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fms%2Fdownload%2Fms-2.1.2.tgz", "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.5.0", + "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.5.0.tgz?cache=0&sync_timestamp=1628666727543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.5.0.tgz", + "integrity": "sha1-CcTgcSRmiZ40uZpoZSTxkWX7KJI=", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } } } }, @@ -10336,60 +10388,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.5.0", - "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.5.0.tgz?cache=0&sync_timestamp=1628666727543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.5.0.tgz", - "integrity": "sha1-CcTgcSRmiZ40uZpoZSTxkWX7KJI=", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646655305&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-router": { "version": "3.5.2", "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.2.tgz?cache=0&sync_timestamp=1628495505697&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.2.tgz", diff --git a/FrontCode1/vue/src/assets/01zhushuju_hangzhengquyu@3x.png b/FrontCode1/vue/src/assets/01zhushuju_hangzhengquyu@3x.png new file mode 100644 index 0000000..61fc575 Binary files /dev/null and b/FrontCode1/vue/src/assets/01zhushuju_hangzhengquyu@3x.png differ diff --git a/FrontCode1/vue/src/assets/918caidan_wenjian@3x.png b/FrontCode1/vue/src/assets/918caidan_wenjian@3x.png new file mode 100644 index 0000000..bba6e89 Binary files /dev/null and b/FrontCode1/vue/src/assets/918caidan_wenjian@3x.png differ diff --git a/FrontCode1/vue/src/assets/bumenguanli-3@3x.png b/FrontCode1/vue/src/assets/bumenguanli-3@3x.png new file mode 100644 index 0000000..d609e93 Binary files /dev/null and b/FrontCode1/vue/src/assets/bumenguanli-3@3x.png differ diff --git a/FrontCode1/vue/src/assets/style/flex.css b/FrontCode1/vue/src/assets/style/flex.css index c088223..2cbd99c 100644 --- a/FrontCode1/vue/src/assets/style/flex.css +++ b/FrontCode1/vue/src/assets/style/flex.css @@ -1,4 +1,5 @@ .flex { display: flex; justify-content: space-between; + align-items: center; } \ No newline at end of file diff --git a/FrontCode1/vue/src/assets/yanchurili@3x.png b/FrontCode1/vue/src/assets/yanchurili@3x.png new file mode 100644 index 0000000..572a8f6 Binary files /dev/null and b/FrontCode1/vue/src/assets/yanchurili@3x.png differ diff --git a/FrontCode1/vue/src/elementui/index.js b/FrontCode1/vue/src/elementui/index.js index cdb90a8..9a65de6 100644 --- a/FrontCode1/vue/src/elementui/index.js +++ b/FrontCode1/vue/src/elementui/index.js @@ -1,7 +1,8 @@ import Vue from 'vue' -import { Form, FormItem, Button } from 'element-ui' +import { Form, FormItem, Button, Card } from 'element-ui' Vue.use(Form) Vue.use(FormItem) -Vue.use(Button) \ No newline at end of file +Vue.use(Button) +Vue.use(Card) \ No newline at end of file diff --git a/FrontCode1/vue/src/main.js b/FrontCode1/vue/src/main.js index c59f16c..535e319 100644 --- a/FrontCode1/vue/src/main.js +++ b/FrontCode1/vue/src/main.js @@ -6,7 +6,7 @@ import '@/elementui' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import 'normalize.css/normalize.css' -import '@/assets/style/global.css' +// import '@/assets/style/global.css' import '@/assets/style/flex.css' Vue.use(ElementUI) diff --git a/FrontCode1/vue/src/views/compensate.vue b/FrontCode1/vue/src/views/compensate.vue index ef43b45..5181d0a 100644 --- a/FrontCode1/vue/src/views/compensate.vue +++ b/FrontCode1/vue/src/views/compensate.vue @@ -6,6 +6,7 @@ 身份证号码:{{ this.source.idCard }}
请选择您的征收项目
+
@@ -57,6 +58,10 @@ export default { text-align: center; margin-top: 10px; } + // 箭头 + > :nth-child(3) { + text-align: center; + } } > :nth-child(2) { padding: 10px; diff --git a/FrontCode1/vue/src/views/evaluate.vue b/FrontCode1/vue/src/views/evaluate.vue index ef43b45..7213b24 100644 --- a/FrontCode1/vue/src/views/evaluate.vue +++ b/FrontCode1/vue/src/views/evaluate.vue @@ -6,6 +6,7 @@ 身份证号码:{{ this.source.idCard }}
请选择您的征收项目
+
@@ -57,13 +58,17 @@ export default { text-align: center; margin-top: 10px; } + // 箭头 + > :nth-child(3) { + text-align: center; + } } > :nth-child(2) { padding: 10px; background-color: #f5faff; > :nth-child(1) { border: 1px solid black; - padding: 10px; + padding: 5px 10px; background-color: #ffffff; > :nth-child(1) { display: flex; diff --git a/FrontCode1/vue/src/views/login.vue b/FrontCode1/vue/src/views/login.vue index f051772..a180db6 100644 --- a/FrontCode1/vue/src/views/login.vue +++ b/FrontCode1/vue/src/views/login.vue @@ -19,112 +19,134 @@
-
- -
-
-
- 曙光一村地块 -
-
- -
- 项目所在区域:{{ - this.source.region - }} - - 征收部门:{{ this.source.section }} - - 所属年份:{{ this.source.date }} - - 征收决定号:{{ - this.source.number - }} - -
- -
-
-
-
分户评估结果
-
-
-
-
-
-
- 评估报告编号: - {{ this.source.bianhao }} -
-
- 被征收房屋地址: - {{ this.source.address }} -
-
- 评估总金额: - {{ this.source.totalMoney }} -
-
-
-
- -
-
-
-
补偿协议
-
-
-
-
-
-
- 协议编号: - {{ this.source.bianhao }} -
-
- 被征收房屋地址: - {{ this.source.address }} -
-
- 补偿方式: - {{ this.source.style }} -
-
- 合计补偿资金: - {{ this.source.money }} -
-
-
-
- -
- -
- 征收政策 -
-
共8条
-
查看全部
-
-
-
宁波市住房和城乡建设委员会关于开展
-
-
- 发布时间: - 2021-9-1 -
-
- 区域: - 海曙区 -
-
-
-
+
+ +
+ + +
+ +
+
+ +
+ 曙光一村地块 +
+ +
+
+ +
+
+ + 项目所在区域:{{ this.source.region }} +
+
+ + 征收部门:{{ this.source.section }} +
+
+ + 所属年份:{{ this.source.date }} +
+
+ + 征收决定号:{{ + this.source.number + }} +
+
+ +
+
+
+ +
+ 分户评估结果 +
+ +
+
+
+
+
+
+ 评估报告编号: + {{ this.source.bianhao }} +
+
+ 被征收房屋地址: + {{ this.source.address }} +
+
+ 评估总金额: + {{ this.source.totalMoney }} +
+
+
+
+ +
+
+
+ +
+ 补偿协议 +
+ +
+
+
+
+
+
+ 协议编号: + {{ this.source.bianhao }} +
+
+ 被征收房屋地址: + {{ this.source.address }} +
+
+ 补偿方式: + {{ this.source.style }} +
+
+ 合计补偿资金: + {{ this.source.money }} +
+
+
+
+
+
+ +
+ +
+ +
+ 征收政策 +
+
共8条
+
查看全部
+
+ +
宁波市住房和城乡建设委员会关于开展
+
+
+ 发布时间: + 2021-9-1 +
+
+ 区域: + 全大市 +
+
+
-
@@ -164,12 +186,10 @@ export default { diff --git a/FrontCode2/sunshine_levy/src/assets/css/app.css b/FrontCode2/sunshine_levy/src/assets/css/app.css new file mode 100644 index 0000000..57aede5 --- /dev/null +++ b/FrontCode2/sunshine_levy/src/assets/css/app.css @@ -0,0 +1,2397 @@ +/* #region 基础 */ +*, +*::after, +*::before { + box-sizing: border-box; +} + +.code-notes { + font-family: 'Courier New'; + font-size: 12px; + font-weight: normal; + + color: #6a9955; +} + +.code-notes::before { + margin-right: 5px; + + content: ''; +} + +.zmdi { + vertical-align: middle; +} + +/* #endregion */ + +/* #region 内外边距 */ +.m-lg { + margin: 20px !important; +} + +.m-md { + margin: 16px !important; +} + +.m-sm { + margin: 12px !important; +} + +.m-xs { + margin: 8px !important; +} + +.p-lg { + padding: 20px !important; +} + +.p-md { + padding: 16px !important; +} + +.p-sm { + padding: 12px !important; +} + +.p-xs { + padding: 8px !important; +} + +.m-none { + margin: 0 !important; +} + +.p-none { + padding: 0 !important; +} + +.mt-lg { + margin-top: 20px !important; +} + +.mt-md { + margin-top: 16px !important; +} + +.mt-sm { + margin-top: 12px !important; +} + +.mt-xs { + margin-top: 8px !important; +} + +.pt-lg { + padding-top: 20px !important; +} + +.pt-md { + padding-top: 16px !important; +} + +.pt-sm { + padding-top: 12px !important; +} + +.pt-xs { + padding-top: 8px !important; +} + +.mt-none { + margin-top: 0 !important; +} + +.pt-none { + padding-top: 0 !important; +} + +.ml-lg { + margin-left: 20px !important; +} + +.ml-md { + margin-left: 16px !important; +} + +.ml-sm { + margin-left: 12px !important; +} + +.ml-xs { + margin-left: 8px !important; +} + +.pl-lg { + padding-left: 20px !important; +} + +.pl-md { + padding-left: 16px !important; +} + +.pl-sm { + padding-left: 12px !important; +} + +.pl-xs { + padding-left: 8px !important; +} + +.ml-none { + margin-left: 0 !important; +} + +.pl-none { + padding-left: 0 !important; +} + +.mr-lg { + margin-right: 20px !important; +} + +.mr-md { + margin-right: 16px !important; +} + +.mr-sm { + margin-right: 12px !important; +} + +.mr-xs { + margin-right: 8px !important; +} + +.pr-lg { + padding-right: 20px !important; +} + +.pr-md { + padding-right: 16px !important; +} + +.pr-sm { + padding-right: 12px !important; +} + +.pr-xs { + padding-right: 8px !important; +} + +.mr-none { + margin-right: 0 !important; +} + +.pr-none { + padding-right: 0 !important; +} + +.mb-lg { + margin-bottom: 20px !important; +} + +.mb-md { + margin-bottom: 16px !important; +} + +.mb-sm { + margin-bottom: 12px !important; +} + +.mb-xs { + margin-bottom: 8px !important; +} + +.pb-lg { + padding-bottom: 20px !important; +} + +.pb-md { + padding-bottom: 16px !important; +} + +.pb-sm { + padding-bottom: 12px !important; +} + +.pb-xs { + padding-bottom: 8px !important; +} + +.mb-none { + margin-bottom: 0 !important; +} + +.pb-none { + padding-bottom: 0 !important; +} + +/* #endregion */ + +/* #region 工具类 */ +.sb-none { + position: sticky; + bottom: 0; +} + +.inline-block { + display: inline-block; +} + +.price-text { + font-size: 120%; + font-weight: bold; + + color: #d93636; +} + +.nowrap { + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-primary { + color: #07c160 !important; +} + +.text-info { + color: #4a8df7 !important; +} + +.text-danger { + color: #ee0a24 !important; +} + +.text-warning { + color: #ff976a !important; +} + +.text-gray { + color: gray !important; +} + +.text-xl { + font-size: 16px !important; +} + +.text-lg { + font-size: 14px !important; +} + +.text-md { + font-size: 13px !important; +} + +.text-sm { + font-size: 12px !important; +} + +.text-xs { + font-size: 10px !important; +} + +/* #endregion */ + +/* #region 轻提示 */ +.van-toast { + border-radius: 2px; +} + +/* #endregion */ + +/* #region 弹出信息框 */ +.van-dialog { + border-radius: 2px; +} + +/* #endregion */ + +/* #region 按钮 */ +.van-button--primary { + background: linear-gradient(to bottom, #62de9e, #07c160); + box-shadow: 0 6px 12px rgba(17, 176, 51, .16); +} + +.van-button--info { + border-color: #4a8df7; + background: linear-gradient(to bottom, #5a9ff2, #569af3, #5296f5, #4e91f6, #4a8df7, #4689f9, #4184fa, #3d7ffb, #397bfc, #3576fe, #3172ff); + box-shadow: 0 6px 12px rgba(17, 92, 176, .16); +} + +.van-button--plain.van-button--info { + color: #4a8df7; +} + +.van-button--danger { + background: linear-gradient(to bottom, #ef5769, #ee0a24); + box-shadow: 0 6px 12px rgba(176, 17, 38, .16); +} + +.van-button--warning { + background: linear-gradient(to bottom, #ffb899, #ff976a); + box-shadow: 0 6px 12px rgba(255, 97, 35, .16); +} + +.van-button--plain { + background: #fff; +} + +.van-button--normal.van-button--round { + padding: 0 13px; +} + +.van-button--small.van-button--round { + padding: 0 16px; +} + +.van-button--mini.van-button--round { + padding: 0 8px; +} + +.van-button--circle { + padding: 0; + + border-radius: 50%; +} + +.van-button--small.van-button--circle { + width: 32px; +} + +/* #endregion */ + +/* #region 控件边框覆盖 */ +[class*=van-hairline]::after { + border-color: #ddd; +} + +.van-cell::after { + border-color: #ddd; +} + +.van-nohairline--top::after { + border-top: 0; +} + +.van-nohairline--bottom::after { + border-bottom: 0; +} + +/* #endregion */ + +/* #region 单元格&输入框 */ +.van-cell { + font-size: 13px; +} + +.van-field__label { + width: 10em; + + color: inherit; +} + +/* #endregion */ + +/* #region 单选框/多选框 */ +.van-radio__icon .van-icon, +.van-checkbox__icon .van-icon { + position: relative; + + border-radius: 2px; +} + +.van-radio__icon .van-icon::before, +.van-checkbox__icon .van-icon::before { + position: absolute; + top: 3px; + left: 3px; + right: 3px; + bottom: 3px; + + content: ''; + transition: .25s transform; + transform: scale(0); + + background: linear-gradient(to bottom, #5a9ff2, #569af3, #5296f5, #4e91f6, #4a8df7, #4689f9, #4184fa, #3d7ffb, #397bfc, #3576fe, #3172ff); +} + +.van-radio__icon--round .van-icon, +.van-radio__icon--round .van-icon::before, +.van-checkbox__icon--round .van-icon, +.van-checkbox__icon--round .van-icon::before { + border-radius: 100%; +} + +.van-radio__icon--checked .van-icon, +.van-checkbox__icon--checked .van-icon { + border-width: 2px; + background-color: #fff; +} + +.van-radio__icon--checked .van-icon::before, +.van-checkbox__icon--checked .van-icon::before { + transform: scale(1); +} + +/* #endregion */ + +/* #region Swipe按钮 */ +.van-swipe-cell__left, +.van-swipe-cell__right { + display: flex; + overflow: hidden; +} + +.van-swipe-cell__left .van-button, +.van-swipe-cell__right .van-button { + height: 100%; +} + +.van-field__control--right .van-radio-group--horizontal, +.van-field__control--right .van-checkbox-group--horizontal { + justify-content: flex-end; +} + +/* #endregion */ + +/* #region layout */ +.page { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; +} + +.page-wrapper { + position: absolute; + top: 0; + left: 0; + bottom: 0; + + width: 100%; +} + +.van-tabbar.van-tabbar--fixed~.page-wrapper { + bottom: 50px; +} + +.page-nav { + padding-top: 30px; + + background: url(../img/nav-bg.png) no-repeat center top; +} + +.page-nav__fixed { + position: fixed; + top: 0; + left: 0; + z-index: 10; + + width: 100%; +} + +.page-nav:not(.page-nav-clear) .van-nav-bar { + background: none; + /* background-size: 100% auto; */ +} + +.page-nav:not(.page-nav-clear) .van-nav-bar__title { + white-space: nowrap; + + color: #fff; +} + +.page-nav:not(.page-nav-clear) .van-nav-bar__text, +.page-nav:not(.page-nav-clear) .van-nav-bar .van-icon { + color: rgba(255, 255, 255, .9); +} + +.page-nav:not(.page-nav-clear) .van-nav-bar::after { + display: none; +} + +.page-bottom-bar { + position: absolute; + left: 0; + bottom: 0; + + width: 100%; +} + +.page-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + + overflow-x: hidden; + overflow-y: auto; +} + +.van-nav-bar~.page-content { + top: 46px; +} + +.page-nav~.page-content { + top: 76px; +} + +.page-bottom-bar~.page-content { + bottom: 50px; +} + +.page-content-bg::before { + position: fixed; + top: 76px; + left: 0; + z-index: -1; + + width: 100%; + height: 100px; + + content: ''; + pointer-events: none; + + background: url(../img/nav-bg.png) no-repeat center -76px; +} + +.page-content-bg::after { + position: fixed; + top: 100px; + left: 0; + z-index: -1; + + width: 100%; + height: 50px; + + content: ''; + pointer-events: none; + + background: url(../img/wave-top.png) no-repeat center top; + background-size: 100%; +} + +@media (max-width: 768px) { + .page-content-bg::after { + top: 110px; + } +} + +.container { + width: 66.6666667%; + margin: 0 auto; +} + +@media (max-width: 768px) { + .container { + width: 80%; + } +} + +@media (max-width: 414px) { + .container { + width: auto; + margin-right: 16px; + margin-left: 16px; + } +} + +.page-content>.container:first-child { + margin-top: 16px; +} + +.page-block { + padding: 0 16px; +} + +.page-bottom-bar__inner { + position: relative; + z-index: 10; + + display: flex; + align-items: center; + justify-content: space-around; + + height: 50px; + padding: 0 16px; + + background-color: #fff; + box-shadow: 0 -2px 12px rgba(0, 0, 0, .15); +} + +.page-bottom-bar--inner .van-button { + margin: 0 5px; +} + +.page-bottom-bar__info { + position: relative; + z-index: 10; + + display: flex; + align-items: center; + justify-content: flex-start; + + height: 50px; + + background-color: #fff; + box-shadow: 0 -2px 12px rgba(0, 0, 0, .15); +} + +.page-bottom-bar__title { + font-size: 13px; + + display: flex; + align-items: center; + + height: 50px; + padding: 0 16px; + + color: #fff; + background: linear-gradient(to bottom, #5a9ff2, #569af3, #5296f5, #4e91f6, #4a8df7, #4689f9, #4184fa, #3d7ffb, #397bfc, #3576fe, #3172ff); +} + +.page-bottom-bar__content { + display: flex; + align-items: center; + flex: 1; + justify-content: space-between; + + padding: 0 16px 0 8px; +} + +.page-bottom-bar__content .price small { + font-size: 12px; +} + +.page-bottom-bar__content .desc { + font-size: 12px; + + color: #999; +} + +.page-form { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; +} + +.page-form::after { + position: absolute; + top: 0; + left: 50%; + bottom: 0; + z-index: 10; + + margin-left: -.5px; + + content: ''; + + border-right: .5px solid #ddd; +} + +.page-form__col { + position: relative; + + overflow-x: hidden; + overflow-y: auto; + flex: 0 0 50%; +} + +.page-form__col>.van-overlay { + top: 0; + z-index: 5 !important; + + width: 50%; + height: 100%; +} + +.van-nav-bar~.page-content .page-form__col>.van-overlay, +.page-nav~.page-content .page-form__col>.van-overlay { + top: 76px; + + height: calc(100% - 76px); +} + +.page-bottom-bar~.page-content .page-form__col>.van-overlay { + height: calc(100% - 50px); +} + +.van-nav-bar~.page-bottom-bar~.page-content .page-form__col>.van-overlay, +.page-nav~.page-bottom-bar~.page-content .page-form__col>.van-overlay { + height: calc(100% - 76px - 50px); +} + +.page-form__col:last-child>.van-overlay { + left: 50%; +} + +.page-form__col>.van-popup { + z-index: 5 !important; + + width: 50%; + height: 100%; +} + +.van-nav-bar~.page-content .page-form__col>.van-popup, +.page-nav~.page-content .page-form__col>.van-popup { + height: calc(100% - 76px); + margin-top: 38px; +} + +.page-bottom-bar~.page-content .page-form__col>.van-popup { + height: calc(100% - 50px); + margin-top: -25px; +} + +.van-nav-bar~.page-bottom-bar~.page-content .page-form__col>.van-popup, +.page-nav~.page-bottom-bar~.page-content .page-form__col>.van-popup { + height: calc(100% - 76px - 50px); + margin-top: 13px; +} + +@media (max-width: 768px) { + .page-form { + position: relative; + + display: block; + + width: auto; + height: auto; + margin: 0 auto; + } + + .page-form::after { + display: none; + } + + .page-form__col { + overflow: visible; + } + + .page-form__col>.van-overlay { + left: 0; + + width: 100%; + } + + .page-form__col>.van-popup { + width: 70%; + } + + .page-form__col:last-child>.van-overlay { + left: 0; + } +} + +/* #endregion */ + +/* #region 弹出框 */ +.van-popup__close-icon--top-left, +.van-popup__close-icon--top-right { + top: 12px; +} + +/* #endregion */ + +/* #region 栅格 */ +.van-col--100p { + flex: 1; +} + +/* #endregion */ + +/* #region wave */ +@keyframes move_wave { + 0% { + transform: translateX(0) translateZ(0) scaleY(1); + } + + 50% { + transform: translateX(-25%) translateZ(0) scaleY(.55); + } + + 100% { + transform: translateX(-50%) translateZ(0) scaleY(1); + } +} + +.wave-wrapper { + position: relative; + + overflow: hidden; +} + +.wave-wrapper>img { + display: block; + + width: 100%; + + opacity: 0; +} + +.wave-inner { + position: absolute; + bottom: 0; + + overflow: hidden; + + width: 100%; + height: 100%; + + background-image: linear-gradient(to right, #77e4f0 20%, #62aaff 80%); +} + +.wave-inner>img { + display: block; + + width: 100%; + + object-fit: cover; +} + +@media (max-width: 768px) { + + .wave-wrapper>img, + .wave-inner>img { + width: 140%; + margin-left: -20%; + } +} + +.wave-top { + z-index: 15; + + opacity: .5; +} + +.bgMiddle { + z-index: 10; + + opacity: .75; +} + +.wave-bottom { + z-index: 5; +} + +.wave { + position: absolute; + top: 0; + left: 0; + + width: 200%; + height: 100%; + + transform-origin: center bottom; + + background-repeat: repeat no-repeat; + background-position: 0 bottom; +} + +.wave-in-top { + width: 3840px; + + background-image: url(../img/wave-top.png); +} + +.wave-animation .wave-in-top { + -webkit-animation: move-wave 3s; + animation: move-wave 3s; + -webkit-animation-delay: 1s; + animation-delay: 1s; +} + +.wave-in-bottom { + width: 3840px; + + background-image: url(../img/wave-bot.png); +} + +.wave-animation .wave-in-bottom { + animation: move_wave 15s linear infinite; +} + +/* #endregion */ + +/* #region 登录 */ +.login { + display: flex; + flex-direction: column; + justify-content: flex-start; + + height: 100vh; +} + +.login-form { + position: relative; + z-index: 5; + + display: flex; + align-items: center; + flex: auto; + justify-content: center; +} + +.login-form .van-row { + width: 100%; + margin-top: -200px; +} + +.login-form .van-password-input { + margin-top: 20px; +} + +.login-form .van-field__control { + font-size: 20px; +} + +.login-form .van-field__control::-webkit-input-placeholder { + font-size: 13px; +} + +/* #endregion */ + +/* #region 首页 */ +.page-home .page-content { + padding-top: 30px; +} + +.page-home .page-content::before { + position: absolute; + top: 0; + z-index: -1; + + width: 100%; + height: 400px; + + content: ''; + pointer-events: none; + + background: url(../img/home-bg.png) no-repeat center top; + background-size: 1024px; +} + +.home-logo { + font-size: 30px; + font-weight: bold; + + display: flex; + align-items: center; + justify-content: center; + + height: 120px; + padding: 16px; + + color: #fff; + text-shadow: 2px 2px 2px rgba(0, 0, 0, .8); +} + +@media (max-width: 768px) { + .home-logo { + font-size: 26px; + } +} + +@media (max-width: 414px) { + .home-logo { + font-size: 24px; + } +} + +.home-banner { + overflow: hidden; + + border-radius: 10px; + background-color: rgba(255, 255, 255, .9); + box-shadow: 0 2px 12px rgba(17, 92, 176, .16); + + backdrop-filter: blur(5px); +} + +.home-banner .swiper-slide .van-image { + display: block; +} + +.home-banner .swiper-slide:first-child img { + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; +} + +.home-banner .swiper-slide:last-child img { + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; +} + +.home-banner .swiper-pagination { + left: 50%; + + width: auto; + padding-right: 8px; + padding-left: 8px; + + transform: translateX(-50%); + + border-radius: 999px; + background-color: rgba(0, 0, 0, .35); +} + +.home-banner .swiper-pagination-bullet { + opacity: 1; + background-color: rgba(255, 255, 255, .35); +} + +.home-banner .swiper-pagination-bullet-active { + background-color: #fff; +} + +/* #endregion */ + +/* #region 顶部搜索栏 */ +.search-bar { + position: sticky; + top: 0; + z-index: 1000; + + display: flex; + align-items: center; + + margin-bottom: 16px; + + background-color: #fff; + box-shadow: 0 2px 12px rgba(17, 92, 176, .16); +} + +.search-bar-100 { + width: 100%; +} + +.search-bar-auto { + width: auto; +} + +.search-bar .van-dropdown-menu__bar { + box-shadow: none; +} + +.search-bar .van-dropdown-menu__title { + font-size: 13px; +} + +.search-bar-auto>.van-button { + margin: 0 16px; + + white-space: nowrap; +} + +.search-bar .van-search, +.search-bar .van-dropdown-menu__bar { + background: none; +} + +/* #endregion */ + +/* #region 顶部步骤条 */ +.step-bar { + position: sticky; + top: 0; + z-index: 1000; + + overflow: hidden; + + margin-bottom: 16px; + padding: 8px 32px; + + background-color: #fff; + box-shadow: 0 2px 12px rgba(0, 0, 0, .15); +} + +.step-bar>.step-prev, +.step-bar>.step-next { + position: absolute; + top: 0; + z-index: 3; + + display: flex; + align-items: center; + justify-content: center; + + width: 60px; + height: 100%; +} + +.step-bar>.step-prev { + left: 0; +} + +.step-bar>.step-next { + right: 0; +} + +.step-bar-container .step-bar__title { + font-size: 13px; + line-height: 20px; + + padding-top: 32px; + + transition: .25 opacity; + text-align: center; + + color: #4a8df7; +} + +.step-bar-container .swiper-slide.step-active~.swiper-slide { + opacity: .5; +} + +.step-bar-container .step-bar__title::before { + position: absolute; + top: 15px; + right: 50%; + + width: calc(100% - 50px); + margin-right: 25px; + + content: ''; + + border-top: .5px dashed #4a8df7; +} + +.step-bar-container .step-bar__title::after { + position: absolute; + top: 10px; + left: 50%; + + width: 10px; + height: 10px; + margin-left: -5px; + + content: ''; + transition: .25s box-shadow; + + border-radius: 50%; + background-color: #4a8df7; + box-shadow: 0 0 0 4px rgba(74, 140, 247, .3); +} + +.step-bar-container .step-bar__title.step-active::after { + box-shadow: 0 0 0 4px rgba(74, 140, 247, .3), 0 0 0 8px rgba(74, 140, 247, .15); +} + +.step-bar-container .swiper-slide:first-child .step-bar__title::before { + display: none; +} + +.step-content { + position: absolute; + top: 68px; + bottom: 0; + + width: 100%; +} + +.step-content .swiper-container { + height: 100%; +} + +.step-content .swiper-slide { + overflow-y: auto; + + width: 66.66666667%; + + transition: .25s opacity; + + opacity: 0; +} + +.step-content .swiper-slide.swiper-slide-active { + opacity: 1; +} + +/* #endregion */ + +/* #region 通用卡片 */ +.card { + margin-bottom: 16px; + + border-radius: 12px; + background-color: rgba(255, 255, 255, .9); + box-shadow: 0 2px 12px rgba(17, 92, 176, .16); + + backdrop-filter: blur(5px); +} + +.card.card-bg { + background: rgba(255, 255, 255, .9) url(../img/card-bg.png) no-repeat bottom center; + background-size: 100% auto; +} + +.card.card-border { + border-left: 3px solid #4184fa; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} + +.card-noshadow { + box-shadow: none; +} + +.card-header { + font-size: 14px; + + display: flex; + align-items: center; + justify-content: space-between; + + padding: 8px 16px; + + border-radius: 12px 12px 0 0; +} + +.card.card-bg .card-header { + color: #fff; + background: linear-gradient(to right, #7d47f3, #369dfd); +} + +.card-header__action { + font-size: 13px; + + color: #aaa; +} + +.card-body { + font-size: 13px; + + position: relative; + + padding: 16px; +} + +.card-body-nopadding { + padding: 0; +} + +.card-body .van-cell-group { + background-color: transparent; +} + +.card-body .van-cell { + background-color: transparent; +} + +.card-group { + margin-bottom: 16px; +} + +.card-group .card { + margin-bottom: 8px; +} + +.card-group .card:last-child { + margin-bottom: 0; +} + +/* #endregion */ + +/* #region 工具卡片 */ +.card-bar { + position: fixed; + top: 92px; + bottom: 50px; + + width: 157px; +} + +@media (max-width: 768px) { + .card-bar { + width: 115px; + } +} + +.card-bar .card-body { + display: flex; + align-items: center; + flex-direction: column; + justify-content: space-around; + + height: 100%; +} + +.card-nav { + position: relative; + + display: flex; + align-items: center; + flex-direction: column; +} + +.card-nav.active::before { + position: absolute; + top: 50%; + + width: 3px; + height: 30px; + + content: ''; + transform: translate(-48px, -50%); + + border-radius: 3px; + background-color: #3172ff; +} + +.card-nav__icon { + font-size: 32px; + + margin-bottom: 8px; +} + +.card-nav__text { + font-size: 14px; +} + +/* #endregion */ + +/* #region 通用标题 */ +.public-title { + font-size: 14px; + + position: relative; + + display: flex; + align-items: center; + justify-content: space-between; + + margin-bottom: 8px; + padding: 8px 16px 8px 32px; + + color: rgba(0, 0, 0, .5); + border-radius: 10px; + background-color: rgba(255, 255, 255, .85); + + backdrop-filter: blur(5px); +} + +.public-title::before { + position: absolute; + left: 16px; + + width: 3px; + height: 10px; + + content: ''; + + background-color: #3172ff; +} + +.public-title.no-border::before { + display: none; +} + +.public-title span, +.public-title .van-icon { + vertical-align: middle; +} + +.public-title a { + font-size: 13px; + + color: #3172ff; +} + +/* #endregion */ + +/* #region 调查表/协议入口 */ +.enter-links { + display: flex; + overflow: hidden; + + margin-bottom: 8px; + + border-radius: 4px; + background-color: #f5f8fa; +} + +.enter-links:last-child { + margin-bottom: 0; +} + +.enter-title { + line-height: 30px; + + width: 180px; + height: 30px; + + text-align: center; + + color: #fff; +} + +.enter-link { + line-height: 30px; + + position: relative; + + display: block; + flex: 100%; + + text-align: center; +} + +.enter-link .van-icon { + vertical-align: middle; +} + +.enter-link::after { + position: absolute; + top: 8px; + right: 0; + bottom: 8px; + + content: ''; + + border-right: .5px solid #ddd; +} + +.enter-link:last-child::after { + display: none; +} + +/* #endregion */ + +/* #region 被征收人列表 */ + +.info-card { + font-size: 13px; + + display: flex; + align-items: center; + flex-wrap: wrap; + + padding: 16px; + + border-bottom: .5px solid #ddd; +} + +.info-card:last-child { + border-bottom: 0; +} + +.info-card__icon { + font-size: 24px; + + display: flex; + align-items: center; + justify-content: center; + + width: 40px; + height: 40px; + margin-right: 16px; + + border-radius: 50%; + background: linear-gradient(to bottom, #5a9ff2, #569af3, #5296f5, #4e91f6, #4a8df7, #4689f9, #4184fa, #3d7ffb, #397bfc, #3576fe, #3172ff); +} + +.info-card__info { + display: flex; + flex: 1; + flex-wrap: wrap; +} + +.info-card__section { + line-height: 24px; + + display: flex; + align-items: center; + + word-break: break-all; +} + +.info-card__section .van-row { + width: 100%; +} + +.info-card__label { + font-weight: bold; + + margin-right: 8px; +} + +.info-card__value { + color: #4579f6; +} + +.info-card__desc { + line-height: 20px; + + color: #666; +} + +/* #endregion */ + +/* #region 标签页 */ +.tabs-no-bar .van-tabs__wrap { + display: none; +} + +/* #endregion */ + +/* #region 时间轴 */ +.time-axis-item { + position: relative; + + display: flex; + + margin-bottom: 16px; +} + +.time-axis-date { + position: relative; + + display: flex; + align-items: flex-start; + justify-content: flex-start; + + width: 100px; +} + +.time-axis-date::before { + font-size: 13px; + line-height: 30px; + + height: 30px; + margin-right: 8px; + + content: attr(date); + + color: #aaa; +} + +.time-axis-date::after { + font-size: 13px; + font-weight: 700; + + position: relative; + z-index: 2; + + display: flex; + align-items: center; + justify-content: center; + + width: 30px; + height: 30px; + + content: attr(day); + + color: #fff; + border-radius: 50%; + background: linear-gradient(to bottom, #5a9ff2, #569af3, #5296f5, #4e91f6, #4a8df7, #4689f9, #4184fa, #3d7ffb, #397bfc, #3576fe, #3172ff); + box-shadow: 0 6px 12px rgba(17, 92, 176, .16); +} + +.time-axis-line { + position: absolute; + top: 30px; + left: 70px; + bottom: -16px; + + width: 3px; + + background-color: #4184fa; +} + +.time-axis-item:last-child .time-axis-line { + display: none; +} + +.time-axis-content { + flex: 1; +} + +.time-axis-content>.card { + margin-bottom: 0; +} + +.time-axis__subtitle { + font-size: 80%; + + color: #aaa; +} + +.time-axis__content { + font-size: 13px; + + color: #333; +} + +.time-axis__attrs { + margin-top: 16px; +} + +.time-axis__files { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + justify-content: flex-start; +} + +.time-axis__file { + margin-right: 8px; + margin-bottom: 8px; +} + +.audios-player { + width: 200px; + height: 30px; + + border-radius: 2px; + background: linear-gradient(165deg, #62de9e, #07c160); +} + +.time-axis__sign { + margin-top: 16px; +} + +.time-axis__sign p { + font-size: 12px; + + margin: 0; +} + +.time-axis__control { + width: 24px; + height: 24px; + + vertical-align: middle; + + box-shadow: none; +} + +/* #endregion */ + +/* #region Swiper */ +.thumb-swiper.swiper-container { + height: 416px; + padding: 0 16px; +} + +.thumb-swiper .swiper-slide { + display: inline-block; + + width: auto; + width: 200px; + height: 200px; +} + +.thumb-swiper .van-image { + display: block; +} + +.thumb-video::before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background-color: rgba(0, 0, 0, .35); +} + +.thumb-video::after { + position: absolute; + top: 50%; + left: 50%; + + margin-left: 5px; + + content: ''; + transition: .5s; + transition-property: opacity, transform; + transform: translate(-50%, -50%) scale(1); + + opacity: 1; + border-top: 15px solid transparent; + border-bottom: 15px solid transparent; + border-left: 26px solid #fff; +} + +.thumb-video.thumb-video__sm::after { + margin-left: 2px; + + border-top-width: 8px; + border-bottom-width: 8px; + border-left-width: 14px; +} + +.thumb-video.playing::after { + transform: translate(-50%, -50%) scale(5); + + opacity: 0; +} + +.thumb-info { + line-height: 20px; +} + +.thumb-info h3 { + font-size: 13px; + + margin: 5px 0; +} + +.thumb-info p { + margin: 0; + + color: #aaa; +} + +/* #endregion */ + +/* #region 静态信息展示 */ +.static-info { + margin-bottom: 16px; +} + +.static-info .row { + line-height: 24px; + + display: flex; + align-items: flex-start; + + padding: 8px 16px; +} + +.static-info__lg, +.static-info__md, +.static-info__sm { + margin-right: 16px; +} + +.static-info__lg:last-child, +.static-info__md:last-child, +.static-info__sm:last-child { + margin-right: 0; +} + +.static-info__lg { + font-size: 16px; + font-weight: bold; +} + +.static-info__md { + font-size: 15px; +} + +.static-info__sm { + font-size: 13px; + + color: #666; +} + +/* #endregion */ + +/* #region 双层标签页 */ +.tabs-parent, +.tabs-child { + height: 100%; +} + +.tabs-parent .van-tabs__nav { + background-color: #f7f7f7; +} + +.tabs-parent .van-tab { + font-size: 13px; + + color: #999; +} + +.tabs-parent .van-tab__pane { + overflow-y: auto; + + height: 100%; +} + +.tabs-parent .van-tab--active { + color: #3172ff; + background-color: #fff; +} + +.tabs-parent .van-tabs__line { + display: none; +} + +.tabs-parent__action { + position: sticky; + right: -8px; + + display: flex; + align-items: center; + + padding: 0 8px; + + background-color: #fff; + box-shadow: -3px 0 13px rgba(0, 0, 0, .15); +} + +.tabs-parent__action .van-button { + white-space: nowrap; +} + +.tabs-parent .van-tabs__content { + position: absolute; + top: 44px; + left: 0; + right: 0; + bottom: 0; +} + +.tabs-child .van-tabs__wrap { + border-bottom: 4px solid #f7f7f7; +} + +.tabs-child .van-tabs__nav { + background-color: #fff; +} + +.tabs-child .van-tab--active { + font-size: 15px; + font-weight: bold; + + color: #222; +} + +.tabs-child__action { + position: sticky; + right: -8px; + + display: flex; + align-items: center; + + padding: 0 8px; + + background-color: #fff; +} + +.tabs-child__action .van-button { + padding: 0 5px; +} + +.swiper__16x9 .swiper-slide { + height: auto; + padding-bottom: 56.25%; +} + +.swiper__16x9 .swiper-slide>.van-image, +.swiper__16x9 .swiper-slide>.van-empty { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; +} + +.swiper__16x9 .swiper-slide>.van-image>img { + object-fit: cover; +} + +.swiper-container-horizontal>.swiper-pagination-progressbar { + top: auto; + bottom: 0; +} + +.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: #4a8df7; +} + +/* #endregion */ + +/* #region 个人中心 */ +.user-container { + height: 212px; + margin-bottom: 16px; + + background: url(../img/user-bg.jpg); +} + +.user-info { + width: 100%; +} + +.user-info__base { + display: flex; + align-items: center; + + margin: 0 32px; + + color: #fff; +} + +.user-info__base h1 { + font-size: 24px; + + margin: 0 0 16px; +} + +.user-info__base h4 { + font-size: 14px; + font-weight: normal; + + margin: 0; +} + +.user-info__avatar { + margin-right: 32px; + padding: 3px; + + border-radius: 50%; + background-color: #fff; +} + +.user-info__avatar .van-image { + display: block; +} + +.user-info__columns { + display: flex; + justify-content: space-around; + + margin-top: 24px; +} + +.user-info__card { + padding: 8px; + + text-align: center; + + border-radius: 12px; + background: rgba(0, 0, 0, .3); + + backdrop-filter: blur(5px); +} + +.user-info__card .statistic-content>span { + color: #fff; +} + +.user-info__card .statistic-content>small, +.user-info__card .statistic-title { + color: rgba(255, 255, 255, .75); +} + +/* #endregion */ + +/* #region 上传组件 */ +.uploader-container { + margin-bottom: 16px; +} + +.uploader-thumb { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + + padding: 0 8px 8px 16px; +} + +.uploader-thumb__preview { + position: relative; + + margin-right: 8px; + margin-bottom: 8px; +} + +.uploader-thumb__preview .van-image { + display: block; +} + +.uploader-list { + margin-bottom: 16px; +} + +.uploader-list__item { + overflow: hidden; + + margin-bottom: -1px; + + border: .5px solid #ddd; +} + +.uploader-list__item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.uploader-list__item:last-child { + margin-bottom: 16px; + + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.uploader-list__item .info-card { + border-bottom: 0; +} + +/* #endregion */ + +/* #region 录音播放器 */ +.audio-container { + display: flex; + align-items: center; + flex-direction: column; +} + +.audio-nowrap { + flex-direction: row; +} + +.audio-nowrap .audio-timer { + margin-right: 8px; +} + +.audio-wave { + display: flex; + align-items: center; + justify-content: center; + + height: 50px; +} + +.audio-nowrap .audio-wave { + display: none; +} + +.audio-wave span { + display: block; + + width: 5px; + height: 0; + margin: 0 5px; + + background: #4184fa; +} + +.audio-container.recording .audio-wave span { + animation: audio-wave .5s infinite ease; +} + +@keyframes audio-wave { + 0% { + height: 5px; + } + + 30% { + height: 15px; + } + + 60% { + height: 20px; + } + + 80% { + height: 15px; + } + + 100% { + height: 5px; + } +} + +.audio-wave span:nth-of-type(2n) { + animation-delay: 0 !important; +} + +.audio-wave span:nth-of-type(2n + 1) { + animation-delay: .25s !important; +} + +.audio-button { + position: relative; + + overflow: hidden; + + width: 40px; + height: 40px; + + border: .5px solid #ddd; + border-radius: 50%; +} + +.audio-button::before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + pointer-events: none; + + opacity: 0; + border-radius: inherit; + background-color: #000; +} + +.audio-button:active::before { + opacity: .1; +} + +.audio-button__icon::before { + position: absolute; + top: 50%; + left: 50%; + + display: block; + + margin-left: 3px; + + content: ''; + transition: .2s all; + transform: translate(-50%, -50%) scale(1); + + opacity: 1; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-left: 15px solid #999; +} + +.audio-button__icon::after { + position: absolute; + top: 50%; + left: 50%; + + display: block; + + width: 15px; + height: 15px; + + content: ''; + transition: .2s all; + transform: translate(-50%, -50%) scale(5); + + opacity: 0; + background-color: #ee0a24; +} + +.audio-container.recording .audio-button__icon::before { + transform: translate(-50%, -50%) scale(5); + + opacity: 0; +} + +.audio-container.recording .audio-button__icon::after { + transform: translate(-50%, -50%) scale(1); + + opacity: 1; +} + +.audio__sm { + position: relative; + + display: inline-block; +} + +.audio__sm .audio-timer { + font-size: 10px; + line-height: 1; + + position: absolute; + top: 15px; + + width: 100%; + + text-align: center; + + opacity: 0; +} + +.audio__sm .audio-wave { + display: none; +} + +.audio__sm.recording .audio-timer { + opacity: 1; +} + +.audio__sm.recording .audio-button__icon { + opacity: 0; +} + +/* #endregion */ + +/* #region 统计信息 */ +.statistic-item { + text-align: center; +} + +.statistic-item.card-body { + padding: 16px 8px; +} + +.statistic-title { + font-size: 13px; + + color: #aaa; +} + +.statistic-content { + font-size: 0; +} + +.statistic-title+.statistic-content, +.statistic-content+.statistic-title { + margin-top: 8px; +} + +.statistic-content>span { + font-size: 24px; + font-weight: bold; + + color: #222; +} + +.statistic-content>small { + font-size: 14px; + + color: #666; +} + +.statistic-group { + display: flex; + align-items: flex-end; + justify-content: space-around; +} + +.statistic-item+.statistic-group { + margin-top: 16px; + padding-top: 16px; + + border-top: .5px solid #ddd; +} + +.statistic-group .statistic-title { + font-size: 12px; +} + +.statistic-group .statistic-content>span { + font-size: 18px; +} + +.statistic-group .statistic-content>small { + font-size: 11px; +} + +/* #endregion */ + +/* #region 邮件卡片 */ +.mail-card { + position: relative; + + background: none; +} + +.mail-card__unread::before { + position: absolute; + + width: 6px; + height: 6px; + + content: ''; + + border-radius: 50%; + background-color: #ed8249; +} + +.mail-card .van-card__header { + align-items: center; +} + +.mail-card .van-card__thumb { + width: 40px; + height: 40px; +} + +.mail-card .van-card__thumb .van-icon { + color: #fff; +} + +.mail-card .van-card__content { + height: 60px; + min-height: 0; +} + +.mail-card .van-card__title { + font-size: 14px; + line-height: 20px; + + max-height: 40px; +} + +.mail-card .van-card__desc { + font-size: 13px; +} + +/* #endregion */ + +.table { + width: 100%; + + border-collapse: collapse; +} + +.table-layout-fixed { + table-layout: fixed; +} + +.table>thead>tr>th, +.table>tbody>tr>td { + line-height: 1.5; + + padding: 8px; + + text-align: left; +} + +.table>tbody>tr>td { + border-bottom: .5px solid #eee; +} + +.table>tbody>tr:last-child>td { + border-bottom: 0; +} + +.version-container { + margin: 50px auto; + + text-align: center; +} + diff --git a/FrontCode2/sunshine_levy/src/assets/img/assess_1.png b/FrontCode2/sunshine_levy/src/assets/img/assess_1.png new file mode 100644 index 0000000..552aa78 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/assess_1.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/assess_2.png b/FrontCode2/sunshine_levy/src/assets/img/assess_2.png new file mode 100644 index 0000000..a345cd1 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/assess_2.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/bg.png b/FrontCode2/sunshine_levy/src/assets/img/bg.png new file mode 100644 index 0000000..95ce126 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/bg.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/compensation.png b/FrontCode2/sunshine_levy/src/assets/img/compensation.png new file mode 100644 index 0000000..921e51b Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/compensation.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/credentials_icon.png b/FrontCode2/sunshine_levy/src/assets/img/credentials_icon.png new file mode 100644 index 0000000..be56e76 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/credentials_icon.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/evaluation .png b/FrontCode2/sunshine_levy/src/assets/img/evaluation .png new file mode 100644 index 0000000..f0edb8b Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/evaluation .png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/expropriationPolicy.png b/FrontCode2/sunshine_levy/src/assets/img/expropriationPolicy.png new file mode 100644 index 0000000..2b96424 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/expropriationPolicy.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/government.png b/FrontCode2/sunshine_levy/src/assets/img/government.png new file mode 100644 index 0000000..1fc08ff Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/government.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/menu_yhxy.png b/FrontCode2/sunshine_levy/src/assets/img/menu_yhxy.png new file mode 100644 index 0000000..0bda5d1 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/menu_yhxy.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project.png b/FrontCode2/sunshine_levy/src/assets/img/project.png new file mode 100644 index 0000000..a248cd8 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_area.png b/FrontCode2/sunshine_levy/src/assets/img/project_area.png new file mode 100644 index 0000000..12bd2bd Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_area.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_bg.png b/FrontCode2/sunshine_levy/src/assets/img/project_bg.png new file mode 100644 index 0000000..4df4731 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_bg.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_dep.png b/FrontCode2/sunshine_levy/src/assets/img/project_dep.png new file mode 100644 index 0000000..e0e6c2c Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_dep.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_no.png b/FrontCode2/sunshine_levy/src/assets/img/project_no.png new file mode 100644 index 0000000..53b1cc1 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_no.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_right.png b/FrontCode2/sunshine_levy/src/assets/img/project_right.png new file mode 100644 index 0000000..efedf76 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_right.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/project_year.png b/FrontCode2/sunshine_levy/src/assets/img/project_year.png new file mode 100644 index 0000000..e7bac29 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/project_year.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/renyuanliebiao.png b/FrontCode2/sunshine_levy/src/assets/img/renyuanliebiao.png new file mode 100644 index 0000000..74247e2 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/renyuanliebiao.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/scan.png b/FrontCode2/sunshine_levy/src/assets/img/scan.png new file mode 100644 index 0000000..bd43a86 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/scan.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/img/skip.png b/FrontCode2/sunshine_levy/src/assets/img/skip.png new file mode 100644 index 0000000..373e620 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/img/skip.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/logo.png b/FrontCode2/sunshine_levy/src/assets/logo.png new file mode 100644 index 0000000..f3d2503 Binary files /dev/null and b/FrontCode2/sunshine_levy/src/assets/logo.png differ diff --git a/FrontCode2/sunshine_levy/src/assets/rem.js b/FrontCode2/sunshine_levy/src/assets/rem.js new file mode 100644 index 0000000..b72ffc9 --- /dev/null +++ b/FrontCode2/sunshine_levy/src/assets/rem.js @@ -0,0 +1,28 @@ +/** + * 设置根元素font-size + * 当设备宽度为375(iPhone6)时,根元素font-size=16px; + */ +(function (doc, win) { + var docEl = win.document.documentElement; + var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; + + var refreshRem = function () { + var clientWidth = win.innerWidth + || doc.documentElement.clientWidth + || doc.body.clientWidth; + + // console.log(clientWidth) + if (!clientWidth) return; + var fz; + var width = clientWidth; + fz = 16 * width / 375; // 可以根据项目需要,自行修改 + docEl.style.fontSize = fz + 'px'; //这样每一份也是16px,即1rem=16px + }; + + if (!doc.addEventListener) return; + win.addEventListener(resizeEvt, refreshRem, false); + doc.addEventListener('DOMContentLoaded', refreshRem, false); + refreshRem(); + +})(document, window); + diff --git a/FrontCode2/sunshine_levy/src/assets/reset.css b/FrontCode2/sunshine_levy/src/assets/reset.css new file mode 100644 index 0000000..c541e12 --- /dev/null +++ b/FrontCode2/sunshine_levy/src/assets/reset.css @@ -0,0 +1,135 @@ +/* http://meyerweb.com/eric/tools/css/reset/ +v2.0 | 20110126 +License: none (public domain) +*/ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/FrontCode2/sunshine_levy/src/common/apis/index.js b/FrontCode2/sunshine_levy/src/common/apis/index.js new file mode 100644 index 0000000..31ccb8d --- /dev/null +++ b/FrontCode2/sunshine_levy/src/common/apis/index.js @@ -0,0 +1,72 @@ +import axios from 'axios'; +import { token } from '@/common/token'; +import vm from '@/main'; + +const code = { + authorization: '00', + error: '02', + success: '01', +} + +axios.defaults.baseURL = process.env.BASE_URL; + +/** + * 最终直接根据url名称调用接口方法 + * 例如 + * import { apis } from '@/api' + * apis.getItemGroupType(parmas).then(...) + */ +import urls from './requests'; + +const apis = {} + +for (let key in urls) { + apis[key] = (params = {}) => { + return new Promise((reslove, reject) => { + let instance = axios + .create({ + headers: { + Authorization: 'Bearer ' + token.value + } + }); + + instance.interceptors.response.use((res) => { + if (res.data.code === code.authorization) { + token.value = ''; + // vm.$router.replace({ + // path: '/login' + // }).catch(err => { }); + } + return res; + }, (err) => { + return Promise.reject(err); + }); + + instance + .post(urls[key], params) + .then(({ data }) => { + if (data.code === code.success) { + reslove(data); + } else { + if (vm.version.beta) { + alert(data.message); + } + reject(data); + } + }) + .catch(err => { + if (process.env.PROD) { + vm.$dialog.alert({ message: '发生错误,请联系管理员' }); + } else { + console.warn(err, urls[key]); + } + }); + }) + } +} + +export { + axios, + apis, + code +}; diff --git a/FrontCode2/sunshine_levy/src/common/apis/requests.js b/FrontCode2/sunshine_levy/src/common/apis/requests.js new file mode 100644 index 0000000..3365ca8 --- /dev/null +++ b/FrontCode2/sunshine_levy/src/common/apis/requests.js @@ -0,0 +1,16 @@ +// 接口文档地址 +// https://docs.qq.com/doc/DZkdyS3hNT2V4Q3VJ + +const url = { + // 登录 + login: '/webapi/account.ashx?action=login', + + // 个人信息 + account: '/webapi/account.ashx?action=userinfo', + + // 项目数统计信息 + projectStatistics: '/webapi/project.ashx?action=getStatistics', + +}; + +export default url; \ No newline at end of file diff --git a/FrontCode2/sunshine_levy/src/common/token/index.js b/FrontCode2/sunshine_levy/src/common/token/index.js new file mode 100644 index 0000000..c19211d --- /dev/null +++ b/FrontCode2/sunshine_levy/src/common/token/index.js @@ -0,0 +1,19 @@ +const key = '__SESSION'; + +const token = { + get value() { + return window.localStorage.getItem(key); + }, + set value(token) { + if (!token) { + window.localStorage.removeItem(key); + } else { + window.localStorage.setItem(key, token); + } + } +} + +export { + key, + token +} diff --git a/FrontCode2/sunshine_levy/src/components/home.css b/FrontCode2/sunshine_levy/src/components/home.css new file mode 100644 index 0000000..99dabda --- /dev/null +++ b/FrontCode2/sunshine_levy/src/components/home.css @@ -0,0 +1,271 @@ +.page { + border-radius: 6px; + background: #f2fbfd; +} +.topBox { + overflow: hidden; + + width: 100%; + height: 225px; + + background: url(../assets/img/bg.png); + background-size: 100% 225px; +} +.titleBox { + display: flex; + align-items: center; + justify-content: center; + + width: 173px; + height: 36px; + margin: 15px 0 15px 2px; + + border-radius: 0 22px 22px 0; + background: rgba(6, 63, 142, .66); +} +.font { + font-family: PingFangSC-Semibold, PingFang SC; + font-size: 16px; + font-weight: 600; + line-height: 22px; + + width: 167px; + height: 22px; + padding: 3px 7px 3px 7px; + + text-align: center; + vertical-align: middle; + + color: #fff; +} +.baseInfo { + display: flex; +} +.baseImg { + width: 22px; + height: 21px; + padding-right: 10px; + padding-left: 31px; +} +.baseFont { + font-family: PingFangSC-Medium, PingFang SC; + font-size: 14px; + font-weight: 500; + line-height: 20px; + + height: 20px; + + color: #fff; +} +.centerMagin { + margin-top: 10px; + margin-right: 12px; + margin-left: 16px; +} +.gridBg { + display: flex; + overflow: hidden; + justify-content: space-around; + + height: 114px; + + border-radius: 3px; + background: rgba(255, 255, 255, .28); +} +.gridImg { + width: 90px; + height: 80px; + margin: 12px 6px; +} +.bigImg { + width: 100%; + height: 91px; +} +.project { + display: flex; + align-items: center; + justify-content: space-between; + + width: 100%; + height: 41px; + padding-right: 0; + padding-left: 0; + + background: url(../assets/img/project_bg.png); + background-size: 100% 41px; +} +.projectIcon { + width: 40px; + height: 39px; + + vertical-align: middle; + + border-radius: 5px 0 0 0; + background: #3284cd; +} +.projectTitle { + font-family: PingFangSC-Semibold, + PingFang SC; + font-size: 16px; + font-weight: 600; + line-height: 20px; + + height: 20px; + + vertical-align: middle; + + color: #fff; +} +.projectRight { + display: flex; + align-items: center; + + width: 95px; + height: 27px; + + opacity: .82; + border-radius: 13px 0 0 17px; + background: #24bca3; +} +.projectRightFont { + font-family: PingFangSC-Semibold, + PingFang SC; + font-size: 10px; + font-weight: 600; + line-height: 14px; + + height: 17px; + + color: #fff; +} +.projectRightIcon { + width: 17px; + height: 17px; + margin-right: 3px; + margin-left: 8px; +} +.projectCenter { + height: 440px; + padding-bottom: 35px; + + background: #fff; + box-shadow: 0 2px 6px 1px rgba(212, 212, 212, .5); +} +.projectCenterInfo { + display: flex; + align-items: center; + + padding-top: 5px; +} +.projectCenterImg { + width: 15px; + height: 15px; + padding: 0 13px; +} +.projectCenterFont { + font-family: PingFangSC-Regular, + PingFang SC; + font-size: 12px; + font-weight: 400; + line-height: 12px; + + height: 12px; + + color: #2c2b2b; +} +.assess { + display: flex; + align-items: center; + justify-content: space-between; + + width: 100%; + height: 25px; + padding-right: 0; + padding-left: 0; +} +.assessIcon { + width: 24px; + height: 24px; + margin-right: 10px; + + vertical-align: middle; + + background: #2468f2; +} +.assessTitle { + font-family: PingFangSC-Regular, + PingFang SC; + font-size: 14px; + font-weight: 400; + line-height: 20px; + + height: 20px; + + color: #2468f2; +} +.assessRightIcon { + width: 24px; + height: 24px; + + background: #2468f2; +} +.assessBox { + display: flex; + align-items: center; + justify-content: space-between; + + padding-top: 10px; + padding-bottom: 10px; + padding-left: 12px; +} +.assessCenter1 { + margin: 15px; + + border-left: 2px solid #24bca3; +} +.assessCenter2 { + margin: 15px; + + border-left: 2px solid #ff5959; +} +.protocolTitle { + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; +} +.font11 { + font-family: PingFangSC-Regular, + PingFang SC; + font-size: 11px; + font-weight: 400; + line-height: 11px; + + height: 11px; + + color: #9da2a3; +} +.protocolBox { + border-radius: 4px; + background: #fff; + box-shadow: 0 2px 5px 0 rgba(168, 168, 168, .5); +} +.font14 { + font-family: PingFangSC-Regular, + PingFang SC; + font-size: 14px; + font-weight: 400; + line-height: 20px; + + height: 20px; + + color: #202020; +} +.protocolList { + padding: 20px 21px 0 20px; +} +.protocolLine { + padding-bottom: 10px; + + border-bottom: 1px dashed rgba(168, 168, 168, .5); +} diff --git a/FrontCode2/sunshine_levy/src/components/home.vue b/FrontCode2/sunshine_levy/src/components/home.vue new file mode 100644 index 0000000..5f64cf0 --- /dev/null +++ b/FrontCode2/sunshine_levy/src/components/home.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/FrontCode2/sunshine_levy/src/main.js b/FrontCode2/sunshine_levy/src/main.js new file mode 100644 index 0000000..be04d2d --- /dev/null +++ b/FrontCode2/sunshine_levy/src/main.js @@ -0,0 +1,49 @@ +// The Vue build version to load with the `import` command +// (runtime-only or standalone) has been set in webpack.base.conf with an alias. +import './assets/reset.css'; +import 'lib-flexible/flexible'; + +import Vue from 'vue' +import App from './App' +import router from './router' +import { Button, NavBar, Cell, CellGroup } from 'vant'; + + +Vue.use(Button).use(NavBar).use(Cell).use(CellGroup); + +import { Image as VanImage } from 'vant'; + +Vue.use(VanImage); + +import { Col, Row } from 'vant'; + +Vue.use(Col); +Vue.use(Row); + +import { Grid, GridItem } from 'vant'; + +Vue.use(Grid); +Vue.use(GridItem); + +import { Icon } from 'vant'; + +Vue.use(Icon); + +import { List } from 'vant'; + +Vue.use(List); + +import { Divider } from 'vant'; + +Vue.use(Divider); + +Vue.config.productionTip = false + +/* eslint-disable no-new */ +const vm = new Vue({ + el: '#app', + router, + components: { App }, + template: '' +}) +export default vm \ No newline at end of file diff --git a/FrontCode2/sunshine_levy/src/router/index.js b/FrontCode2/sunshine_levy/src/router/index.js new file mode 100644 index 0000000..1f1b5bc --- /dev/null +++ b/FrontCode2/sunshine_levy/src/router/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import Router from 'vue-router' +import home from '@/components/home' + +Vue.use(Router) + +export default new Router({ + routes: [ + { + path: '/', + name: 'home', + component: home + } + ] +}) diff --git a/FrontCode2/sunshine_levy/static/.gitkeep b/FrontCode2/sunshine_levy/static/.gitkeep new file mode 100644 index 0000000..e69de29