ソースを参照

首次代码提交

陈鹏铭 2 年 前
コミット
fbf35a8234
共有59 個のファイルを変更した8549 個の追加4063 個の削除を含む
  1. 1 1
      .env.development
  2. 62 195
      .eslintrc.js
  3. 2 1
      package.json
  4. BIN
      src/assets/investmentPolicy/rcfw.jpg
  5. 185 223
      src/pages/announcement/index.vue
  6. 178 0
      src/pages/economicData/detial.vue
  7. 510 0
      src/pages/economicData/index.vue
  8. 688 645
      src/pages/home-app/home.vue
  9. 164 55
      src/pages/home-app/index.vue
  10. 130 51
      src/pages/industrialPolicy/detail.vue
  11. 208 193
      src/pages/industrialPolicy/index.vue
  12. 100 0
      src/pages/industrialPolicy/pdfDetail.vue
  13. 7 4
      src/pages/mine-app/index.vue
  14. 1 6
      src/pages/mine-app/myMessage.vue
  15. 323 323
      src/pages/mine/certification.vue
  16. 256 0
      src/pages/mine/employeeCertification.vue
  17. 97 93
      src/pages/mine/feedback.vue
  18. 86 71
      src/pages/mine/feedbackDetail.vue
  19. 117 104
      src/pages/mine/feedbackRecord.vue
  20. BIN
      src/pages/mine/img/1.png
  21. BIN
      src/pages/mine/img/2.png
  22. BIN
      src/pages/mine/img/3.png
  23. BIN
      src/pages/mine/img/choosedstatus.png
  24. BIN
      src/pages/mine/img/gps.png
  25. BIN
      src/pages/mine/img/tabberbg.png
  26. BIN
      src/pages/mine/img/企业认证.png
  27. BIN
      src/pages/mine/img/入园预约.png
  28. BIN
      src/pages/mine/img/找工作.png
  29. BIN
      src/pages/mine/img/找资源.png
  30. BIN
      src/pages/mine/img/招租求租.png
  31. BIN
      src/pages/mine/img/通知背景.png
  32. 101 92
      src/pages/mine/index copy.vue
  33. 426 335
      src/pages/mine/index.vue
  34. 556 284
      src/pages/mine/my-info.vue
  35. 171 85
      src/pages/mine/myCollection.vue
  36. 15 3
      src/pages/parkActivities/detail.vue
  37. 4 0
      src/pages/parkTraining/detail.vue
  38. 304 284
      src/pages/parkTraining/index.vue
  39. 284 188
      src/pages/register.vue
  40. 1 1
      src/pages/resource-release/index.vue
  41. 3 3
      src/pages/resource-release/zhaozu-detail.vue
  42. 570 398
      src/pages/settleIn/index.vue
  43. 754 0
      src/pages/talentService/iAmATalent.vue
  44. 660 0
      src/pages/talentService/iAmATalentShow.vue
  45. 426 243
      src/pages/talentService/iWantToRcruit.vue
  46. BIN
      src/pages/talentService/rcfw.jpg
  47. 385 0
      src/pages/talentService/rcruitDetial.vue
  48. 423 167
      src/pages/talentService/recruiting.vue
  49. 68 3
      src/router/index.js
  50. 40 0
      src/service/api_economyReport.js
  51. 27 0
      src/service/api_feedback.js
  52. 26 1
      src/service/api_first-page.js
  53. 20 0
      src/service/api_park_staff_prove_info.js
  54. 40 0
      src/service/api_personnel.js
  55. 49 0
      src/service/api_recruit.js
  56. 42 2
      src/service/api_user.js
  57. 12 0
      src/service/api_user_collectors.js
  58. 24 7
      src/service/api_user_relation.js
  59. 3 2
      vue.config.js

+ 1 - 1
.env.development

@@ -1 +1 @@
-VUE_APP_API_URL=http://192.168.2.109:9012
+VUE_APP_API_URL=http://192.168.2.102:9012

+ 62 - 195
.eslintrc.js

@@ -1,198 +1,65 @@
 module.exports = {
-  root: true,
-  env: {
-    node: true
-  },
-  'extends': [
-    'plugin:vue/essential',
-    '@vue/standard'
-  ],
-  parserOptions: {
-    parser: 'babel-eslint'
-  },
-  rules: {
-    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    root: true, // 停止在父级目录中寻找
+    env: {
+        es6: true, // 启用 ES6 语法支持以及新的 ES6 全局变量或类型
+        node: true // Node.js 全局变量和 Node.js 作用域
+    },
+    extends: ['plugin:vue/essential', '@vue/standard'],
+    rules: {
+        'no-alert': 0, // 禁止使用alert confirm prompt
+        'no-console': 0, // 禁止使用console
+        'no-debugger': 0, // 禁止使用debugger
+        'prefer-const': 0, // 建议使用 const 关闭
+        'no-dupe-keys': 2, // 在创建对象字面量时不允许键重复 {a:1,a:1}
+        'no-dupe-args': 2, // 函数参数不能重复
+        'no-duplicate-imports': [
+            1,
+            {
+                includeExports: true
+            }
+        ], // 不允许重复导入
 
-    "vue/max-attributes-per-line": [2, {
-      "singleline": 10,
-      "multiline": {
-        "max": 1,
-        "allowFirstLine": false
-      }
-    }],
-    "vue/singleline-html-element-content-newline": "off",
-    "vue/multiline-html-element-content-newline": "off",
-    "vue/name-property-casing": ["error", "PascalCase"],
-    "vue/no-v-html": "off",
-    'accessor-pairs': 2,
-    'arrow-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'block-spacing': [2, 'always'],
-    'brace-style': [2, '1tbs', {
-      'allowSingleLine': true
-    }],
-    'camelcase': [0, {
-      'properties': 'always'
-    }],
-    'comma-dangle': [2, 'never'],
-    'comma-spacing': [2, {
-      'before': false,
-      'after': true
-    }],
-    'comma-style': [2, 'last'],
-    'constructor-super': 2,
-    'curly': [2, 'multi-line'],
-    'dot-location': [2, 'property'],
-    'eol-last': 2,
-    'eqeqeq': ["error", "always", {"null": "ignore"}],
-    'generator-star-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'handle-callback-err': [2, '^(err|error)$'],
-    'indent': [2, 4, {
-      'SwitchCase': 1
-    }],
-    'jsx-quotes': [2, 'prefer-single'],
-    'key-spacing': [2, {
-      'beforeColon': false,
-      'afterColon': true
-    }],
-    'keyword-spacing': [2, {
-      'before': true,
-      'after': true
-    }],
-    'new-cap': [2, {
-      'newIsCap': true,
-      'capIsNew': false
-    }],
-    'new-parens': 2,
-    'no-array-constructor': 2,
-    'no-caller': 2,
-    // 'no-console': 'off',
-    'no-class-assign': 2,
-    'no-cond-assign': 2,
-    'no-const-assign': 2,
-    'no-control-regex': 0,
-    'no-delete-var': 2,
-    'no-dupe-args': 2,
-    'no-dupe-class-members': 2,
-    'no-dupe-keys': 2,
-    'no-duplicate-case': 2,
-    'no-empty-character-class': 2,
-    'no-empty-pattern': 2,
-    'no-eval': 2,
-    'no-ex-assign': 2,
-    'no-extend-native': 2,
-    'no-extra-bind': 2,
-    'no-extra-boolean-cast': 2,
-    'no-extra-parens': [2, 'functions'],
-    'no-fallthrough': 2,
-    'no-floating-decimal': 2,
-    'no-func-assign': 2,
-    'no-implied-eval': 2,
-    'no-inner-declarations': [2, 'functions'],
-    'no-invalid-regexp': 2,
-    'no-irregular-whitespace': 2,
-    'no-iterator': 2,
-    'no-label-var': 2,
-    'no-labels': [2, {
-      'allowLoop': false,
-      'allowSwitch': false
-    }],
-    'no-lone-blocks': 2,
-    'no-mixed-spaces-and-tabs': 2,
-    'no-multi-spaces': 1,
-    'no-multi-str': 2,
-    'no-multiple-empty-lines': [2, {
-      'max': 1
-    }],
-    'no-native-reassign': 2,
-    'no-negated-in-lhs': 2,
-    'no-new-object': 2,
-    'no-new-require': 2,
-    'no-new-symbol': 2,
-    'no-new-wrappers': 2,
-    'no-obj-calls': 2,
-    'no-octal': 2,
-    'no-octal-escape': 2,
-    'no-path-concat': 2,
-    'no-proto': 2,
-    'no-redeclare': 2,
-    'no-regex-spaces': 2,
-    'no-return-assign': [2, 'except-parens'],
-    'no-self-assign': 2,
-    'no-self-compare': 2,
-    'no-sequences': 2,
-    'no-shadow-restricted-names': 2,
-    'no-spaced-func': 2,
-    'no-sparse-arrays': 2,
-    'no-this-before-super': 2,
-    'no-throw-literal': 2,
-    'no-trailing-spaces': 2,
-    'no-undef': 2,
-    'no-undef-init': 2,
-    'no-unexpected-multiline': 2,
-    'no-unmodified-loop-condition': 2,
-    'no-unneeded-ternary': [2, {
-      'defaultAssignment': false
-    }],
-    'no-unreachable': 2,
-    'no-unsafe-finally': 2,
-    'no-unused-vars': [2, {
-      'vars': 'all',
-      'args': 'none'
-    }],
-    'no-useless-call': 2,
-    'no-useless-computed-key': 2,
-    'no-useless-constructor': 2,
-    'no-useless-escape': 0,
-    'no-whitespace-before-property': 2,
-    'no-with': 2,
-    'one-var': [2, {
-      'initialized': 'never'
-    }],
-    'operator-linebreak': [2, 'after', {
-      'overrides': {
-        '?': 'before',
-        ':': 'before'
-      }
-    }],
-    'padded-blocks': [2, 'never'],
-    'quotes': [2, 'single', {
-      'avoidEscape': true,
-      'allowTemplateLiterals': true
-    }],
-    'semi': [2, 'never'],
-    'semi-spacing': [2, {
-      'before': false,
-      'after': true
-    }],
-    'space-before-blocks': [2, 'always'],
-    'space-before-function-paren': [2, 'never'],
-    'space-in-parens': [2, 'never'],
-    'space-infix-ops': 2,
-    'space-unary-ops': [2, {
-      'words': true,
-      'nonwords': false
-    }],
-    'spaced-comment': [2, 'always', {
-      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
-    }],
-    'template-curly-spacing': [2, 'never'],
-    'use-isnan': 2,
-    'valid-typeof': 2,
-    'wrap-iife': [2, 'any'],
-    'yield-star-spacing': [2, 'both'],
-    'yoda': [2, 'never'],
-    'prefer-const': 2,
-    // 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
-    'object-curly-spacing': [2, 'always', {
-      objectsInObjects: false
-    }],
-    'array-bracket-spacing': [2, 'never'],
-  }
+        'no-duplicate-case': 2, // switch中的case标签不能重复
+        'padded-blocks': 0, // 块语句内行首行尾是否要空行
+        'space-after-keywords': [0, 'always'], // 关键字后面是否要空一格
+        'space-before-blocks': [0, 'always'], // 不以新行开始的块{前面要不要有空格
+        'space-before-function-paren': [0, 'always'], // 函数定义时括号前面要不要有空格
+        'space-in-parens': [0, 'never'], // 小括号里面要不要有空格
+        'space-infix-ops': 0, // 中缀操作符周围要不要有空格
+        eqeqeq: 0, // 必须使用全等
+        'no-var': 0, // 禁用var,用let和const代替
+        'no-inline-comments': 0, // 禁止行内备注
+        indent: 0,
+        'vue/script-indent': 0,
+        'vue/require-prop-type-constructor': 0,
+        'vue/no-use-v-if-with-v-for': 0,
+        'no-trailing-spaces': 0, // 一行结束后面不要有空格
+        'no-multiple-empty-lines': 0, // [1, {"max": 2}],空行最多不能超过2行
+        'no-extra-boolean-cast': 0, // 禁止不必要的bool转换
+        'valid-jsdoc': 0,
+        'one-var': 0, // 连续声明
+        semi: 0, // 语句强制分号结尾
+        'semi-spacing': [0, { before: false, after: true }], // 分号前后空格
+        'no-new': 0, // 禁止在使用new构造一个实例后不赋值
+        'no-extra-semi': 0, // 禁止多余的冒号
+        'keyword-spacing': 0,
+        'arrow-parens': 0, // 箭头函数用小括号括起来 - 关闭
+        'generator-star-spacing': 0, // 生成器函数*的前后空格
+        'no-mixed-operators': 0,
+        'eol-last': 0, // 文件以单一的换行符结束 - 关闭
+        'object-curly-spacing': 0, // 大括号内是否允许不必要的空格
+        'no-callback-literal': 0,
+        'multiline-ternary': 0
+    },
+    parserOptions: {
+        parser: 'babel-eslint'
+    },
+    overrides: [
+        {
+            files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
+            env: {
+                jest: true
+            }
+        }
+    ]
 }

+ 2 - 1
package.json

@@ -36,7 +36,8 @@
     "vue-concise-slider": "^4.2.5",
     "vue-image-upload-preview": "^1.0.2",
     "vue-router": "^3.0.3",
-    "vuex": "^3.0.1"
+    "vuex": "^3.0.1",
+    "weixin-js-sdk": "^1.6.0"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "^3.6.0",

BIN
src/assets/investmentPolicy/rcfw.jpg


+ 185 - 223
src/pages/announcement/index.vue

@@ -1,60 +1,12 @@
 <template>
-  <div class="announcement">
-    <div class="tap-part">
-      <van-tabs
-        v-model="active"
-        title-active-color="#6600FF"
-        color="#6600FF"
-        line-width="175px"
-      >
-        <van-tab title="园区通知">
-          <div class="info-list">
-            <div
-              class="info-item"
-              v-for="item in list1"
-              :key="item.name"
-              @click="
-                $router.push({
-                  path: '/announcement/detail',
-                  query: {
-                    type: '1',
-                    id:item.id
-                  },
-                })
-              "
-            >
-              <div class="left">
-                <i class="iconfont icon-laba"></i>
-              </div>
-
-              <div class="center">
-                <div class="top">
-                  {{ item.title }}
-                </div>
-                <div class="bottom">
-                  <span> {{ item.releaseTime }}</span>
-                </div>
-              </div>
-
-              <div class="right" @click.stop="item.collect = !item.collect">
-                <i
-                  :class="[
-                    'iconfont icon-wujiaoxingxingxingshoucangdianji',
-                    item.collect && 'collect',
-                  ]"
-                ></i>
-              </div>
-            </div>
-          </div>
-        </van-tab>
-        <van-tab
-title="物业通知"
-          ><div class="info-list">
-            <div
-              class="info-item"
-              v-for="item in list2"
-              :key="item.name"
-              @click="
+	<div class="announcement">
+		<div class="tap-part">
+			<div class="info-list">
+				<div
+				 v-for="item in list2"
+				 :key="item.name"
+				 class="info-item"
+				 @click="
                 $router.push({
                   path: '/announcement/detail',
                   query: {
@@ -63,185 +15,195 @@ title="物业通知"
                   },
                 })
               "
-            >
-              <div class="left">
-                <i class="iconfont icon-laba"></i>
-              </div>
-
-              <div class="center">
-                <div class="top">
-                  {{ item.title }}
-                </div>
-                <div class="bottom">
-                    <span> {{ item.releaseTime }}</span>
-                </div>
-              </div>
-
-              <div class="right" @click="item.collect = !item.collect">
-                <i
-                  :class="[
+				>
+					<div class="left">
+						<i class="iconfont icon-laba"></i>
+					</div>
+
+					<div class="center">
+						<div class="top">
+							{{ item.title }}
+						</div>
+						<div class="bottom">
+							<span> {{ item.releaseTime }}</span>
+						</div>
+					</div>
+
+					<div class="right" @click="item.collect = !item.collect">
+						<i
+						 :class="[
                     'iconfont icon-wujiaoxingxingxingshoucangdianji',
                     item.collect && 'collect',
                   ]"
-                ></i>
-              </div>
-            </div></div
-        ></van-tab>
-      </van-tabs>
-    </div>
-  </div>
+						></i>
+					</div>
+				</div>
+			</div
+			>
+		</div>
+	</div>
 </template>
 
 <script>
 import { noticeList } from '../../service/api_park_notice'
 import { propertyNoticeList } from '../../service/api_property_notice'
+
 export default {
-    data() {
-        return {
-            active: 0,
-            list1: [
-            //     {
-            //         title:
-            // '关于组织2020年无锡市服务业提质增效资金项目申报的通知关于组织2020年无锡市服务业提质增效资金项目申报的通知',
-            //         date: '2020-09-18',
-            //         time: '19:34:06',
-            //         collect: false
-            //     },
-
-            ],
-            list2: [
-            //     {
-            //         title:
-            // '关于组织2020年无锡市服务业提质增效资金项目申报的通知关于组织2020年无锡市服务业提质增效资金项目申报的通知',
-            //         date: '2020-09-18',
-            //         time: '19:34:06',
-            //         collect: false
-            //     },
-
-            ],
-            params: {
-                pageNum: 1,
-                pageSize: 10,
-                status: 'published'
-            },
-            totalPage: 1
-        }
-    },
-    created() {
-        this.initParkNotice()
-        this.initPropertyNotice()
-    },
-    methods: {
-        initParkNotice() {
-            const _this = this
-            // _this.params.parks = '' //绑定园区
-            noticeList(_this.params).then((res) => {
-                console.log(res)
-                if (res.data.rows) {
-                    _this.list1 = []
-                    res.data.rows.forEach(item => {
-                        const jsons = this.getItemJson(item)
-                        _this.list1.push(jsons)
-                    })
-                }
-            })
-        },
-        initPropertyNotice() {
-            const _this = this
-            // _this.params.parks = '' //绑定园区
-
-            propertyNoticeList(_this.params).then((res) => {
-                console.log(res)
-                if (res.data.rows) {
-                    _this.list2 = []
-                    res.data.rows.forEach(item => {
-                        const jsons = this.getItemJson(item)
-                        _this.list2.push(jsons)
-                    })
-                }
-            })
-        },
-        getItemJson: function(item) {
-            item.releaseTime = this.$common.transServDate(item.releaseTime)
-            return item
-        }
-    }
+	data() {
+		return {
+			active: 0,
+			list1: [
+				//     {
+				//         title:
+				// '关于组织2020年无锡市服务业提质增效资金项目申报的通知关于组织2020年无锡市服务业提质增效资金项目申报的通知',
+				//         date: '2020-09-18',
+				//         time: '19:34:06',
+				//         collect: false
+				//     },
+
+			],
+			list2: [
+				{
+					title:
+					 '关于组织2020年无锡市服务业提质增效资金项目申报的通知关于组织2020年无锡市服务业提质增效资金项目申报的通知',
+					date: '2020-09-18',
+					time: '19:34:06',
+					collect: false
+				}
+
+			],
+			params: {
+				pageNum: 1,
+				pageSize: 10,
+				status: 'published'
+			},
+			totalPage: 1
+		}
+	},
+	mounted() {
+		// this.initParkNotice()
+		this.initPropertyNotice()
+	},
+	methods: {
+		initParkNotice() {
+			const _this = this
+			// _this.params.parks = '' //绑定园区
+			noticeList(_this.params).then((res) => {
+				console.log(res)
+				if (res.data.rows) {
+					_this.list1 = []
+					res.data.rows.forEach(item => {
+						const jsons = this.getItemJson(item)
+						_this.list1.push(jsons)
+					})
+				}
+			})
+		},
+		initPropertyNotice() {
+			const _this = this
+			// _this.params.parks = '' //绑定园区
+
+			propertyNoticeList(_this.params).then((res) => {
+				console.log(res)
+				if (res.data.rows) {
+					_this.list2 = []
+					res.data.rows.forEach(item => {
+						const jsons = this.getItemJson(item)
+						_this.list2.push(jsons)
+					})
+				}
+			})
+		},
+		getItemJson: function(item) {
+			item.releaseTime = this.$common.transServDate(item.releaseTime)
+			return item
+		}
+	}
 }
 </script>
 
-<style lang="scss" type="text/scss" scoped>
+<style lang="scss" scoped type="text/scss">
 .announcement {
-  box-sizing: border-box;
-  .tap-part {
-    margin-top: 10px;
-    height: calc(100vh - 10px);
-
-    .van-tabs {
-      height: 100%;
-    }
-
-    .info-list {
-      height: calc(100vh - 92px);
-      background-color: #fff;
-      padding: 0 20px;
-      overflow-y: auto;
-      .info-item {
-        @include fj;
-        padding: 30px 0;
-        border-bottom: 1px solid $color3;
-        .left {
-          text-align: center;
-          width: 160px;
-          i {
-            font-size: 48px;
-            color: $main;
-          }
-        }
-
-        .center {
-          width: 508px;
-          height: 100px;
-          display: flex;
-          flex-direction: column;
-          justify-content: space-between;
-
-          .top {
-            width: 508px;
-            @include line-clamp;
-            font-size: 26px;
-            font-weight: 700;
-            color: $text3;
-            line-height: 1.4;
-          }
-          .bottom {
-            span {
-              font-size: 20px;
-              color: $color4;
-              &:first-child {
-                margin-right: 40px;
-              }
-            }
-          }
-        }
-
-        .right {
-          width: 160px;
-          height: 100px;
-          text-align: center;
-          line-height: 100px;
-          i {
-            font-size: 32px;
-            color: $color3;
-              &.blue{
-                  color: $main;
-              }
-          }
-          .collect {
-            color: $color8;
-          }
-        }
-      }
-    }
-  }
+	box-sizing: border-box;
+
+	.tap-part {
+		margin-top: 10px;
+		height: calc(100vh - 10px);
+
+		.van-tabs {
+			height: 100%;
+		}
+
+		.info-list {
+			height: calc(100vh - 92px);
+			background-color: #fff;
+			padding: 0 20px;
+			overflow-y: auto;
+
+			.info-item {
+				@include fj;
+				padding: 30px 0;
+				border-bottom: 1px solid $color3;
+
+				.left {
+					text-align: center;
+					width: 160px;
+
+					i {
+						font-size: 48px;
+						color: $main;
+					}
+				}
+
+				.center {
+					width: 508px;
+					height: 100px;
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+
+					.top {
+						width: 508px;
+						@include line-clamp;
+						font-size: 26px;
+						font-weight: 700;
+						color: $text3;
+						line-height: 1.4;
+					}
+
+					.bottom {
+						span {
+							font-size: 20px;
+							color: $color4;
+
+							&:first-child {
+								margin-right: 40px;
+							}
+						}
+					}
+				}
+
+				.right {
+					width: 160px;
+					height: 100px;
+					text-align: center;
+					line-height: 100px;
+
+					i {
+						font-size: 32px;
+						color: $color3;
+
+						&.blue {
+							color: $main;
+						}
+					}
+
+					.collect {
+						color: $color8;
+					}
+				}
+			}
+		}
+	}
 }
 </style>

+ 178 - 0
src/pages/economicData/detial.vue

@@ -0,0 +1,178 @@
+<template>
+	<div class="settleIn">
+		<div class="tabs-box">
+			<div class="form-part">
+				<van-form>
+					<van-field
+					 class="input-item"
+					 label="年份"
+					 disabled
+					 v-model="reportFrom.year"
+					 placeholder="请填写"
+					 input-align="right"
+					/>
+					<van-field
+					 class="input-item"
+					 label="月份"
+					 disabled
+					 v-model="reportFrom.month"
+					 placeholder="请填写"
+					 input-align="right"
+					/>
+
+					<van-field
+					 class="input-item"
+					 label="*营业收入(万元)"
+					 disabled
+					 v-model="reportFrom.businessIncome"
+					 placeholder="请填写"
+					 input-align="right"
+					/>
+					<van-field
+					 class="input-item"
+					 disabled
+					 label="*税收收入(万元):"
+					 v-model="reportFrom.taxRevenue"
+					 input-align="right"
+					 placeholder="请填写"
+					/>
+					<van-field
+					 class="input-item"
+					 disabled
+					 label="*投融资金额(万元)"
+					 v-model="reportFrom.investment"
+					 input-align="right"
+					 placeholder="请填写"
+					/>
+
+					<van-field
+					 class="input-item"
+					 disabled
+					 label="*员工总人数(人)"
+					 v-model="reportFrom.staffNumber"
+					 input-align="right"
+					 placeholder="请填写"
+					/>
+					<van-field
+					 disabled
+					 class="input-item item-width"
+					 input-align="right"
+					 v-model="reportFrom.undergraduateNumber"
+					 label="*本科以上(含本科)员工的人数"
+					 placeholder="请填写"
+					/>
+				</van-form>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+import {
+	getEconomyReportDetail
+} from '@/service/api_economyReport';
+export default {
+	data() {
+		return {
+			reportFrom: {}
+		};
+	},
+	mounted() {
+		this.getDetial();
+	},
+
+	methods: {
+
+		// 获取详情
+		getDetial(){
+			let reqData = {
+				id: this.getQueryString('id')
+			}
+			getEconomyReportDetail(reqData).then((res) => {
+				this.reportFrom = res.data;
+			})
+		},
+
+		// 获取页面携带数据
+		getQueryString(name) {
+			var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
+			var r = window.location.search.substr(1).match(reg);
+			if (r != null) return unescape(r[2]);
+			return null;
+		}
+
+	}
+};
+</script>
+
+<style lang="scss" type="text/scss" scoped>
+.settleIn {
+	padding: 0 0 140px;
+	overflow-y: auto;
+	/deep/.van-tabs__wrap {
+		height: 100px;
+		background: #ffffff;
+		box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		margin-bottom: 10px;
+	}
+
+	.tabs-box {
+		margin: 20px 0;
+		.form-part {
+			padding: 4px 0 10px;
+			overflow-y: auto;
+			height: calc(100vh -280px);
+			background: #fff;
+			.input-item {
+				/deep/.van-field__label {
+					width: 320px;
+					margin: 0;
+				}
+			}
+			.item-width {
+				/deep/.van-field__label {
+					width: 450px;
+				}
+			}
+		}
+		.part-2 {
+			overflow-y: auto;
+			height: calc(100vh -160px);
+			box-sizing: border-box;
+			.card-item {
+				margin: 0 30px 30px;
+				.card-top {
+					@include flex;
+					.card-left {
+						display: flex;
+						justify-content: space-between;
+						flex-direction: column;
+						height: 100px;
+						.tit {
+							width: 400px;
+							font-size: 32px;
+							color: #333;
+							@include line-over;
+						}
+
+						.date {
+							font-size: 28px;
+							color: #999;
+						}
+					}
+					.card-right {
+						align-self: flex-start;
+					}
+				}
+
+				.card-bottom {
+					height: 80px;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
+				}
+			}
+		}
+	}
+}
+</style>

+ 510 - 0
src/pages/economicData/index.vue

@@ -0,0 +1,510 @@
+<template>
+	<div class="settleIn">
+		<van-tabs
+		 v-model="active"
+		 title-active-color="#6600FF"
+		 color="#6600FF"
+		 @click="tabsClick"
+		 title-inactive-color="#666666"
+		 line-width="120px"
+		>
+			<van-tab title="新增填报">
+				<div class="tabs-box">
+					<div class="form-part">
+						<van-form>
+							<van-field
+							 class="input-item"
+							 readonly
+							 clickable
+							 input-align="right"
+							 name="datetimePicker"
+							 v-model="reportFrom.year"
+							 label="年份"
+							 placeholder="请选择年份"
+							 @click="showPicker_year = true"
+							/>
+							<van-popup v-model="showPicker_year" position="bottom">
+								<van-picker
+								 title="年份"
+								 show-toolbar
+								 default-index="100"
+								 :columns="year"
+								 @confirm="(value) => onConfirm(value, 'year')"
+								 @cancel="showPicker_year = false"
+								/>
+							</van-popup>
+
+							<van-field
+							 class="input-item"
+							 readonly
+							 clickable
+							 input-align="right"
+							 name="datetimePicker"
+							 v-model="reportFrom.month"
+							 label="归属月份"
+							 placeholder="请选择月份"
+							 @click="showPicker_month = true"
+							/>
+							<van-popup v-model="showPicker_month" position="bottom">
+								<van-picker
+								 title="归属月份"
+								 show-toolbar
+								 :columns="month"
+								 @confirm="(value) => onConfirm(value, 'month')"
+								 @cancel="showPicker_month = false"
+								/>
+							</van-popup>
+
+							<van-field
+							 class="input-item"
+							 label="*营业收入(万元)"
+							 v-model="reportFrom.businessIncome"
+							 placeholder="请填写"
+							 input-align="right"
+							/>
+							<van-field
+							 class="input-item"
+							 label="*税收收入(万元):"
+							 v-model="reportFrom.taxRevenue"
+							 input-align="right"
+							 placeholder="请填写"
+							/>
+							<van-field
+							 class="input-item"
+							 label="*投融资金额(万元)"
+							 v-model="reportFrom.investment"
+							 input-align="right"
+							 placeholder="请填写"
+							/>
+
+							<van-field
+							 class="input-item"
+							 label="*员工总人数(人)"
+							 v-model="reportFrom.staffNumber"
+							 input-align="right"
+							 placeholder="请填写"
+							/>
+							<van-field
+							 class="input-item item-width"
+							 input-align="right"
+							 v-model="reportFrom.undergraduateNumber"
+							 label="*本科以上(含本科)员工的人数"
+							 placeholder="请填写"
+							/>
+						</van-form>
+					</div>
+
+					<div class="white-bottom">
+						<div class="two-button">
+							<div class="btn" @click="operationModel(0)">保存</div>
+							<div class="btn" @click="operationModel(1)">提交</div>
+						</div>
+					</div>
+				</div>
+			</van-tab>
+			<van-tab title="填报历史">
+				<div class="tabs-box">
+					<div class="part-2">
+						<van-pull-refresh v-model="refreshing" @refresh="onRefresh" style="min-height: 85vh;">
+							<van-list
+							 v-model="loading"
+							 :finished="finished"
+							 finished-text="没有更多了"
+							 :immediate-check="false"
+							 @load="onLoad"
+							>
+								<div class="card-item white-card" v-for="item in reportList" :key="item.year">
+									<div class="card-top" @click="goDetial(item.id)">
+										<div class="card-left">
+											<p class="tit">{{ item.year + "-" + item.month }}</p>
+											<p class="date">提交时间:{{ item.createdAt }}</p>
+										</div>
+										<div class="card-right">
+                      <span class="normal-tip yd z-bg" v-if="item.isSave == '1'"
+											>已提交</span
+											>
+										</div>
+									</div>
+									<div class="card-bottom">
+                    <span
+										 v-if="item.isSave != '1'"
+										 @click="editInfo(item)"
+										 class="normal-button-app z-bt"
+										>编辑</span
+										>
+										<span
+										 v-if="item.isSave != '1'"
+										 @click="deleteInfo(item.id)"
+										 class="normal-button-app y-bt"
+										>删除</span
+										>
+									</div>
+								</div>
+							</van-list>
+						</van-pull-refresh>
+					</div>
+				</div>
+			</van-tab>
+		</van-tabs>
+	</div>
+</template>
+
+<script>
+import { Toast } from "vant";
+import auth from "@/service/auth";
+import {
+	getEconomyReportList,
+	operationEconomyReportInfo,
+	deleteInfo,
+} from "@/service/api_economyReport";
+export default {
+	data() {
+		return {
+			loading: false,
+			finished: false,
+			refreshing: false,
+			requestParam: {
+				pageNum: 1,
+				pageSize: 10
+			},
+			total: 0,
+
+			active: 0,
+			value1: "",
+			showPicker_year: false,
+
+			currUser: {},
+			groupId: "870261874875170816",
+			createdId: "",
+			reportFrom: [],
+			reportList: [],
+
+			value2: "",
+			showPicker_month: false,
+			list1: [
+				{
+					title: "2021年 - 5月 ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "2021年 - 5月",
+					time: "2021-10-1 13:40",
+					type: "2",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "2",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "2",
+				},
+				{
+					title: "2021年 - 5月  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+			],
+			month: [
+				"1月",
+				"2月",
+				"3月",
+				"4月",
+				"5月",
+				"6月",
+				"7月",
+				"8月",
+				"9月",
+				"10月",
+				"11月",
+				"12月",
+			],
+			year: [],
+		};
+	},
+	mounted() {
+		this.currUser = auth.currUser();
+		this.createdId = this.currUser.id;
+
+		this.getYear();
+
+		//赋值本年
+		this.reportFrom.year = new Date().getFullYear();
+		//赋值本月
+		let moth = (new Date().getMonth()+1)+"月";
+		this.reportFrom.month = moth;
+	},
+
+	methods: {
+		onRefresh() {
+			this.requestParam.pageNum = 1;
+			this.getList();
+		},
+
+		onLoad(){
+			if (this.refreshing) {
+				this.reportList = [];
+				this.refreshing = false;
+			}
+			if (this.reportList.length >= this.total) {
+				this.finished = true;
+			}else{
+				let reqData = {
+					userId: this.createdId,
+					groupId: this.groupId,
+					pageNum: this.requestParam.pageNum++,
+					pageSize: this.requestParam.pageSize,
+				}
+				getEconomyReportList(reqData).then((res) => {
+					res.rows.forEach(element => {
+						this.reportList.push(element);
+					});
+					this.total = res.total;
+				})
+			}
+			this.loading = false;
+		},
+
+		//获取填报历史
+		getList() {
+			let reqData = {
+				userId: this.createdId,
+				groupId: this.groupId,
+				pageNum: this.requestParam.pageNum++,
+				pageSize: this.requestParam.pageSize,
+			};
+			getEconomyReportList(reqData).then((res) => {
+				this.reportList = res.rows;
+				this.total = res.total;
+				this.refreshing = false;
+			});
+		},
+
+		//判断必填字段
+		requiredOk(){
+			//营业收入
+			if(!this.reportFrom.businessIncome){
+				Toast("请填写营业收入");
+				return false;
+			}
+			//税收收入
+			if(!this.reportFrom.taxRevenue){
+				Toast("请填写税收收入");
+				return false;
+			}
+			//投融资金额
+			if(!this.reportFrom.investment){
+				Toast("请填写投融资金额");
+				return false;
+			}
+			//员工总人数
+			if(!this.reportFrom.staffNumber){
+				Toast("请填写员工总人数");
+				return false;
+			}
+			//本科以上
+			if(!this.reportFrom.undergraduateNumber){
+				Toast("请填写本科以上人数");
+				return false;
+			}
+			return true;
+		},
+
+		//操作金发
+		operationModel(isSave) {
+			//营业收入
+			if(!this.reportFrom.businessIncome){
+				Toast("请填写营业收入");
+				return false;
+			}
+			//税收收入
+			if(!this.reportFrom.taxRevenue){
+				Toast("请填写税收收入");
+				return false;
+			}
+			//投融资金额
+			if(!this.reportFrom.investment){
+				Toast("请填写投融资金额");
+				return false;
+			}
+			//员工总人数
+			if(!this.reportFrom.staffNumber){
+				Toast("请填写员工总人数");
+				return false;
+			}
+			//本科以上
+			if(!this.reportFrom.undergraduateNumber){
+				Toast("请填写本科以上人数");
+				return false;
+			}
+
+			this.reportFrom.groupId = this.groupId;
+			this.reportFrom.createdId = this.createdId;
+			this.reportFrom.isSave = isSave;
+			operationEconomyReportInfo(this.reportFrom).then((res) => {
+				// console.log("操作金发_:", res);
+				if (res.code == 200) {
+					this.reportFrom = {};
+					this.active = 1;
+					this.tabsClick();
+					Toast(res.msg);
+				}
+			});
+		},
+
+		//修改
+		editInfo(item) {
+			this.reportFrom = item;
+			this.active = 0;
+		},
+
+		//删除
+		deleteInfo(id) {
+			this.$dialog
+			 .alert({
+				 title: "确认操作", //加上标题
+				 message: "是否删除该记录?", //改变弹出框的内容
+				 showCancelButton: true, //展示取水按钮
+			 })
+			 .then(() => {
+				 //点击确认按钮后的调用
+				 let reqDate = {
+					 id: id,
+				 };
+				 deleteInfo(reqDate).then((res) => {
+					 if (res.key == 200) {
+						 this.getList();
+						 Toast("删除成功");
+					 }
+				 });
+			 })
+			 .catch(() => {
+				 //点击取消按钮后的调用
+				 Toast("已取消操作");
+			 });
+		},
+
+		//切换
+		tabsClick() {
+			if (this.active != 0) {
+				// this.reportFrom = {};
+				this.getList();
+			}
+		},
+
+		onConfirm(value, type) {
+			this.reportFrom[type] = value;
+			this["showPicker_" + type] = false;
+		},
+
+		goDetial(id){
+			this.$router.push("/economicData/detial?id="+id);
+		},
+
+		//    获取年份
+		getYear() {
+			let nowYear = new Date().getFullYear();
+			let nowYear2 = new Date().getFullYear()+1;
+			let gqList = [];
+			for (let i = 0; i <= 100; i++) {
+				gqList.push(nowYear--);
+			}
+			this.year = gqList.reverse();
+
+			for (let i = 0; i <= 100; i++) {
+				this.year.push(nowYear2++);
+			}
+		},
+	},
+};
+</script>
+
+<style lang="scss" type="text/scss" scoped>
+.settleIn {
+	padding: 0 0 140px;
+	overflow-y: auto;
+	/deep/.van-tabs__wrap {
+		height: 100px;
+		background: #ffffff;
+		box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		margin-bottom: 10px;
+	}
+
+	.tabs-box {
+		margin: 20px 0;
+		.form-part {
+			padding: 4px 0 10px;
+			overflow-y: auto;
+			height: calc(100vh -280px);
+			background: #fff;
+			.input-item {
+				/deep/.van-field__label {
+					width: 320px;
+					margin: 0;
+				}
+			}
+			.item-width {
+				/deep/.van-field__label {
+					width: 450px;
+				}
+			}
+		}
+		.part-2 {
+			overflow-y: auto;
+			height: calc(100vh -160px);
+			box-sizing: border-box;
+			.card-item {
+				margin: 0 30px 30px;
+				.card-top {
+					@include flex;
+					.card-left {
+						display: flex;
+						justify-content: space-between;
+						flex-direction: column;
+						height: 100px;
+						.tit {
+							width: 400px;
+							font-size: 32px;
+							color: #333;
+							@include line-over;
+						}
+
+						.date {
+							font-size: 28px;
+							color: #999;
+						}
+					}
+					.card-right {
+						align-self: flex-start;
+					}
+				}
+
+				.card-bottom {
+					height: 80px;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
+				}
+			}
+		}
+	}
+}
+</style>

File diff suppressed because it is too large
+ 688 - 645
src/pages/home-app/home.vue


+ 164 - 55
src/pages/home-app/index.vue

@@ -27,7 +27,7 @@
 						<img alt="" src="./img/招租求租.png">
 						<div class="btn-list-title">招租求租</div>
 					</div>
-					<div class="btn-list-master">
+					<div class="btn-list-master" @click="goNavigator('talentService-recruiting')">
 						<img alt="" src="./img/找工作.png">
 						<div class="btn-list-title">找工作</div>
 					</div>
@@ -35,23 +35,23 @@
 						<img alt="" src="./img/找资源.png">
 						<div class="btn-list-title">找资源</div>
 					</div>
-					<div class="btn-list-master">
+					<div class="btn-list-master" @click="goNavigator('settleIn')">
 						<img alt="" src="./img/企业认证.png">
 						<div class="btn-list-title">企业认证</div>
 					</div>
 				</div>
 			</div>
-			<div class="notice-box">
+			<div class="notice-box" v-for="item in policyData">
 				<div class="border"></div>
 				<div class="notice-content">
 
 					<div class="notice-tab">
-						<div class="notice-title">【政策通知】</div>
-						<div class="more">更多></div>
+						<div class="notice-title">{{ item.title }}</div>
+						<div class="more" style="margin-top:0" @click="goNavigator('announcement')">更多></div>
 
 					</div>
 
-					<div class="notice-text">请五星家园小区居民保持24小时开机等待核算通知</div>
+					<div class="notice-text">{{ $common.transDate(item.createdAt, 'yyyy-MM-dd hh:mm:ss') }}</div>
 				</div>
 			</div>
 			<div class="introduce-box">
@@ -64,8 +64,8 @@
 					>
 						{{ item.label }}
 					</div>
-<!--					<div :class="chooseStatus==2?['default-tabs','is-selected']:['default-tabs']">服务定位</div>-->
-<!--					<div :class="chooseStatus==3?['default-tabs','is-selected']:['default-tabs']">服务定位</div>-->
+					<!--					<div :class="chooseStatus==2?['default-tabs','is-selected']:['default-tabs']">服务定位</div>-->
+					<!--					<div :class="chooseStatus==3?['default-tabs','is-selected']:['default-tabs']">服务定位</div>-->
 				</div>
 				<div :class="isAllshow?['context']:['context','hidden']" style="margin-top: 12px">
 					<div class="apiHtmlClass" v-html="parkInfo"></div>
@@ -82,32 +82,49 @@
 				<div class="companyserver-title">企业服务</div>
 				<div class="companyserver-button">
 					<div class="img png1" @click="goNavigator('resource-release')">资源发布</div>
-					<div class="img png2">政策服务</div>
-					<div class="img png3">经发填报</div>
-					<div class="img png3"></div>
-					<div class="img png3"></div>
-					<div class="img png3"></div>
-					<div class="img png3"></div>
+					<div class="img png2" @click="goNavigator('industrialPolicy')">政策服务</div>
+					<div class="img png3" @click="goNavigator('economicData')"> 经发填报</div>
+					<div class="img png3" @click="goNavigator('parkTraining')">园区培训</div>
+					<div class="img"></div>
+					<!--					<div class="img png3"></div>-->
+					<!--					<div class="img png3"></div>-->
 				</div>
 			</div>
 			<div class="company-study">
-				<van-tabs v-model="active" color="#4CB0E4" title-active-color="#4CB0E4" line-width="50%"	>
+				<van-tabs v-model="active1" color="#4CB0E4" title-active-color="#4CB0E4" line-width="50%">
 					<van-tab title="园区培训">
 						<div class="more" @click="goNavigator('parkTraining')">更多></div>
-						<div class="card">
+						<div class="card" v-for="item in parkTrainData" @click="getDetail(item)">
 							<div class="card-img">
+								<img :src="item.annexArray[0]" alt=""/>
 							</div>
 							<div class="card-right">
 								<div class="card-tit">
-									标题标题标题标题标题标题标题标题标题标题标题标题标题
+									{{ item.trainTitle }}
 								</div>
 								<div class="card-time">
-									2023-08-03 00:48:34
+									{{ $common.transDate(item.createdAt, 'yyyy-MM-dd hh:mm:ss') }}
+								</div>
+							</div>
+						</div>
+					</van-tab>
+					<van-tab title="园区活动">
+						<div class="more" @click="goNavigator('parkActivities')">更多></div>
+						<div class="card" v-for="item in parkActivityData" @click="getDetail1(item)">
+							<div class="card-img">
+								<img :src="item.annexArray[0]" alt=""/>
+							</div>
+							<div class="card-right">
+								<div class="card-tit">
+									{{ item.activityName }}
+								</div>
+								<div class="card-time">
+									{{ $common.transDate(item.createdAt, 'yyyy-MM-dd hh:mm:ss') }}
+
 								</div>
 							</div>
 						</div>
 					</van-tab>
-					<van-tab title="园区活动">园区活动</van-tab>
 				</van-tabs>
 			</div>
 		</div>
@@ -123,7 +140,7 @@
 			>
 				<van-tabbar-item>
 					<template #icon="props">
-						<van-icon name="wap-home-o" />
+						<van-icon name="wap-home-o"/>
 					</template>
 					园区管理
 				</van-tabbar-item>
@@ -140,21 +157,25 @@
 	</div>
 </template>
 <script>
-import {findInfoByPortalType}from "@/service/api_first-page"
+import { findInfoByPortalType, parkTrain, parkActivity, policy } from '@/service/api_first-page'
 import auth from '@/service/auth'
 import { slider, slideritem } from 'vue-concise-slider'
 import Base from '@/pages/base/base.vue'
+
 export default {
 	mixins: [Base],
 	components: {
 		slider,
-		slideritem,
+		slideritem
 	},
 	data() {
 		return {
-
-			parkInfo:"",
-			dc_data:{},
+			policyData: '',
+			parkActivityData: [],
+			parkTrainData: [],
+			active1: 0,
+			parkInfo: '',
+			dc_data: {},
 			dc_key: ['portal_type'],
 			isAllshow: false,
 			chooseStatus: 1,
@@ -192,6 +213,12 @@ export default {
 					icon: 'icon-xiaoxi',
 					newMessage: false // 是否有信息的信息
 				}
+				// 4: {
+				// 	name: '通知公告',
+				// 	routerName: 'announcement',
+				// 	icon: 'icon-xiaoxi',
+				// 	newMessage: false // 是否有信息的信息
+				// }
 			},
 			// needList: [
 			//   {
@@ -701,21 +728,82 @@ export default {
 
 		this.initDict(this.dc_key).then((res) => {
 			console.log(this.dc_data)
-			this.chooseStatus=this.dc_data.portal_type[1].value
+			this.chooseStatus = this.dc_data.portal_type[1].value
 			this.getIntroduce(this.chooseStatus)
+			this.parkTrain()
+			this.parkActivity()
+			this.policy()
 			this.$forceUpdate()
 		})
 	},
 	methods: {
-		async getIntroduce(value){
-			this.chooseStatus=value
-		let { data }=await findInfoByPortalType({type:value})
+		getDetail1(val) {
+			this.$router.push({
+				path: '/parkActivities/detail',
+				query: {
+					// 这里面是写需要传送的值
+					id: val.id
+				}
+			})
+		},
+		getDetail(val) {
+			if (val.onlineOfflineStatus === '线下') {
+				this.$router.push({
+					path: '/parkTraining/detail',
+					query: {
+						// 这里面是写需要传送的值
+						id: val.id
+					}
+				})
+			} else {
+				this.$router.push({
+					path: '/parkTraining/onlineDetail',
+					query: {
+						// 这里面是写需要传送的值
+						id: val.id
+					}
+				})
+			}
+		},
+		async parkTrain() {
+			let data = await parkTrain()
+			for (let i = 0; i < data.length; i++) {
+				data[i].annexArray[0] = data[i].annexArray[0].replace('/webServer/FileController/download/', process.env.VUE_APP_API_URL + '/FileController/download/')
+
+			}
+			this.parkTrainData = data
+			console.log('aaaaaaaaaaaaaaaaaaaaaa', data)
+		},
+
+		async policy() {
+			let { data } = await policy()
+			this.policyData = data
+			console.log('aaaaaaaaaaaaaaaaaaaaaa', data)
+		},
+		async parkActivity() {
+			let data = await parkActivity()
+			for (let i = 0; i < data.length; i++) {
+				data[i].annexArray[0] = data[i].annexArray[0].replace('/webServer/FileController/download/', process.env.VUE_APP_API_URL + '/FileController/download/')
+
+			}
+			this.parkActivityData = data
+			console.log('aaaaaaaaaaaaaaaaaaaaaa', data)
+		},
+		onChangeRoute(index) {
+			// 跳转到我的
+			if (index === 1) this.goNavigator('mine-app')
+			// alert(index) /home
+			// if (index === 1) this.goNavigator("mine");
+		},
+		async getIntroduce(value) {
+			this.chooseStatus = value
+			let { data } = await findInfoByPortalType({ type: value })
 			console.log(data)
-			this.parkInfo=data.info.replace("/webServer/FileController/download/",process.env.VUE_APP_API_URL+'/FileController/download/')
+			this.parkInfo = data.info.replace('/webServer/FileController/download/', process.env.VUE_APP_API_URL + '/FileController/download/')
 		},
-		toPath(path){
+		toPath(path) {
 			this.$router.push({
-				name: path,
+				name: path
 
 			})
 		},
@@ -747,32 +835,35 @@ export default {
 					})
 				}
 			})
-		},
+		}
 
 	}
 }
 </script>
 <style lang="scss">
-.apiHtmlClass{
-	img{
-		max-width: 100%!important;
+.apiHtmlClass {
+	img {
+		max-width: 100% !important;
 	}
 }
 
-.white-bottom{
-	position: absolute!important;
-	.van-tabbar{
-		background: url("./img/tabberbg.png")!important;
+.white-bottom {
+	position: absolute !important;
+
+	.van-tabbar {
+		background: url("./img/tabberbg.png") !important;
 		width: 100%;
 		height: 105px;
 		background-size: 100% 100% !important;
 	}
+
 	.van-hairline--top-bottom {
-		&:after{
+		&:after {
 			border: none;
 		}
 	}
-	img{
+
+	img {
 		height: 100px;
 		width: 100px;
 		position: relative;
@@ -780,15 +871,18 @@ export default {
 		top: -50px;
 
 	}
+
 	//background: url("./img/tabberbg.png")no-repeat!important;
 
-	.van-tabbar-item{
-		background: rgba(0,0,0,0)!important;
+	.van-tabbar-item {
+		background: rgba(0, 0, 0, 0) !important;
 	}
-	.white-bottom{
-		background: rgba(0,0,0,0)!important;
+
+	.white-bottom {
+		background: rgba(0, 0, 0, 0) !important;
 	}
 }
+
 .home {
 	.btn-list {
 		margin-top: 2vh;
@@ -863,7 +957,8 @@ export default {
 
 .home {
 
-	.more{
+	.more {
+
 		font-weight: 500;
 		color: #4CB0E4;
 		font-size: 24px;
@@ -876,17 +971,25 @@ export default {
 		width: 80%;
 		margin-top: 2vh;
 		background: white;
-		.card{
+
+		.card {
 			margin-top: 15px;
-			padding:16px 32px 22px 32px;
+			padding: 16px 32px 22px 32px;
 			display: flex;
-			.card-img{
-				background:#CCCCCC ;
+
+			.card-img {
+				background: #CCCCCC;
 				width: 188px;
 				height: 164px;
-				margin-right:16px;
+				margin-right: 16px;
+
+				img {
+					width: 100%;
+					height: 100%;
+				}
 			}
-			.card-tit{
+
+			.card-tit {
 				margin-top: 4px;
 				width: 330px;
 				height: 60px;
@@ -904,11 +1007,12 @@ export default {
 				white-space: normal;
 				overflow: hidden;
 			}
-			.card-time{
+
+			.card-time {
 				font-weight: 500;
 				color: #AAAAAA;
 				font-size: 24px;
-				margin-top:60px;
+				margin-top: 60px;
 
 			}
 		}
@@ -1041,6 +1145,9 @@ export default {
 		.notice-content {
 			width: 80%;
 			height: 100%;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
 		}
 
 		.notice-title {
@@ -1051,6 +1158,7 @@ export default {
 		}
 
 		.more {
+			margin-top: 10px;
 			font-weight: 500;
 			padding-top: 2.553vw;
 			color: #234582;
@@ -1060,6 +1168,7 @@ export default {
 		.notice-text {
 			width: 90%;
 			padding-top: 0.953vw;
+			padding-bottom: 0.953vw;
 			font-size: 12px;
 			margin-top: 7px;
 			font-weight: 400;

+ 130 - 51
src/pages/industrialPolicy/detail.vue

@@ -1,66 +1,145 @@
 <template>
-  <div class="detail">
-    <div class="detail-body">
-      <div class="detail-card top-tit-card">
-        <div class="left">
-          <i class="iconfont icon-laba"></i>
-        </div>
-        <div class="right">
-          <div class="top">关于入驻基金PARK企业规模发展奖励</div>
-          <div class="bottom">
-            <span> 2021/3/21 12:00</span>
-            <span>园区管委会</span>
-          </div>
-        </div>
-      </div>
-      <div class="detail-card info">
-        <div class="card-title">详情</div>
-        <div class="text">
-          (1)对规模达到1亿元的创业投资基金,可按不超过基金规模1%的比例给予奖励;达到2亿元的,可按不超过1.5%的比例给予奖励;达到5亿元的,可按不超过2%的比例给予奖励。
-        </div>
-      </div>
-    </div>
-    <div class="but-bottom">去申报</div>
-  </div>
+	<div class="detail">
+		<div class="detail-body">
+			<div class="detail-card top-tit-card">
+				<div class="left">
+					<i class="iconfont icon-zhuanxiangfuchizhengce"></i>
+				</div>
+				<div class="right">
+					<div class="top">{{ detail.title }}</div>
+					<div class="bottom">
+						<span> {{ detail.releaseTime }}</span>
+						<span>园区管委会</span>
+					</div>
+				</div>
+			</div>
+			<div class="detail-card info">
+				<div class="card-title">详情</div>
+				<div class="text" v-html="detail.content"></div>
+				<img style="width: 100%;height: 100%" v-for="item in imgUrlList" :src="item.url" alt=""/>
+				<div v-for="item in fileUrlList" style=" font-size: 16px; margin: 10px;color: #0000FF" @click="jumpFile(item)">
+					{{ item.name }}
+				</div>
+				<!--          <div
+				v-for="item in fileUrlList"
+				style="margin:0 0 10px 13px;"
+				@click="pdfDetail(item)">
+											{{item.name}}
+									</div>-->
+
+			</div>
+		</div>
+		<!--    <div class="but-bottom">去申报</div>-->
+	</div>
 </template>
 
 <script>
+import { getById } from '@/service/api_policy'
+import auth from '@/service/auth'
+import wx from 'weixin-js-sdk'
+
 export default {
-    data() {
-        return {}
-    },
+	data() {
+		return {
+			id: '',
+			detail: {},
+			fileUrlList: [],
+			imgUrlList: []
+		}
+	},
+
+	mounted() {
+		this.id = this.$route.query.id
+		this.selectById()
+	},
+	methods: {
+		jumpFile(item) {
+			console.log(window.location.href)
+			console.log(window.location.href.split('#')[0])
+			wx.miniProgram.navigateTo({
+				url: '/pages/file/download?callBackUrl=' + encodeURIComponent(window.location.href.split('#')[0]) +
+				 '&url=' + item.url + '&name=' + item.name
+			})
+		},
+		selectById() {
+			const _this = this
+			getById({ id: this.id }).then((res) => {
+				console.log(res)
+				if (res.data) {
+					const det = _this.getItemJson(res.data)
+					_this.detail = det
+					if (det.fileUrl && det.fileUrl.length > 2) {
+						const themeUrlList = []
+						const imgUrlList = []
+						const files = _this.$common.castEval(det.fileUrl)
+						files.forEach(item => {
+							const ul = {
+								name: item.name,
+								url: item.url.replace('server', 'smartParkH5Server')
+							}
+							if (item.name.indexOf('png') > -1 || item.name.indexOf('jpg') > -1 || item.name.indexOf('jpeg') > -1) {
+								imgUrlList.push(ul)
+							} else {
+								themeUrlList.push(ul)
+							}
+						})
+						if (imgUrlList.length > 0) {
+							_this.imgUrlList = imgUrlList
+						}
+						_this.fileUrlList = themeUrlList
+					}
+				}
+			})
+		},
+		getItemJson: function(item) {
+			item.releaseTime = this.$common.transDate(item.releaseTime)
+			// item.serviceType = this.dc_map.QUICK_SELECTION[item.serviceType]
+			if (item.content && item.content.indexOf('smartParkH5Server' > -1)) {
+				item.content = item.content.replace('server', 'smartParkH5Server')
+			}
+			if (item.content.indexOf('width') !== -1 && item.content.indexOf('height') !== -1) {
+				item.content = item.content.replace(/width="(\S*)"/, 'width="100%"').replace(/height="(\S*)"/, 'height="100%"')
+			}
 
-    mounted() {
-        this.type = this.$route.query.type
-    }
+			return item
+		},
+		pdfDetail: function() {
+			this.$router.push({
+				path: '/industrialPolicy/detail-pdf',
+				query: { id: this.id }
+			})
+		}
+	}
 }
 </script>
 
 <style lang="scss" type="text/scss" scoped>
 .detail {
-  box-sizing: border-box;
-  background-color: $bg2;
-  padding: 20px 30px 140px;
-  overflow-y: auto;
-  .detail-body {
-    .detail-card {
-      padding: 20px 30px;
-      border-radius: 10px;
+	box-sizing: border-box;
+	background-color: $bg2;
+	padding: 20px 30px 140px;
+	overflow-y: auto;
+
+	.detail-body {
+		.detail-card {
+			padding: 20px 30px;
+			border-radius: 10px;
+
+			&:first-child {
+				margin-bottom: 20px;
+			}
+		}
 
-      &:first-child {
-        margin-bottom: 20px;
-      }
-    }
+		.info {
+			padding: 0;
 
-    .info {
-      padding: 0;
-      .text {
-        padding: 30px;
-        font-size: 26px;
-        color: $text3;
-        line-height: 1.4;
-      }
-    }
-  }
+			.text {
+				padding: 30px;
+				font-size: 26px;
+				color: $text3;
+				line-height: 1.4;
+			}
+		}
+	}
 }
 </style>

+ 208 - 193
src/pages/industrialPolicy/index.vue

@@ -1,58 +1,63 @@
 <template>
-  <div class="Industrial">
-    <div class="tips-list-bg">
-      <div
-        :class="['tip-item', item.active && 'active']"
-        v-for="item in tipList"
-        :key="item.name"
-        @click="selectChange(item.id)"
-      >
-        {{ item.name }}
-      </div>
-    </div>
+	<div class="Industrial">
+		<div class="tips-list-bg">
+			<div
+			 :class="['tip-item', item.active && 'active']"
+			 v-for="item in tipList"
+			 :key="item.name"
+			 @click="selectChange(item.id)"
+			>
+				{{ item.name }}
+			</div>
+		</div>
 
-    <div class="news-list">
-      <div
-          v-for="item in dataList"
-        class="news-item detail-card shadow-radius"
-        @click="$router.push('/industrialPolicy/detail')"
-      >
-        <div class="content">
-          <div class="left">
-            <i class="iconfont icon-laba"></i>
-          </div>
-          <div class="right">
-            <div class="top">{{ item.title }}</div>
-            <div class="bottom">
-              <span> {{ item.releaseTime }}</span>
-              <span>园区管委会</span>
-            </div>
-          </div>
-        </div>
-        <div class="t-list">
-          <span class="normal-tip by z-bg">{{ item.policySmallName }}</span>
-        </div>
-      </div>
-<!--      <div class="news-item detail-card shadow-radius">-->
-<!--        <div class="content">-->
-<!--          <div class="left">-->
-<!--            <i class="iconfont icon-laba"></i>-->
-<!--          </div>-->
-<!--          <div class="right">-->
-<!--            <div class="top">关于入驻基金PARK企业规模发展奖励</div>-->
-<!--            <div class="bottom">-->
-<!--              <span> 2021/3/21 12:00</span>-->
-<!--              <span>园区管委会</span>-->
-<!--            </div>-->
-<!--          </div>-->
-<!--        </div>-->
-<!--        <div class="t-list">-->
-<!--          <span class="normal-tip by z-bg">小类</span>-->
-<!--          <span class="normal-tip by z-bg">小类</span>-->
-<!--        </div>-->
-<!--      </div>-->
-    </div>
-  </div>
+		<div class="news-list">
+			<div
+			 v-for="item in dataList"
+			 class="news-item detail-card shadow-radius"
+			 @click="
+          $router.push({
+            path: '/industrialPolicy/detail',
+            query: { id: item.id },
+          })
+        "
+			>
+				<div class="content">
+					<div class="left">
+						<i class="iconfont icon-zhuanxiangfuchizhengce"></i>
+					</div>
+					<div class="right">
+						<div class="top">{{ item.title }}</div>
+						<div class="bottom">
+							<span> {{ item.releaseTime }}</span>
+							<span>园区管委会</span>
+						</div>
+					</div>
+				</div>
+				<div class="t-list">
+					<span class="normal-tip by z-bg">{{ item.policySmallName }}</span>
+				</div>
+			</div>
+			<!--      <div class="news-item detail-card shadow-radius">-->
+			<!--        <div class="content">-->
+			<!--          <div class="left">-->
+			<!--            <i class="iconfont icon-laba"></i>-->
+			<!--          </div>-->
+			<!--          <div class="right">-->
+			<!--            <div class="top">关于入驻基金PARK企业规模发展奖励</div>-->
+			<!--            <div class="bottom">-->
+			<!--              <span> 2021/3/21 12:00</span>-->
+			<!--              <span>园区管委会</span>-->
+			<!--            </div>-->
+			<!--          </div>-->
+			<!--        </div>-->
+			<!--        <div class="t-list">-->
+			<!--          <span class="normal-tip by z-bg">小类</span>-->
+			<!--          <span class="normal-tip by z-bg">小类</span>-->
+			<!--        </div>-->
+			<!--      </div>-->
+		</div>
+	</div>
 </template>
 
 <script>
@@ -60,152 +65,162 @@ import Base from '@/pages/base/base'
 import { getTypeList, list } from '@/service/api_policy'
 
 export default {
-    data() {
-        return {
-            tipList: [
+	data() {
+		return {
+			tipList: [],
+			dataList: [],
+			type: [],
+			params: {
+				pageNum: 1,
+				pageSize: 10,
+				policyBig: '', // auth.currUser().id
+				groupId: '', // 园区
+				status: 'published'
+			},
+			totalPage: 1
+		}
+	},
+	mixins: [Base],
+	mounted() {
+		this.selectPolicyType()
+	},
+	methods: {
+		selectPolicyType() {
+			getTypeList({}).then((res) => {
+				console.log(res)
+				if (res.data) {
+					this.type = res.data
+					this.tipList = []
+					const list = []
+					list.push({ id: '', name: '全部', active: false })
+					res.data.forEach((item) => {
+						if (item.type === 'big') {
+							list.push({
+								id: item.id,
+								name: item.name,
+								active: false
+							})
+						}
+					})
+					this.tipList = list
+				}
+				this.selectChange('')
+			})
+		},
+		selectChange(value) {
+			let tel = true
+			this.tipList.forEach((i) => {
+				if (i.id === value) {
+					if (i.active) {
+						tel = false
+					} else {
+						i.active = true
+					}
+				} else {
+					i.active = false
+				}
+			})
+			if (tel) {
+				this.dataList = []
+				this.selectData(value)
+			}
+		},
+		selectData(value) {
+			const _this = this
+			_this.params.policyBig = value
+			list(_this.params).then((res) => {
+				console.log(res)
+				if (res.data) {
+					res.data.forEach((res) => {
+						const det = _this.getItemJson(res)
+						const types = _this.type
+						const smallNames = []
+						types.forEach((i) => {
+							if (det.policySmall.search(i.id) !== -1) {
+								smallNames.push(i.name)
+							}
+						})
+						det.policySmallName = smallNames.join(',')
+						_this.dataList.push(det)
+					})
+				}
+			})
+		},
+		getItemJson: function(item) {
+			item.releaseTime = this.$common.transServDate(item.releaseTime)
 
-            ],
-            dataList: [],
-            type: [],
-            params: {
-                pageNum: 1,
-                pageSize: 10,
-                policyBig: '', // auth.currUser().id
-                groupId: '' // 园区
-            },
-            totalPage: 1
-        }
-    },
-    mixins: [Base],
-    mounted() {
-        this.selectPolicyType()
-    },
-    methods: {
-        selectPolicyType() {
-            getTypeList({}).then((res) => {
-                console.log(res)
-                if (res.data) {
-                    this.type = res.data
-                    this.tipList = []
-                    const list = []
-                    list.push({ id: '', name: '全部', active: true })
-                    res.data.forEach(item => {
-                        if (item.type === 'big') {
-                            list.push({
-                                id: item.id,
-                                name: item.name,
-                                active: false
-                            })
-                        }
-                    })
-                    this.tipList = list
-                }
-                this.selectChange('')
-            })
-        },
-        selectChange(value) {
-            let tel = true
-            this.tipList.forEach(i => {
-                if (i.id === value) {
-                    if (i.active) {
-                        tel = false
-                    } else {
-                        i.active = true
-                    }
-                } else {
-                    i.active = false
-                }
-            })
-            if (tel) {
-                this.dataList = []
-                this.selectData(value)
-            }
-        },
-        selectData(value) {
-            const _this = this
-            _this.params.policyBig = value
-            list(_this.params).then((res) => {
-                console.log(res)
-                if (res.data.rows) {
-                    res.data.rows.forEach((res) => {
-                        const det = _this.getItemJson(res)
-                        const types = _this.type
-                        types.forEach(i => {
-                            if (i.id === det.policySmall) {
-                                det.policySmallName = i.name
-                            }
-                        })
-                        _this.dataList.push(det)
-                    })
-                }
-            })
-        },
-        getItemJson: function(item) {
-            item.releaseTime = this.$common.transServDate(item.releaseTime)
-
-            return item
-        }
-    }
+			return item
+		}
+	}
 }
 </script>
 
 <style lang="scss" type="text/scss" scoped>
 .Industrial {
-  box-sizing: border-box;
-  margin-top: 10px;
-  background-color: #fff;
-  height: calc(100vh - 10px);
-  padding: 60px 30px 40px;
-  overflow-y: auto;
-  .news-list {
-    .news-item {
-      margin-bottom: 50px;
-      padding: 30px;
-      .content {
-        @include flex;
-        .left {
-          width: 50px;
-          align-self: flex-start;
-          i {
-            font-size: 50px;
-            color: $main;
-          }
-        }
-        .right {
-          width: 540px;
-          height: 120px;
-          display: flex;
-          flex-direction: column;
-          justify-content: space-between;
+	box-sizing: border-box;
+	margin-top: 10px;
+	background-color: #fff;
+	height: calc(100vh - 10px);
+	padding: 60px 30px 40px;
+	overflow-y: auto;
+
+	.news-list {
+		.news-item {
+			margin-bottom: 50px;
+			padding: 30px;
+
+			.content {
+				@include flex;
+
+				.left {
+					width: 50px;
+					align-self: flex-start;
+
+					i {
+						font-size: 50px;
+						color: $main;
+					}
+				}
+
+				.right {
+					width: 540px;
+					height: 120px;
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+
+					.top {
+						width: 540px;
+						@include line-clamp;
+						font-size: 30px;
+						font-weight: 700;
+						color: $text3;
+						line-height: 1.4;
+					}
+
+					.bottom {
+						span {
+							font-size: 22px;
+							color: $text5;
+
+							&:first-child {
+								margin-right: 40px;
+							}
+						}
+					}
+				}
+			}
+
+			.t-list {
+				padding: 20px 0 0;
+				text-align: right;
 
-          .top {
-            width: 540px;
-            @include line-clamp;
-            font-size: 30px;
-            font-weight: 700;
-            color: $text3;
-            line-height: 1.4;
-          }
-          .bottom {
-            span {
-              font-size: 22px;
-              color: $text5;
-              &:first-child {
-                margin-right: 40px;
-              }
-            }
-          }
-        }
-      }
-      .t-list {
-        padding: 20px 0 0;
-        text-align: right;
-        span {
-          padding: 10px 30px 10px;
-          margin-left: 10px;
-        }
-      }
-    }
-  }
+				span {
+					padding: 10px 30px 10px;
+					margin-left: 10px;
+				}
+			}
+		}
+	}
 }
 </style>

+ 100 - 0
src/pages/industrialPolicy/pdfDetail.vue

@@ -0,0 +1,100 @@
+<template>
+	<div class="detail">
+		<!--预览-->
+		<div v-for="item in fileUrlList">
+			<pdf ref="pdf" :src="item.url"></pdf>
+		</div>
+		<!--        <div class="fk-box" @click="getAnnotation">-->
+		<!--            <i class="iconfont icon-fankui2"></i>-->
+		<!--        </div>-->
+		<!--        <div class="repair-bottom bottom-button">-->
+		<!--            <button @click="getForward" class="btn">-->
+		<!--                转发-->
+		<!--            </button>-->
+		<!--        </div>-->
+	</div>
+</template>
+<script>
+import pdf from 'vue-pdf' // 引入pdf组件
+import { getById } from '@/service/api_policy'
+
+export default {
+	components: {
+		pdf
+	},
+	data() {
+		return {
+			id: '',
+			fileUrlList: [],
+			url: 'https://smartpark.idea-sf.com/pdf/1f5edf18512268a73589a15037b44da1.pdf'
+		}
+	},
+	mounted() {
+		this.id = this.$route.query.id
+		this.getById()
+	},
+	methods: {
+		getById() {
+			const _this = this
+			getById({ id: this.id }).then((res) => {
+				console.log(res)
+				if (res.data) {
+					const det = _this.getItemJson(res.data)
+					_this.detail = det
+					if (det.fileUrl && det.fileUrl.length > 2) {
+						const themeUrlList = []
+						const files = _this.$common.castEval(det.fileUrl)
+
+						files.forEach(item => {
+							if (item.url) {
+								item.url = item.url.replace('server', 'smartParkH5Server')
+							}
+							themeUrlList.push(item)
+						})
+						_this.fileUrlList = themeUrlList
+					}
+				}
+			})
+		},
+		getAnnotation() {
+			this.$router.push({
+				path: '/officialDocument-app/annotation',
+				query: {
+					// 这里面是写需要传送的值
+					issuingId: this.issuingId
+				}
+			})
+		},
+		getForward() {
+			this.$router.push({
+				path: '/officialDocument-app/forward',
+				query: {
+					// 这里面是写需要传送的值
+					issuingId: this.issuingId
+				}
+			})
+		}
+	}
+}
+</script>
+<style lang="scss" type="text/scss" scoped>
+.detail {
+	padding: 0 0 180px 0;
+
+	.fk-box {
+		z-index: 9999;
+		position: fixed;
+		bottom: 200px;
+		right: 50px;
+
+		i {
+			font-size: 50px;
+			color: $blue;
+		}
+	}
+
+	.repair-bottom {
+		z-index: 9999;
+	}
+}
+</style>

+ 7 - 4
src/pages/mine-app/index.vue

@@ -80,9 +80,9 @@ export default {
             version: '',
             // 用户信息
             userInfo: {
-                headImg: require('../../assets/image/mine/header-img.png'),
-                userName: '章敏',
-                userPhone: '18321987755'
+                // headImg: require('../../assets/image/mine/header-img.png'),
+                // userName: '章敏',
+                // userPhone: '18321987755'
             },
 
             // 应用
@@ -104,7 +104,8 @@ export default {
                 },
                 {
                     name: '退出系统',
-                    imgSrc: require('../../assets/image/mine/tcxt.png')
+                    imgSrc: require('../../assets/image/mine/tcxt.png'),
+										routerName: 'mine-password-app'
                 }
             ]
         }
@@ -115,7 +116,9 @@ export default {
     // this.getUserInfo(auth.uid())
     },
     mounted() {
+
         this.userInfo.userName = auth.currUser().truename
+			console.log(this.userInfo.userName)
         this.userInfo.userPhone = auth.currUser().phone
     },
     methods: {

+ 1 - 6
src/pages/mine-app/myMessage.vue

@@ -90,12 +90,7 @@ export default {
         pageNum: 1,
         pageSize: 10
       },
-      list1: [
-        {
-          title: "XXX 请假流程",
-          date: "2020-09-18 19:34:06",
-        },
-      ],
+
       list1: [],
 
       loading2: false,

+ 323 - 323
src/pages/mine/certification.vue

@@ -1,270 +1,270 @@
 <template>
-  <div class="settleIn">
-    <!-- 头部状态 -->
-    <div class="top-status">
-      <div class="left">
-        <span class="title">认证状态:</span>
-        <span class="normal-tip z-bg">待提交</span>
-      </div>
-      <div class="right">
-        <span class="title">认证结果:</span>
-        <span class="normal-tip z-br">审核通过</span>
-      </div>
-    </div>
-    <div class="form-part">
-      <van-form>
-        <van-field
-          class="input-item"
-          label="*企业名称"
-          input-align="right"
-          placeholder="用户名"
-        />
+	<div class="settleIn">
+		<!-- 头部状态 -->
+		<div class="top-status">
+			<div class="left">
+				<span class="title">认证状态:</span>
+				<span class="normal-tip z-bg">待提交</span>
+			</div>
+			<div class="right">
+				<span class="title">认证结果:</span>
+				<span class="normal-tip z-br">审核通过</span>
+			</div>
+		</div>
+		<div class="form-part">
+			<van-form>
+				<van-field
+				 class="input-item"
+				 label="*企业名称"
+				 input-align="right"
+				 placeholder="用户名"
+				/>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value1"
-          input-align="right"
-          label="企业类型"
-          @click="showPicker1 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker1" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns1"
-            @confirm="(value) => onConfirm(value, '1')"
-            @cancel="showPicker1 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value1"
+				 input-align="right"
+				 label="企业类型"
+				 @click="showPicker1 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker1" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns1"
+					 @confirm="(value) => onConfirm(value, '1')"
+					 @cancel="showPicker1 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value2"
-          input-align="right"
-          label="是否总部"
-          @click="showPicker2 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker2" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns2"
-            @confirm="(value) => onConfirm(value, '2')"
-            @cancel="showPicker2 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value2"
+				 input-align="right"
+				 label="是否总部"
+				 @click="showPicker2 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker2" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns2"
+					 @confirm="(value) => onConfirm(value, '2')"
+					 @cancel="showPicker2 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value3"
-          input-align="right"
-          label="是否外资"
-          @click="showPicker3 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker3" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns3"
-            @confirm="(value) => onConfirm(value, '3')"
-            @cancel="showPicker3 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value3"
+				 input-align="right"
+				 label="是否外资"
+				 @click="showPicker3 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker3" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns3"
+					 @confirm="(value) => onConfirm(value, '3')"
+					 @cancel="showPicker3 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value4"
-          input-align="right"
-          label="是否进出口"
-          @click="showPicker4 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker4" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns4"
-            @confirm="(value) => onConfirm(value, '4')"
-            @cancel="showPicker4 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value4"
+				 input-align="right"
+				 label="是否进出口"
+				 @click="showPicker4 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker4" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns4"
+					 @confirm="(value) => onConfirm(value, '4')"
+					 @cancel="showPicker4 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value5"
-          input-align="right"
-          label="行业类型"
-          @click="showPicker5 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker5" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns5"
-            @confirm="(value) => onConfirm(value, '5')"
-            @cancel="showPicker5 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value5"
+				 input-align="right"
+				 label="行业类型"
+				 @click="showPicker5 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker5" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns5"
+					 @confirm="(value) => onConfirm(value, '5')"
+					 @cancel="showPicker5 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="value6"
-          input-align="right"
-          label="注册标识"
-          @click="showPicker6 = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker6" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="columns6"
-            @confirm="(value) => onConfirm(value, '6')"
-            @cancel="showPicker6 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item picker-item"
+				 readonly
+				 clickable
+				 :value="value6"
+				 input-align="right"
+				 label="注册标识"
+				 @click="showPicker6 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker6" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns6"
+					 @confirm="(value) => onConfirm(value, '6')"
+					 @cancel="showPicker6 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item"
-          label="*注册资金(万元)"
-          input-align="right"
-          placeholder="请填写"
-        /><van-field
-          class="input-item"
-          label="*统一社会信用代码"
-          input-align="right"
-          placeholder="请填写"
-        />
+				<van-field
+				 class="input-item"
+				 label="*注册资金(万元)"
+				 input-align="right"
+				 placeholder="请填写"
+				/><van-field
+			 class="input-item"
+			 label="*统一社会信用代码"
+			 input-align="right"
+			 placeholder="请填写"
+			/>
 
-        <van-field
-          class="input-item"
-          readonly
-          clickable
-          input-align="right"
-          name="datetimePicker"
-          :value="value7"
-          label="*注册时间"
-          placeholder="请选择"
-          @click="showPicker7 = true"
-        />
-        <van-popup v-model="showPicker7" position="bottom">
-          <van-datetime-picker
-            type="date"
-            @confirm="(value) => onConfirm(value, '7')"
-            @cancel="showPicker7 = false"
-          />
-        </van-popup>
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 input-align="right"
+				 name="datetimePicker"
+				 :value="value7"
+				 label="*注册时间"
+				 placeholder="请选择"
+				 @click="showPicker7 = true"
+				/>
+				<van-popup v-model="showPicker7" position="bottom">
+					<van-datetime-picker
+					 type="date"
+					 @confirm="(value) => onConfirm(value, '7')"
+					 @cancel="showPicker7 = false"
+					/>
+				</van-popup>
 
-        <van-field
-          class="input-item"
-          label="*法定代表"
-          input-align="right"
-          placeholder="请填写"
-        />
+				<van-field
+				 class="input-item"
+				 label="*法定代表"
+				 input-align="right"
+				 placeholder="请填写"
+				/>
 
-        <van-field
-          class="input-item-warp input-item"
-          label="*经营范围"
-          placeholder="请填写"
-        />
-        <van-field
-          class="input-item-warp input-item"
-          label="*注册地址"
-          placeholder="请填写"
-          style="margin-bottom: 1px"
-        />
+				<van-field
+				 class="input-item-warp input-item"
+				 label="*经营范围"
+				 placeholder="请填写"
+				/>
+				<van-field
+				 class="input-item-warp input-item"
+				 label="*注册地址"
+				 placeholder="请填写"
+				 style="margin-bottom: 1px"
+				/>
 
-        <van-field
-          class="input-item"
-          label="*联系人"
-          input-align="right"
-          placeholder="请填写"
-        />
-        <van-field
-          class="input-item"
-          label="*联系电话"
-          input-align="right"
-          placeholder="请填写"
-        />
+				<van-field
+				 class="input-item"
+				 label="*联系人"
+				 input-align="right"
+				 placeholder="请填写"
+				/>
+				<van-field
+				 class="input-item"
+				 label="*联系电话"
+				 input-align="right"
+				 placeholder="请填写"
+				/>
 
-        <van-field
-          class="input-item input-item-warp input-up"
-          name="uploader"
-          label="*营业执照副本"
-        >
-          <template #input>
-            <van-uploader v-model="uploader" />
-          </template>
-        </van-field>
-      </van-form>
-    </div>
+				<van-field
+				 class="input-item input-item-warp input-up"
+				 name="uploader"
+				 label="*营业执照副本"
+				>
+					<template #input>
+						<van-uploader v-model="uploader" />
+					</template>
+				</van-field>
+			</van-form>
+		</div>
 
-    <div class="white-bottom">
-      <div class="two-button">
-        <div class="btn" @click="show1 = true">保存</div>
-        <div class="btn" @click="show2 = true">提交</div>
-      </div>
-    </div>
+		<div class="white-bottom">
+			<div class="two-button">
+				<div class="btn" @click="show1 = true">保存</div>
+				<div class="btn" @click="show2 = true">提交</div>
+			</div>
+		</div>
 
-    <!-- 弹框 -->
-    <van-popup v-model="show1" class="tip-popup">
-      <div class="popup-body">
-        <div class="popup-header">
-          <div class="title">消息</div>
-          <div class="close" @click="show1 = false">
-            <i class="iconfont icon-guanbi"></i>
-          </div>
-        </div>
-        <div class="popup-center">
-          感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
-        </div>
-        <div class="popup-foot">去查看</div>
-      </div>
-    </van-popup>
+		<!-- 弹框 -->
+		<van-popup v-model="show1" class="tip-popup">
+			<div class="popup-body">
+				<div class="popup-header">
+					<div class="title">消息</div>
+					<div class="close" @click="show1 = false">
+						<i class="iconfont icon-guanbi"></i>
+					</div>
+				</div>
+				<div class="popup-center">
+					感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
+				</div>
+				<div class="popup-foot">去查看</div>
+			</div>
+		</van-popup>
 
-    <van-popup v-model="show2" class="tip-popup">
-      <div class="popup-body">
-        <div class="popup-header">
-          <div class="title">消息</div>
-          <div class="close" @click="show2 = false">
-            <i class="iconfont icon-guanbi"></i>
-          </div>
-        </div>
-        <div class="popup-center">
-          感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
-        </div>
-        <div class="popup-foot">去查看</div>
-      </div></van-popup
-    >
-  </div>
+		<van-popup v-model="show2" class="tip-popup">
+			<div class="popup-body">
+				<div class="popup-header">
+					<div class="title">消息</div>
+					<div class="close" @click="show2 = false">
+						<i class="iconfont icon-guanbi"></i>
+					</div>
+				</div>
+				<div class="popup-center">
+					感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
+				</div>
+				<div class="popup-foot">去查看</div>
+			</div></van-popup
+		>
+	</div>
 </template>
 
 <script>
@@ -272,93 +272,93 @@ import Base from "@/pages/base/base";
 // import { getDicks } from "@/api/dick";
 
 export default {
-  mixins: [Base],
-  data() {
-    return {
-      dc_key: ["yesOrNo", "industry", "enterpriseType"],
+	mixins: [Base],
+	data() {
+		return {
+			dc_key: ["yesOrNo", "industry", "enterpriseType"],
 
-      value1: "",
-      showPicker1: false,
-      columns1: ["科技型企业", "基金型企业", "制造商"],
+			value1: "",
+			showPicker1: false,
+			columns1: ["科技型企业", "基金型企业", "制造商"],
 
-      value2: "",
-      showPicker2: false,
-      columns2: ["是", "否"],
+			value2: "",
+			showPicker2: false,
+			columns2: ["是", "否"],
 
-      value3: "",
-      showPicker3: false,
-      columns3: ["是", "否"],
+			value3: "",
+			showPicker3: false,
+			columns3: ["是", "否"],
 
-      value4: "",
-      showPicker4: false,
-      columns4: ["是", "否"],
+			value4: "",
+			showPicker4: false,
+			columns4: ["是", "否"],
 
-      value5: "",
-      showPicker5: false,
-      columns5: ["是", "否"],
+			value5: "",
+			showPicker5: false,
+			columns5: ["是", "否"],
 
-      value6: "",
-      showPicker6: false,
-      columns6: ["是", "否"],
+			value6: "",
+			showPicker6: false,
+			columns6: ["是", "否"],
 
-      value7: "",
-      showPicker7: false,
+			value7: "",
+			showPicker7: false,
 
-      show1: false,
-      show2: false,
-      uploader: [{ url: "https://img01.yzcdn.cn/vant/leaf.jpg" }],
-    };
-  },
+			show1: false,
+			show2: false,
+			uploader: [{ url: "https://img01.yzcdn.cn/vant/leaf.jpg" }],
+		};
+	},
 
-  mounted() {
-    // this.getEmTypes();
-    this.initDict(this.dc_key).then((res) => {
-      // this.getData()
-      console.log("加载字典_:", res);
-    });
-  },
+	mounted() {
+		// this.getEmTypes();
+		this.initDict(this.dc_key).then((res) => {
+			// this.getData()
+			console.log("加载字典_:", res);
+		});
+	},
 
-  methods: {
-    onConfirm(value, type) {
-      this["value" + type] = value;
-      this["showPicker" + type] = false;
-    },
-    //获取企业类型
-    // getEmTypes(){
-    //   getDicks("enterpriseType").then((res) => {
-    //       console.log("字典数据——:", res)
-    //   })
+	methods: {
+		onConfirm(value, type) {
+			this["value" + type] = value;
+			this["showPicker" + type] = false;
+		},
+		//获取企业类型
+		// getEmTypes(){
+		//   getDicks("enterpriseType").then((res) => {
+		//       console.log("字典数据——:", res)
+		//   })
 
-    // }
-  },
+		// }
+	},
 };
 </script>
 
 <style lang="scss" type="text/scss" scoped>
 .settleIn {
-  padding: 0 0 140px;
-  overflow-y: auto;
-  .form-part {
-    padding: 4px 0 10px;
-  }
+	padding: 0 0 140px;
+	overflow-y: auto;
+	.form-part {
+		padding: 4px 0 10px;
+	}
 
-  .top-status {
-    padding: 30px;
-    background: #fff;
-    @include flex;
-    .left,
-    .right {
-      @include flex;
-      .title {
-        font-size: 28px;
-        color: #333;
-      }
-      .normal-tip {
-        font-size: 26px;
-        line-height: 50px;
-        padding: 0 20px;
-      }
-    }
-  }
+	.top-status {
+		padding: 30px;
+		background: #fff;
+		@include flex;
+		.left,
+		.right {
+			@include flex;
+			.title {
+				font-size: 28px;
+				color: #333;
+			}
+			.normal-tip {
+				font-size: 26px;
+				line-height: 50px;
+				padding: 0 20px;
+			}
+		}
+	}
 }
-</style>
+</style>

+ 256 - 0
src/pages/mine/employeeCertification.vue

@@ -0,0 +1,256 @@
+<template>
+	<div class="employee">
+		<div class="white-box part-1">
+			<div class="search-box">
+				<div class="search-input-box">
+					<input type="text" v-model="requestParam.keyword" placeholder="姓名、手机号模糊查询" />
+				</div>
+				<div class="search-icon-box">
+					<i class="iconfont icon-sousuo" @click="getProveList"></i>
+				</div>
+			</div>
+		</div>
+		<div class="list-box">
+			<van-pull-refresh v-model="refreshing" @refresh="onRefresh" style="min-height: 85vh;">
+				<van-list
+				 v-model="loading"
+				 :finished="finished"
+				 finished-text="没有更多了"
+				 :immediate-check="false"
+				 @load="onLoad"
+				>
+					<div class="card-item white-card" :key="item.id" v-for="item in list" style="min-height: 100px">
+						<div class="card-top">
+							<div class="card-left">
+								<div class="date">
+									<p>姓名:{{ item.userName }}</p>
+									<p>手机号:{{ item.userPhone }}</p>
+									<p>申请时间:{{ item.creationTime }}</p>
+									<p>审核时间:{{ item.handleTime }}</p>
+								</div>
+							</div>
+							<div class="card-right">
+								<span v-if="item.handleResult == '0'" class="z">待审 </span>
+								<span v-else class="h">已审 </span>
+							</div>
+						</div>
+						<div class="txt-bottom" v-if="item.handleResult == '1'">审核通过</div>
+						<div class="txt-bottom" v-else-if="item.handleResult == '2'" style="color:#ec6d6d;">审核拒绝</div>
+						<div class="card-bottom" v-else>
+							<span class="normal-button-app z-bt" @click="staffProve(item.id, 1)">通过</span>
+							<span class="normal-button-app y-bt" @click="staffProve(item.id, 2)">拒绝</span>
+						</div>
+					</div>
+				</van-list>
+			</van-pull-refresh>
+		</div>
+	</div>
+</template>
+<script>
+import auth from "@/service/auth";
+import {
+	list,
+	staffProve
+} from "@/service/api_park_staff_prove_info";
+import { getUserRelation } from '@/service/api_user_relation'
+import Vue from 'vue';
+import { Toast, PullRefresh, List } from 'vant';
+Vue.use(List);
+Vue.use(PullRefresh);
+export default {
+	data() {
+		return {
+			loading: false,
+			finished: false,
+			refreshing: false,
+			requestParam: {
+				keyword: "",
+				pageNum: 1,
+				pageSize: 10
+			},
+			total: 0,
+			currUser: {},
+			bizId: "",
+			list: [],
+		};
+	},
+	mounted() {
+		this.currUser = auth.currUser();
+		this.initUserIdentity();
+		// this.getProveList();
+	},
+
+	methods: {
+		clickSeach(){
+			this.requestParam.pageNum = 1;
+			this.getProveList();
+		},
+
+		onRefresh() {
+			this.requestParam.pageNum = 1;
+			this.getProveList();
+		},
+
+		onLoad(){
+			if(this.bizId == "")
+				return false;
+			if (this.refreshing) {
+				this.list = [];
+				this.refreshing = false;
+			}
+			if (this.list.length >= this.total) {
+				this.finished = true;
+			}else{
+				this.requestParam.pageNum += 1;
+				let reqData = {
+					keyword: this.requestParam.keyword,
+					bizId: this.bizId,
+					pageNum: this.requestParam.pageNum,
+					pageSize: this.requestParam.pageSize,
+				}
+				list(reqData).then((res) => {
+					res.rows.forEach(element => {
+						this.list.push(element);
+					});
+					this.total = res.total;
+				})
+			}
+			this.loading = false;
+		},
+
+		//获取用户绑定企业
+		initUserIdentity() {
+			const reqData = {
+				userId: this.currUser.id
+			}
+			getUserRelation(reqData).then((res) => {
+				console.log("用户身份——:", res);
+				if(res.data.userType == 3){
+					this.bizId = res.data.referenceId
+					this.getProveList();
+				}else{
+					this.bizId = "";
+				}
+			})
+		},
+
+		//获取列表数据
+		getProveList(){
+			if(this.bizId == "")
+				return false;
+			let reqData = {
+				keyword: this.requestParam.keyword,
+				bizId: this.bizId,
+				pageNum: this.requestParam.pageNum,
+				pageSize: this.requestParam.pageSize,
+			}
+			list(reqData).then((res) => {
+				this.list = res.rows;
+				this.total = res.total;
+				this.refreshing = false;
+			})
+		},
+
+		//审核
+		staffProve(id, request){
+			let reqData = {
+				id: id,
+				request: request
+			}
+			staffProve(reqData).then((res) => {
+				this.getProveList();
+				Toast(res.data);
+			})
+		}
+
+	}
+};
+</script>
+<style lang="scss" type="text/scss" scoped>
+.employee {
+	.part-1 {
+		padding: 30px 20px;
+	}
+	.search-box {
+		@include flex;
+		box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
+		border-radius: 35px;
+		height: 70px;
+		padding: 0 20px;
+		.search-input-box {
+			input {
+				height: 70px;
+				line-height: 70px;
+				font-size: 30px;
+				color: #b7b7b7;
+				&::placeholder {
+					line-height: 70px;
+					font-size: 30px;
+					color: #b7b7b7;
+				}
+			}
+		}
+		.search-icon-box {
+			width: 100px;
+			text-align: center;
+			i {
+				line-height: 70px;
+				font-size: 36px;
+				color: $text5;
+			}
+		}
+	}
+
+	.list-box {
+		.card-item {
+			margin: 0 30px 30px;
+			.card-top {
+				@include flex;
+				.card-left {
+					display: flex;
+					justify-content: space-between;
+					flex-direction: column;
+					.tit {
+						width: 500px;
+						font-size: 32px;
+						color: #333;
+						font-weight: bold;
+						@include line-over;
+						margin-bottom: 30px;
+					}
+
+					.date {
+						line-height: 1.4;
+						font-size: 28px;
+						color: #999;
+					}
+				}
+				.card-right {
+					align-self: flex-start;
+					span {
+						font-size: 28px;
+					}
+					.z {
+						color: #976dec;
+					}
+
+					.h {
+						color: #999999;
+					}
+				}
+			}
+		}
+		.txt-bottom {
+			font-size: 28px;
+			color: #976dec;
+		}
+
+		.card-bottom {
+			height: 80px;
+			display: flex;
+			justify-content: flex-end;
+			align-items: center;
+		}
+	}
+}
+</style>

+ 97 - 93
src/pages/mine/feedback.vue

@@ -1,104 +1,108 @@
 <template>
-  <div class="feedback-box">
-    <div class="repair-content fixed-page-content">
-      <div class="white-box page-1">
-        <div class="page-1-head" @click="goNavigator('feedbackRecord')">
-          <i class="iconfont icon-daichulihetong"></i>
-          <span>反馈记录</span>
-        </div>
-      </div>
-      <div class="white-box page-2">
-        <van-field
-          v-model="content"
-          rows="6"
-          autosize
-          type="textarea"
-          maxlength="800"
-          placeholder="请填写反馈的内容"
-          show-word-limit
-        >
-        </van-field>
-      </div>
-    </div>
-    <div class="repair-bottom bottom-button">
-      <button class="btn" @click="doFeedback">提交</button>
-    </div>
-  </div>
+	<div class="feedback-box">
+		<div class="repair-content fixed-page-content">
+			<div class="white-box page-1">
+				<div class="page-1-head" @click="goNavigator('feedbackRecord')">
+					<i class="iconfont icon-daichulihetong"></i>
+					<span>反馈记录</span>
+				</div>
+			</div>
+			<div class="white-box page-2">
+				<van-field
+				 v-model="content"
+				 rows="6"
+				 autosize
+				 type="textarea"
+				 maxlength="800"
+				 placeholder="请填写反馈的内容"
+				 show-word-limit
+				>
+				</van-field>
+			</div>
+		</div>
+		<div class="repair-bottom bottom-button">
+			<button class="btn" @click="doFeedback">提交</button>
+		</div>
+	</div>
 </template>
 
 <script>
-// @ is an alias to /src
-import { Toast } from "vant";
+import { add } from '../../service/api_feedback.js'
+import { Toast } from 'vant'
+import auth from '@/service/auth'
+import { getById } from '@/service/api_user'
 
 export default {
-  name: "Home",
-  data() {
-    return {
-      uid: "",
-      content: "",
-      mobile: "",
-    };
-  },
-  created() {
-    // console.log("home created");
-    // this.uid = store.get("uid");
-  },
-  mounted() {
-    console.log("mounted");
-  },
-  methods: {
-    doFeedback() {
-      const content = this.content;
-      const mobile = this.mobile;
-      if (!content || !mobile) {
-        return Toast("内容不能为空");
-      }
-      this.$api
-        .feedback({
-          id: this.uid,
-          content: content,
-          mobile: mobile,
-        })
-        .then((res) => {
-          if (res.code == 2000) {
-            Toast("提交成功,感谢你的反馈");
-            this.$router.go(-1);
-          }
-        });
-    },
-  },
-};
+	name: 'Feedback',
+	data() {
+		return {
+			uid: '',
+			content: '',
+			myName: '',
+			account: ''
+		}
+	},
+	created() {
+	},
+	mounted() {
+		this.getUserInfo(auth.currUser().id)
+	},
+	methods: {
+		getUserInfo(userId) {
+			const _this = this
+			getById({ id: userId }).then((res) => {
+				if (res.data) {
+					if (res.data.trueName) {
+						_this.myName = res.data.trueName
+					}
+				}
+			})
+		},
+		doFeedback() {
+			const content = this.content
+			if (!content) {
+				return Toast('内容不能为空')
+			}
+			add({ feedbackId: auth.uid(), feedbackName: this.myName, feedbackContent: content }).then((res) => {
+				Toast('反馈成功')
+				this.$router.push({ path: '/feedbackRecord' })
+			}).catch(() => {
+			})
+		}
+	}
+}
 </script>
 <style lang="scss" scoped>
 .feedback-box {
-  width: 100%;
-  height: 100%;
-  .page-1 {
-    font-size: 30px;
-    color: var(--violetColor2);
-    padding: 30px;
-    box-sizing: border-box;
-    .page-1-head {
-      display: flex;
-      align-items: center;
-      justify-content: flex-end;
-      i {
-        font-size: 38px;
-        margin-right: 10px;
-      }
-    }
-  }
-  .page-2 {
-    padding: 30px;
-    .van-cell {
-      padding: 20px;
-      border-radius: 10px;
-      background: $page-color-base;
-      box-sizing: border-box;
-      textarea {
-        height: 60px;
-      }
-    }
-  }
+	width: 100%;
+	height: 100%;
+	.page-1 {
+		font-size: 30px;
+		color: var(--violetColor2);
+		padding: 30px;
+		box-sizing: border-box;
+		.page-1-head {
+			display: flex;
+			align-items: center;
+			justify-content: flex-end;
+			i {
+				font-size: 38px;
+				margin-right: 10px;
+			}
+		}
+	}
+	.page-2 {
+		padding: 30px;
+		.van-cell {
+			padding: 20px;
+			border-radius: 10px;
+			background: $page-color-base;
+			box-sizing: border-box;
+			textarea {
+				height: 60px;
+			}
+		}
+	}
 }
 </style>
+

+ 86 - 71
src/pages/mine/feedbackDetail.vue

@@ -1,79 +1,94 @@
 <template>
-  <div class="feedback-detail-box">
-    <div class="feedback-detail-content fixed-page-content">
-      <div class="white-box page-1">
-        <div class="custom-item-tit">
-          <p class="tit">我的反馈</p>
-        </div>
-        <div class="cell-item">
-          <div class="reply-box">
-            为将要到访的客人生成通行码,以微信或QQ的方式发送给他们,在楼栋大门刷脸或通行码,即可自动验证开门。
-          </div>
-        </div>
-        <div class="cell-item flex-item">
-          <p class="label">提交时间</p>
-          <p class="tit">2021-10-25 12:33</p>
-        </div>
-      </div>
-      <div class="white-box page-2">
-        <div class="custom-item-tit">
-          <p class="tit">回复内容</p>
-        </div>
-        <div class="cell-item">
-          <div class="reply-box">
-            为将要到访的客人生成通行码,以微信或QQ的方式发送给他们,在楼栋大门刷脸或通行码,即可自动验证开门。
-          </div>
-        </div>
-        <div class="cell-item flex-item">
-          <p class="label">受理企业</p>
-          <p class="tit">某某企业</p>
-        </div>
-        <div class="cell-item flex-item">
-          <p class="label">受理人</p>
-          <p class="tit tel-box">
-            <span>张三</span>
-            <TelNum :num="1234567" :showTel="false" />
-          </p>
-        </div>
-        <div class="cell-item flex-item">
-          <p class="label">受理时间</p>
-          <p class="tit">2021-10-25 12:33</p>
-        </div>
-      </div>
-    </div>
-  </div>
+	<div class="feedback-detail-box">
+		<div class="feedback-detail-content fixed-page-content">
+			<div class="white-box page-1">
+				<div class="custom-item-tit">
+					<p class="tit">我的反馈</p>
+				</div>
+				<div class="cell-item">
+					<div class="reply-box">
+						{{ feedbackDetail.feedbackContent }}
+					</div>
+				</div>
+				<div class="cell-item flex-item">
+					<p class="label">提交时间</p>
+					<p class="tit">{{ feedbackDetail.feedbackTime }}</p>
+				</div>
+			</div>
+			<div class="white-box page-2">
+				<div class="custom-item-tit">
+					<p class="tit">回复内容</p>
+				</div>
+				<div class="cell-item">
+					<div class="reply-box">
+						{{ feedbackDetail.replyContent }}
+					</div>
+				</div>
+				<!-- <div class="cell-item flex-item">
+					<p class="label">受理企业</p>
+					<p class="tit">{{ feedbackDetail.receiveCompanyName }}</p>
+				</div> -->
+				<div class="cell-item flex-item">
+					<p class="label">受理人</p>
+					<p class="tit tel-box">
+						<span>{{ feedbackDetail.receiver }} -</span>
+						<TelNum :num="feedbackDetail.receivePhone" />
+					</p>
+				</div>
+				<div class="cell-item flex-item">
+					<p class="label">受理时间</p>
+					<p class="tit">{{ feedbackDetail.receiveTime }}</p>
+				</div>
+			</div>
+		</div>
+	</div>
 </template>
 <script>
-import { formatDate } from "@/plugins/dateFormat";
-import TelNum from "@/components/tel-number";
+import { getById } from '../../service/api_feedback.js'
+import TelNum from '@/components/tel-number'
 export default {
-  components: {
-    TelNum,
-  },
-  data() {
-    return {};
-  },
-  created() {},
-  methods: {},
-};
+	components: {
+		TelNum
+	},
+	data() {
+		return {
+			feedbackDetail: '',
+			id: ''
+		}
+	},
+	mounted() {
+		this.id = this.$route.query.id
+		this.getById()
+	},
+	methods: {
+		getById() {
+			const _this = this
+			getById(_this.id).then((res) => {
+				_this.feedbackDetail = res
+				_this.feedbackDetail.feedbackTime = this.$common.transServDate(_this.feedbackDetail.feedbackTime)
+				_this.feedbackDetail.receiveTime = this.$common.transServDate(_this.feedbackDetail.receiveTime)
+			})
+		}
+	}
+}
 </script>
 <style lang="scss" scoped>
 .feedback-detail-box {
-  width: 100%;
-  height: 100%;
-  .reply-box {
-    padding: 20px;
-    line-height: 1.5;
-    border-radius: 10px;
-    background: $page-color-base;
-    box-sizing: border-box;
-  }
-  .tel-box {
-    display: flex;
-    align-items: center;
-    /deep/ .custom-tel-component {
-      margin-left: 20px;
-    }
-  }
+	width: 100%;
+	height: 100%;
+	.reply-box {
+		padding: 20px;
+		line-height: 1.5;
+		border-radius: 10px;
+		background: $page-color-base;
+		box-sizing: border-box;
+	}
+	.tel-box {
+		display: flex;
+		align-items: center;
+		/deep/ .custom-tel-component {
+			margin-left: 20px;
+		}
+	}
 }
-</style>
+</style>

+ 117 - 104
src/pages/mine/feedbackRecord.vue

@@ -1,112 +1,125 @@
 <template>
-  <div class="feedback-record-box">
-    <ul class="custom-list-box">
-      <li
-        class="feedback-item white-box"
-        v-for="item in feedbackList"
-        :key="item.id"
-        @click="goNavigator('feedbackDetail', { id: item.id })"
-      >
-        <div class="item-content">
-          <div class="icon"><i class="iconfont icon-xinxi"></i></div>
-          <div class="content-txt">
-            {{ item.content }}
-          </div>
-        </div>
-        <div class="item-foot">
-          <p class="label">
-            <span>提交时间:</span>
-            <span>{{ item.time }}</span>
-          </p>
-          <div class="custom-status-box val">
-            <p :class="['status-btn', setStatusStyle(item.status)]">
-              {{ item.statustr }}
-            </p>
-          </div>
-        </div>
-      </li>
-    </ul>
-  </div>
+	<div class="feedback-record-box">
+		<ul class="custom-list-box">
+			<li
+			 class="feedback-item white-box"
+			 v-for="item in feedbackList"
+			 :key="item.id"
+			 @click="goDetail(item)"
+			>
+				<div class="item-content">
+					<div class="icon"><i class="iconfont icon-xinxi"></i></div>
+					<div class="content-txt">
+						{{ item.feedbackContent }}
+					</div>
+				</div>
+				<div class="item-foot">
+					<p class="label">
+						<span>提交时间:</span>
+						<span>{{ item.feedbackTime }}</span>
+					</p>
+					<div class="custom-status-box val">
+						<p :class="['status-btn', setStatusStyle(item.status)]">
+							{{ item.typeStr }}
+						</p>
+					</div>
+				</div>
+			</li>
+		</ul>
+	</div>
 </template>
 <script>
+import { list } from '../../service/api_feedback.js'
+import auth from '@/service/auth'
 export default {
-  data() {
-    return {
-      //收藏列表
-      feedbackList: [
-        {
-          id: 1,
-          status: "1", //1、待回复 2、已回复
-          statustr: "待回复",
-          content:
-            "园区道路问题一直没有解决,遇到下雨天就容易造成积水的情形,请园区尽快处理。",
-          submitTime: "2021-10-25 12:33",
-        },
-        {
-          id: 2,
-          status: "2", //1、待回复 2、已回复
-          statustr: "已回复",
-          content: "上月水费不太对,怀疑水表有问题,请派人查看。",
-          submitTime: "2021-11-31 12:44",
-        },
-      ],
-    };
-  },
-  methods: {
-    /**
-     * 设置状态样式
-     */
-    setStatusStyle(status) {
-      let statusClass = null;
-      switch (status) {
-        case "1":
-          statusClass = "pending-btn";
-          break;
-        case "2":
-          statusClass = "accepted-btn";
-          break;
-        case "3":
-          statusClass = "processed-btn";
-          break;
-        case "4":
-          statusClass = "evaluated-btn";
-          break;
-      }
-      return statusClass;
-    },
-  },
-};
+	data() {
+		return {
+			// 收藏列表
+			feedbackList: []
+		}
+	},
+	mounted() {
+		this.getData()
+	},
+	methods: {
+		getData() {
+			const _this = this
+			list({ feedbackId: auth.uid() }).then((res) => {
+				_this.feedbackList = res
+				_this.feedbackList.forEach((item) => {
+					item.feedbackTime = this.$common.transServDate(item.feedbackTime)
+					if (item.status === '1') {
+						item.typeStr = '待回复'
+					} else if (item.status === '2') {
+						item.typeStr = '已回复'
+					}
+				})
+			}).catch(() => {
+			})
+		},
+		/**
+		 * 设置状态样式
+		 */
+		setStatusStyle(status) {
+			let statusClass = null
+			switch (status) {
+				case '1':
+					statusClass = 'pending-btn'
+					break
+				case '2':
+					statusClass = 'accepted-btn'
+					break
+				case '3':
+					statusClass = 'processed-btn'
+					break
+				case '4':
+					statusClass = 'evaluated-btn'
+					break
+			}
+			return statusClass
+		},
+		goDetail(val) {
+			this.$router.push({
+				path: '/feedbackDetail',
+				query: {
+					// 这里面是写需要传送的值
+					id: val.id
+				}
+			})
+		}
+	}
+}
 </script>
 <style lang="scss" scoped>
 .feedback-record-box {
-  width: 100%;
-  height: 100%;
-  .item-content {
-    display: flex;
-    .icon {
-      width: 80px;
-      height: 80px;
-      color: $text7;
-      background-color: rgba($color2, 0.1);
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      border-radius: 100%;
-      margin-right: 30px;
-    }
-    i {
-      font-size: 42px;
-    }
-    .content-txt {
-      flex: 1;
-      font-size: 30px;
-      line-height: 1.6;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      display: -webkit-box;
-      -webkit-line-clamp: 2;
-      -webkit-box-orient: vertical;
-    }
-  }
+	width: 100%;
+	height: 100%;
+	.item-content {
+		display: flex;
+		.icon {
+			width: 80px;
+			height: 80px;
+			color: $text7;
+			background-color: rgba($color2, 0.1);
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			border-radius: 100%;
+			margin-right: 30px;
+		}
+		i {
+			font-size: 42px;
+		}
+		.content-txt {
+			flex: 1;
+			font-size: 30px;
+			line-height: 1.6;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-line-clamp: 2;
+			-webkit-box-orient: vertical;
+		}
+	}
 }
-</style>
+</style>

BIN
src/pages/mine/img/1.png


BIN
src/pages/mine/img/2.png


BIN
src/pages/mine/img/3.png


BIN
src/pages/mine/img/choosedstatus.png


BIN
src/pages/mine/img/gps.png


BIN
src/pages/mine/img/tabberbg.png


BIN
src/pages/mine/img/企业认证.png


BIN
src/pages/mine/img/入园预约.png


BIN
src/pages/mine/img/找工作.png


BIN
src/pages/mine/img/找资源.png


BIN
src/pages/mine/img/招租求租.png


BIN
src/pages/mine/img/通知背景.png


+ 101 - 92
src/pages/mine/index copy.vue

@@ -1,24 +1,24 @@
 <template>
-  <div class="mine-container">
-    <div class="view-content">
-      <div class="header">
-        <div class="header-img">
-          <img class="avatar" src="@/assets/avatar.png" alt="">
-        </div>
-          <div class="nickname"><span class="p-white">{{truename}}</span></div>
-      </div>
-      <div class="list">
-        <mt-cell class="list-item" to="myInfo" title="我的信息" is-link></mt-cell>
-      </div>
-      <!--<div class="list">-->
-        <!--<mt-cell title="问题反馈" is-link></mt-cell>-->
-        <!--<mt-cell title="关于我们" is-link></mt-cell>-->
-      <!--</div>-->
-      <div class="list logout" @click="logoutSubmit">
-        <mt-cell title="退出登录"></mt-cell>
-      </div>
-    </div>
-  </div>
+	<div class="mine-container">
+		<div class="view-content">
+			<div class="header">
+				<div class="header-img">
+					<img class="avatar" src="@/assets/avatar.png" alt="">
+				</div>
+				<div class="nickname"><span class="p-white">{{ truename }}</span></div>
+			</div>
+			<div class="list">
+				<mt-cell class="list-item" to="myInfo" title="我的信息" is-link></mt-cell>
+			</div>
+			<!--<div class="list">-->
+			<!--<mt-cell title="问题反馈" is-link></mt-cell>-->
+			<!--<mt-cell title="关于我们" is-link></mt-cell>-->
+			<!--</div>-->
+			<div class="list logout" @click="logoutSubmit">
+				<mt-cell title="退出登录"></mt-cell>
+			</div>
+		</div>
+	</div>
 </template>
 
 <script>
@@ -26,83 +26,92 @@
 import { mapActions } from 'vuex'
 import { getInfo } from '../../service/api_user.js'
 import auth from '../../service/auth'
+
 export default {
-    name: 'Mine',
-    data() {
-        return {
-            truename: '',
-            userAvatar: '',
+	name: 'Mine',
+	data() {
+		return {
+			truename: '',
+			userAvatar: '',
 
-            isBiz: false
-        }
-    },
-    created() {
-        // console.log('home created')
-        // this.getUserInfo(auth.uid())
-    },
-    mounted() {
-        // console.log('mounted')
-        this.isBiz = (auth.bid() !== null)
-        if (this.isBiz) {
-            this.getBizInfo()
-        } else {
-            this.getUserInfo(auth.uid())
-        }
-    },
-    methods: {
-        ...mapActions({ 'logout': 'user/logout' }),
-        logoutSubmit() {
-            this.logout().then(() => {
-                this.$router.push({ path: '/login' })
-            })
-        },
-        getUserInfo(userId) {
-            const _this = this
-            getInfo(userId).then((res) => {
-                // console.log('res', res)
-                if (res.data) {
-                    _this.truename = res.data.truename
-                }
-            })
-        },
-        getBizInfo() {
-            this.truename = auth.currBiz().businessName
-        }
-    }
+			isBiz: false
+		}
+	},
+	created() {
+		// console.log('home created')
+		// this.getUserInfo(auth.uid())
+	},
+	mounted() {
+		// console.log('mounted')
+		this.isBiz = (auth.bid() !== null)
+		if (this.isBiz) {
+			this.getBizInfo()
+		} else {
+			this.getUserInfo(auth.uid())
+		}
+	},
+	methods: {
+		...mapActions({ 'logout': 'user/logout' }),
+		logoutSubmit() {
+			debugger
+			localStorage.clear()
+			this.$router.push({ path: '/login-app' })
+			// this.logout().then(() => {
+			// 	this.$router.push({ path: '/login-app' })
+			// })
+		},
+		getUserInfo(userId) {
+			const _this = this
+			getInfo(userId).then((res) => {
+				// console.log('res', res)
+				if (res.data) {
+					_this.truename = res.data.truename
+				}
+			})
+		},
+		getBizInfo() {
+			this.truename = auth.currBiz().businessName
+		}
+	}
 }
 </script>
 <style lang="scss" scoped>
-.mine-container{
-  .view-content{
-    bottom: 120px;
-    padding-bottom: 80px;
-  }
-  .header{
-    background: #5b9bf3;
-    height: 200px;
-    box-sizing: border-box;
-    display: flex;
-    align-items: center;
-    padding-left: 50px;
+.mine-container {
+	.view-content {
+		bottom: 120px;
+		padding-bottom: 80px;
+	}
+
+	.header {
+		background: #5b9bf3;
+		height: 200px;
+		box-sizing: border-box;
+		display: flex;
+		align-items: center;
+		padding-left: 50px;
+
+		.header-img {
+			width: 120px;
+			height: 120px;
+			border-radius: 120px;
+			overflow: hidden;
+
+			.avatar {
+				width: 100%;
+			}
+		}
+
+		.nickname {
+			margin-left: 30px;
+		}
+	}
+
+	.list {
+		margin-top: 30px;
 
-    .header-img{
-      width: 120px;
-      height: 120px;
-      border-radius: 120px;
-      overflow: hidden;
-      .avatar{
-        width: 100%;
-      }
-    }
-    .nickname{
-      margin-left: 30px;
-    }
-  }
-  .list{
-    margin-top: 30px;
-    &.logout{
-      text-align: center;
-    }
-  }
+		&.logout {
+			text-align: center;
+		}
+	}
 }
 </style>

+ 426 - 335
src/pages/mine/index.vue

@@ -1,351 +1,442 @@
 <template>
-  <div class="mine-box">
-    <div class="mine-body">
-      <!-- 用户信息 -->
-      <div class="user-info-box">
-        <div class="user-head-img">
-          <img :src="userInfo.headImg" alt="" />
-        </div>
-        <div class="user-info">
-          <p class="user-name">{{ userInfo.userName }},欢迎您</p>
-          <p class="tel">{{ encryTel(userInfo.userPhone) }}</p>
-        </div>
-      </div>
-      <!-- 功能区 -->
-      <div class="application-list-box">
-        <ul class="application-list">
-          <li
-            class="application-item"
-            v-for="(item, index) in applicationList"
-            :key="index"
-            @click="goNavigator(item.routerName)"
-          >
-            <p class="tips" v-if="item.newMessage"></p>
-            <i :class="['iconfont', item.icon]"></i>
-            <div class="item-name">{{ item.name }}</div>
-          </li>
-        </ul>
-      </div>
-      <!-- 系统功能 -->
-      <div class="system-list-box">
-        <ul class="system-list">
-          <li
-            class="system-item"
-            v-for="(item, index) in systemList"
-            :key="index"
-            @click="clickSystem(item)"
-          >
-            <i :class="['iconfont', 'item-icon', item.icon]"></i>
-            <div class="item-content">
-              <div class="item-left">{{ item.name }}</div>
-              <div class="item-right">
+	<div class="mine-box">
+		<div class="mine-body">
+			<!-- 用户信息 -->
+			<div class="user-info-box">
+				<div class="user-head-img">
+					<img :src="userInfo.headImg" alt=""/>
+				</div>
+				<div class="user-info">
+					<p class="user-name">{{ userInfo.account }},欢迎您</p>
+					<p class="tel">{{ encryTel(userInfo.phoneNo) }}</p>
+				</div>
+			</div>
+			<!-- 功能区 -->
+			<div class="application-list-box">
+				<ul class="application-list">
+					<li
+					 class="application-item"
+					 v-for="(item, index) in applicationList"
+					 :key="index"
+					 @click="goNavigator(item.routerName)"
+					>
+						<p class="tips" v-if="item.newMessage"></p>
+						<i :class="['iconfont', item.icon]"></i>
+						<div class="item-name">{{ item.name }}</div>
+					</li>
+				</ul>
+			</div>
+			<!-- 系统功能 -->
+			<div class="system-list-box">
+				<ul class="system-list">
+					<li
+					 class="system-item"
+					 v-for="(item, index) in systemList"
+					 :key="index"
+					 @click="clickSystem(item)"
+					>
+						<i :class="['iconfont', 'item-icon', item.icon]"></i>
+						<div class="item-content">
+							<div class="item-left">{{ item.name }}</div>
+							<div class="item-right">
                 <span class="item-right-val" v-if="item.val">{{
-                  item.name=='当前版本号'?version:item.val
-                }}</span>
-                <i class="iconfont icon-zuo" v-else></i>
-              </div>
-            </div>
-          </li>
-        </ul>
-      </div>
-    </div>
-    <div class="tabbar white-bottom">
-      <van-tabbar
-        v-model="active"
-        fixed
-        active-color="#976CEB"
-        inactive-color="#C8C8C8"
-        @change="onChangeRoute"
-      >
-        <van-tabbar-item>
-          <template #icon="props">
-            <i class="iconfont icon-shouye"></i>
-          </template>
-          首页
-        </van-tabbar-item>
-        <van-tabbar-item>
-          <template #icon="props">
-            <i class="iconfont icon-wode5"></i>
-          </template>
-          我的</van-tabbar-item
-        >
-      </van-tabbar>
-    </div>
-  </div>
+		                item.name == '当前版本号' ? version : item.val
+	                }}</span>
+								<i class="iconfont icon-zuo" v-else></i>
+							</div>
+						</div>
+					</li>
+				</ul>
+			</div>
+		</div>
+		<div class="tabbar white-bottom">
+			<van-tabbar
+			 v-model="active"
+			 active-color="#1F3D73"
+			 fixed
+			 inactive-color="#C8C8C8"
+			 @change="onChangeRoute"
+			 style="position: relative;"
+			>
+				<van-tabbar-item>
+					<template #icon="props">
+						<van-icon name="wap-home-o"/>
+					</template>
+					园区管理
+				</van-tabbar-item>
+				<img src="./img/gps.png" alt="" style="z-index: 999999;">
+				<van-tabbar-item>
+					<template #icon="props">
+						<i class="iconfont icon-wode5"></i>
+					</template>
+					我的
+				</van-tabbar-item
+				>
+			</van-tabbar>
+		</div>
+	</div>
 </template>
 
 <script>
 // @ is an alias to /src
-import { getVersion } from '@/service/api_system_msg'
+import { getVersion, getMsgListAll } from '@/service/api_system_msg'
 import { mapActions } from 'vuex'
+import { getById } from '@/service/api_user'
+
 import { getInfo } from '../../service/api_user.js'
 import auth from '../../service/auth'
+
 export default {
-    name: 'Mine',
-    data() {
-        return {
-            active: 1,
-            version: '',
-            // 用户信息
-            userInfo: {
-                headImg: require('../../assets/image/mine/header-img.png'),
-                userName: '章敏',
-                userPhone: '18321987755'
-            },
-            // 功能列表
-            applicationList: [
-                {
-                    name: '我的消息',
-                    icon: 'icon-xiaoxi1',
-                    routerName: 'myMessage',
-                    newMessage: true // 是否有新的消息
-                },
-                {
-                    name: '我的收藏',
-                    icon: 'icon-shoucang',
-                    routerName: 'myCollection'
-                },
-                {
-                    name: '我的访客',
-                    icon: 'icon-fangkeguanli',
-                    routerName: 'myVisitor'
-                },
-                {
-                    name: '我的订单',
-                    icon: 'icon-dingdan1',
-                    routerName: 'myOrder'
-                },
-                {
-                    name: '我的反馈',
-                    icon: 'icon-fankui1',
-                    routerName: 'feedback'
-                },
-                {
-                    name: '我的申报',
-                    icon: 'icon-shenbao1',
-                    routerName: 'feedback'
-                }
-            ],
-            // 应用
-            systemList: [
-                {
-                    name: '个人信息',
-                    icon: 'icon-gerenxinxi',
-                    routerName: 'mine-my-info'
-                },
-                {
-                    name: '企业认证',
-                    icon: 'icon-renzheng',
-                    routerName: 'certification'
-                },
-                {
-                    name: '当前版本号',
-                    icon: 'icon-banbenguanli',
-                    val: 'V1.0.1'
-                },
-                {
-                    name: '修改密码',
-                    icon: 'icon-mima',
-                    routerName: 'register'
-                },
-                {
-                    name: '退出系统',
-                    icon: 'icon-tuichu'
-                }
-            ]
-        }
-    },
-    created() {
-        this.getVersion()
-    // console.log('home created')
-    // this.getUserInfo(auth.uid())
-    },
-    mounted() {},
-    methods: {
-        getVersion() {
-            getVersion().then((res) => {
-                this.version = res.msg
-            })
-        },
-
-        /**
-     * 点击应用
-     */
-        clickSystem(item) {
-            if (item.routerName) {
-                this.goNavigator(item.routerName)
-            }
-            if (item.name === '修改密码') {
-            }
-            if (item.name === '退出系统') {
-            }
-        },
-        /**
-     * 监听tabbar切换路由
-     */
-        onChangeRoute(index) {
-            // 跳转到我的
-            if (index === 0) this.goNavigator('home')
-        },
-        /**
-     * 隐藏手机号中间几位
-     */
-        encryTel(tel) {
-            return tel.substr(0, 3) + '****' + tel.substr(7)
-        }
-    }
+	name: 'Mine',
+	data() {
+		return {
+			active: 1,
+			version: '',
+			// 用户信息
+			userInfo: {},
+			// 功能列表
+			applicationList: [
+				{
+					name: '我的消息',
+					icon: 'icon-xiaoxi1',
+					routerName: 'mine-myMessage-app',
+					newMessage: true // 是否有新的消息
+				},
+				{
+					name: '我的收藏',
+					icon: 'icon-shoucang',
+					routerName: 'myCollection'
+				},
+				{
+					name: '员工认证',
+					icon: 'icon-shoucang',
+					routerName: 'employeeCertification'
+				},
+
+				{
+					name: '通知公告',
+					icon: 'icon-fangkeguanli',
+					routerName: 'announcement'
+				},
+				// {
+				//     name: '我的订单',
+				//     icon: 'icon-dingdan1',
+				//     routerName: 'myOrder'
+				// },
+				{
+					name: '我的反馈',
+					icon: 'icon-fankui1',
+					routerName: 'feedback'
+				}
+				// {
+				//     name: '我的申报',
+				//     icon: 'icon-shenbao1',
+				//     routerName: 'feedback'
+				// }
+			],
+			// 应用
+			systemList: [
+				{
+					name: '个人信息',
+					icon: 'icon-gerenxinxi',
+					routerName: 'mine-my-info'
+				},
+				{
+					name: '企业认证',
+					icon: 'icon-renzheng',
+					routerName: 'settleIn'
+				},
+				{
+					name: '当前版本号',
+					icon: 'icon-banbenguanli',
+					val: 'V1.0.1'
+				},
+				{
+					name: '修改密码',
+					icon: 'icon-mima',
+					routerName: 'register'
+				},
+				{
+					name: '退出系统',
+					icon: 'icon-tuichu'
+				}
+			]
+		}
+	},
+	created() {
+		this.getVersion()
+		// console.log('home created')
+		this.getUserInfo(auth.currUser().id)
+	},
+	mounted() {
+	},
+	methods: {
+		getUserInfo(id) {
+			console.log('auth.currUser().id', auth.currUser().id)
+			const reqdata = {
+				id: id
+			}
+			getById(reqdata)
+			 // eslint-disable-next-line no-mixed-spaces-and-tabs
+			 .then((res) => {
+				 this.userInfo = res.data
+				 this.userInfo.headImg = require('../../assets/image/mine/header-img.png')
+				 // console.log("用户信息——:", res);
+			 })
+			 .catch(() => {
+			 })
+		},
+		getVersion() {
+			getVersion().then((res) => {
+				this.version = res.msg
+			})
+		},
+
+		/**
+		 * 点击应用
+		 */
+		clickSystem(item) {
+			if (item.routerName) {
+				this.goNavigator(item.routerName)
+			}
+			if (item.name === '修改密码') {
+			}
+			if (item.name === '退出系统') {
+				localStorage.clear()
+				this.$router.push({ path: '/login-app' })
+			}
+		},
+		/**
+		 * 监听tabbar切换路由
+		 */
+		onChangeRoute(index) {
+			// 跳转到我的
+			if (index === 0) this.goNavigator('home-app')
+		},
+		/**
+		 * 隐藏手机号中间几位
+		 */
+		encryTel(tel) {
+			console.log(tel)
+			if (tel) {
+				console.log(tel.substring(0, 3) + '****' + tel.substring(7, tel.length - 1))
+				return tel.substring(0, 3) + '****' + tel.substring(7, tel.length - 1)
+			} else {
+				return ''
+			}
+		}
+	}
 }
 </script>
 <style lang="scss" scoped>
+.white-bottom {
+	//position: absolute!important;
+	.van-tabbar {
+		background: url("./img/tabberbg.png") !important;
+		width: 100%;
+		height: 105px;
+		background-size: 100% 100% !important;
+	}
+
+	.van-hairline--top-bottom {
+		&:after {
+			border: none;
+		}
+	}
+
+	img {
+		height: 100px;
+		width: 100px;
+		position: relative;
+		z-index: 999999;
+		top: -50px;
+
+	}
+
+	//background: url("./img/tabberbg.png")no-repeat!important;
+
+	.van-tabbar-item {
+		background: rgba(0, 0, 0, 0) !important;
+	}
+
+	.white-bottom {
+		background: rgba(0, 0, 0, 0) !important;
+	}
+}
+
 .mine-box {
-  width: 100%;
-  height: 100%;
-  background-image: url("../../assets/image/mine/mine-bg.jpg");
-  background-size: 100% 100%;
-  background-repeat: no-repeat;
-  box-sizing: border-box;
-  overflow: hidden;
-  .mine-body {
-    padding: 30px;
-    box-sizing: border-box;
-    height: calc(100vh - 100px);
-    box-sizing: border-box;
-    overflow-y: auto;
-    .user-info-box {
-      padding: 30px 0;
-      color: $fc;
-      display: flex;
-      align-items: center;
-      .user-head-img {
-        width: 110px;
-        height: 110px;
-        margin-right: 20px;
-        border-radius: 100%;
-        overflow: hidden;
-        border: 4px solid $color3;
-        position: relative;
-        > img {
-          width: 100%;
-          height: 100%;
-          position: absolute;
-          top: 0;
-          left: 0;
-          right: 0;
-          bottom: 0;
-          margin: auto;
-          display: block;
-        }
-      }
-      .user-name {
-        font-size: 36px;
-        margin-bottom: 10px;
-      }
-    }
-    .application-list-box,
-    .system-list-box {
-      width: 100%;
-      background: rgba($fc, 0.8);
-      border-radius: 20px;
-      box-sizing: border-box;
-    }
-    .application-list-box {
-      font-size: 26px;
-      color: $color4;
-      padding: 40px 10px 15px;
-      text-align: center;
-      i {
-        font-size: 50px;
-        background-image: linear-gradient(0deg, #c1a6ff, #774aff);
-        -webkit-background-clip: text;
-        background-clip: text;
-        text-fill-color: transparent;
-        color: transparent;
-      }
-      ul {
-        display: flex;
-        justify-content: space-between;
-        flex-wrap: wrap;
-        &::after {
-          content: "";
-          width: 25%;
-          height: 0;
-        }
-        li {
-          width: 20%;
-          margin-bottom: 40px;
-          position: relative;
-          .item-name {
-            margin-top: 15px;
-          }
-          .tips {
-            width: 10px;
-            height: 10px;
-            position: absolute;
-            border-radius: 100%;
-            background: $red;
-            top: 0;
-            right: 25px;
-          }
-        }
-      }
-    }
-    .system-list-box {
-      margin-top: 30px;
-      padding: 0 30px;
-      box-sizing: border-box;
-      .system-item {
-        font-size: 30px;
-        display: flex;
-        align-items: center;
-        .item-icon {
-          font-size: 40px;
-          padding-right: 20px;
-          background-image: linear-gradient(0deg, #774aff, #774aff);
-          -webkit-background-clip: text;
-          background-clip: text;
-          text-fill-color: transparent;
-          color: transparent;
-        }
-        .item-content {
-          padding: 40px 0;
-          flex: 1;
-          display: flex;
-          align-items: center;
-          justify-content: space-between;
-          position: relative;
-          &::after {
-            content: "";
-            width: 100%;
-            height: 1px;
-            background-color: rgba($color10, 0.4);
-            position: absolute;
-            left: 0;
-            bottom: 0;
-          }
-          .item-right {
-            i  {
-              color: $color2;
-            }
-            .item-right-val {
-              color: $text5;
-            }
-          }
-        }
-      }
-    }
-  }
-  .tabbar {
-    height: 100px;
-    background: transparent !important;
-    .van-tabbar {
-      background: transparent;
-    }
-    .van-tabbar-item--active {
-      background: transparent;
-    }
-    .iconfont {
-      font-size: 42px;
-    }
-  }
+	width: 100%;
+	height: 100%;
+	//background-image: url("../../assets/image/mine/mine-bg.jpg");
+	background-size: 100% 100%;
+	background-repeat: no-repeat;
+	box-sizing: border-box;
+	overflow: hidden;
+
+	.mine-body {
+		padding: 30px;
+		box-sizing: border-box;
+		height: calc(100vh - 100px);
+		box-sizing: border-box;
+		overflow-y: auto;
+
+		.user-info-box {
+			padding: 30px 0;
+			color: #333333;
+			display: flex;
+			align-items: center;
+
+			.user-head-img {
+				width: 110px;
+				height: 110px;
+				margin-right: 20px;
+				border-radius: 100%;
+				overflow: hidden;
+				border: 4px solid $color3;
+				position: relative;
+
+				> img {
+					width: 100%;
+					height: 100%;
+					position: absolute;
+					top: 0;
+					left: 0;
+					right: 0;
+					bottom: 0;
+					margin: auto;
+					display: block;
+				}
+			}
+
+			.user-name {
+				font-size: 36px;
+				margin-bottom: 10px;
+			}
+		}
+
+		.application-list-box,
+		.system-list-box {
+			width: 100%;
+			background: rgba($fc, 0.8);
+			border-radius: 20px;
+			box-sizing: border-box;
+		}
+
+		.application-list-box {
+			font-size: 26px;
+			color: $color4;
+			padding: 40px 10px 15px;
+			text-align: center;
+
+			i {
+				font-size: 50px;
+				background-image: linear-gradient(0deg, #c1a6ff, #774aff);
+				-webkit-background-clip: text;
+				background-clip: text;
+				text-fill-color: transparent;
+				color: transparent;
+			}
+
+			ul {
+				display: flex;
+				justify-content: space-between;
+				flex-wrap: wrap;
+
+				&::after {
+					content: "";
+					width: 25%;
+					height: 0;
+				}
+
+				li {
+					width: 20%;
+					margin-bottom: 40px;
+					position: relative;
+
+					.item-name {
+						margin-top: 15px;
+					}
+
+					.tips {
+						width: 10px;
+						height: 10px;
+						position: absolute;
+						border-radius: 100%;
+						background: $red;
+						top: 0;
+						right: 25px;
+					}
+				}
+			}
+		}
+
+		.system-list-box {
+			margin-top: 30px;
+			padding: 0 30px;
+			box-sizing: border-box;
+
+			.system-item {
+				font-size: 30px;
+				display: flex;
+				align-items: center;
+
+				.item-icon {
+					font-size: 40px;
+					padding-right: 20px;
+					background-image: linear-gradient(0deg, #774aff, #774aff);
+					-webkit-background-clip: text;
+					background-clip: text;
+					text-fill-color: transparent;
+					color: transparent;
+				}
+
+				.item-content {
+					padding: 40px 0;
+					flex: 1;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					position: relative;
+
+					&::after {
+						content: "";
+						width: 100%;
+						height: 1px;
+						background-color: rgba($color10, 0.4);
+						position: absolute;
+						left: 0;
+						bottom: 0;
+					}
+
+					.item-right {
+						i  {
+							color: $color2;
+						}
+
+						.item-right-val {
+							color: $text5;
+						}
+					}
+				}
+			}
+		}
+	}
+
+	.tabbar {
+		height: 100px;
+		background: transparent !important;
+
+		.van-tabbar {
+			background: transparent;
+		}
+
+		.van-tabbar-item--active {
+			background: transparent;
+		}
+
+		.iconfont {
+			font-size: 42px;
+		}
+	}
 }
 </style>

+ 556 - 284
src/pages/mine/my-info.vue

@@ -1,316 +1,588 @@
 <template>
-  <div class="page-container">
-    <div class="detail-card">
-      <div class="form-part">
-        <van-form>
-          <van-field class="input-item" label="所属园区" input-align="right" />
-
-          <van-field
-            class="input-item picker-item input-button"
-            readonly
-            clickable
-            v-model="value1"
-            input-align="right"
-            label="所在企业"
-          >
-            <template #button>
+	<div class="page-container">
+		<div class="detail-card">
+			<div class="form-part">
+				<van-form>
+					<van-field
+					 v-model="groupName"
+					 class="input-item"
+					 input-align="right"
+					 label="所属园区"
+					/>
+					<van-field
+					 v-if="userType == '3' && relationStatus == 1"
+					 v-model="companyName"
+					 class="input-item picker-item"
+					 clickable
+					 input-align="right"
+					 label="所在企业"
+					 label-width="5rem"
+					 readonly
+					>
+					</van-field>
+					<van-field
+					 v-else
+					 v-model="companyName"
+					 class="input-item picker-item input-button left-wdith"
+					 clickable
+					 input-align="right"
+					 label="所在企业"
+					 readonly
+					>
+						<template #button>
               <span
-                v-if="type"
-                @click="showPicker1 = true"
-                class="normal-button-app z-bt"
-                >绑定</span
-              >
-              <span v-else @click="type = true" class="normal-button-app y-bt"
-                >解绑</span
-              >
-            </template>
-          </van-field>
+							 v-if="type"
+							 class="normal-button-app z-bt"
+							 @click="showPicker1 = true"
+							>绑定</span
+							>
+							<span
+							 v-if="!type && relationStatus == 0"
+							 class="normal-button-app z-bt"
+							>企业确认中</span
+							>
+							<span
+							 v-if="!type && userType !== '3'"
+							 class="normal-button-app y-bt"
+							 @click="showPicker3 = true"
+							>解绑</span
+							>
+						</template>
+					</van-field>
 
-          <van-field
-            class="input-item picker-item"
-            readonly
-            clickable
-            input-align="right"
-            label="微信号"
-            value="绑定"
-          >
-            <template #button>
-              <i class="iconfont icon-zuo"></i>
-            </template>
-          </van-field>
+					<van-field
+					 v-model="openName"
+					 class="input-item picker-item input-button"
+					 clickable
+					 input-align="right"
+					 label="微信号"
+					 readonly
+					>
+						<template #button>
+              <span
+							 v-if="type1"
+							 class="normal-button-app z-bt"
+							 @click="setLoading"
+							>绑定</span
+							>
+							<span
+							 v-else
+							 class="normal-button-app y-bt"
+							 @click="showPicker2 = true"
+							>解绑</span
+							>
+						</template>
+					</van-field>
 
-          <van-field class="input-item" label="帐号" input-align="right" />
+					<van-field
+					 v-model="account"
+					 class="input-item"
+					 disabled
+					 input-align="right"
+					 label="帐号"
+					/>
 
-          <van-field
-            class="input-item picker-item"
-            :readonly="!isname"
-            clickable
-            :placeholder="!isname ? '修改' : ''"
-            input-align="right"
-            label="姓名"
-            v-model="myName"
-            @click="isname = true"
-            @blur="nameShow"
-          >
-            <template #button>
-              <i v-show="!isname" class="iconfont icon-zuo"></i>
-            </template>
-          </van-field>
-        </van-form>
-      </div>
-    </div>
+					<van-field
+					 v-model="myName"
+					 class="input-item picker-item"
+					 clickable
+					 input-align="right"
+					 label="姓名"
+					 label-width="5rem"
+					 @change="editInfo"
+					>
+					</van-field>
+					<van-field
+					 v-model="phoneNo"
+					 class="input-item picker-item"
+					 clickable
+					 input-align="right"
+					 label="手机号"
+					 label-width="5rem"
+					 @change="editInfo"
+					/>
+				</van-form>
+			</div>
+		</div>
 
-    <div class="detail-card info-card">
-      <div class="custom-item-tit">
-        <div class="tit">我的兴趣</div>
-      </div>
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">我的兴趣</div>
+			</div>
 
-      <div class="myinfo-list">
+			<div class="myinfo-list">
         <span
-          :class="item.status && 'active'"
-          v-for="item in interest"
-          :key="item.name"
-          @click="item.status = !item.status"
-          >{{ item.name }}</span
-        >
-      </div>
-    </div>
+				 v-for="item in interest"
+				 :key="item.name"
+				 :class="item.status && 'active'"
+				 @click="updateStatus(item, '1')"
+				>{{ item.name }}</span
+				>
+			</div>
+		</div>
 
-    <div class="detail-card info-card">
-      <div class="custom-item-tit">
-        <div class="tit">我的特长</div>
-      </div>
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">我的特长</div>
+			</div>
 
-      <div class="myinfo-list">
+			<div class="myinfo-list">
         <span
-          :class="item.status && 'active'"
-          v-for="item in specialty"
-          :key="item.name"
-          @click="item.status = !item.status"
-          >{{ item.name }}</span
-        >
-      </div>
-    </div>
+				 v-for="item in specialty"
+				 :key="item.name"
+				 :class="item.status && 'active'"
+				 @click="updateStatus(item, '2')"
+				>{{ item.name }}</span
+				>
+			</div>
+		</div>
+
+		<!-- 所属企业弹框 -->
+		<van-popup v-model="showPicker1" class="form-popup">
+			<div class="popup-body">
+				<div class="custom-item-tit">
+					<p class="tit">请填写企业名称</p>
+				</div>
+				<div class="custom-white-box-content">
+					<div class="custom-input-box">
+						<input
+						 v-model="formCompany"
+						 maxlength="50px"
+						 placeholder="请填写完整企业名称"
+						 type="text"
+						/>
+					</div>
+				</div>
+				<div class="popup-foot-but">
+					<div class="gb" @click="submit">保存</div>
+				</div>
+			</div>
+		</van-popup
+		>
 
-    <!-- 所属企业弹框 -->
-    <van-popup v-model="showPicker1" class="form-popup">
-      <div class="popup-body">
-        <div class="custom-item-tit">
-          <p class="tit">请填写企业名称</p>
-        </div>
-        <div class="custom-white-box-content">
-          <div class="custom-input-box">
-            <input
-              type="text"
-              v-model="formCompany"
-              maxlength="50px"
-              placeholder="请填写完整企业名称"
-            />
-          </div>
-        </div>
-        <div class="popup-foot-but">
-          <div class="gb" @click="submit">保存</div>
-        </div>
-      </div></van-popup
-    >
-  </div>
+		<!-- 企业解绑弹框 -->
+		<van-popup v-model="showPicker3" class="form-popup">
+			<div class="popup-body">
+				<div class="custom-item-tit">
+					<p class="tit">是否确认解绑企业?</p>
+				</div>
+				<div class="popup-foot-but" style="padding: 0">
+					<div
+					 class="gb"
+					 style="float: right; margin-left: 8px"
+					 @click="unbound"
+					>
+						确认
+					</div>
+					<div class="gb" style="float: right" @click="showPicker3 = false">
+						取消
+					</div>
+				</div>
+			</div>
+		</van-popup
+		>
+		<!-- 微信号解绑弹框 -->
+		<van-popup v-model="showPicker2" class="form-popup">
+			<div class="popup-body">
+				<div class="custom-item-tit">
+					<p class="tit">是否确认解绑微信号?</p>
+				</div>
+				<div class="popup-foot-but" style="padding: 0">
+					<div
+					 class="gb"
+					 style="float: right; margin-left: 8px"
+					 @click="wechatUnBind"
+					>
+						确认
+					</div>
+					<div class="gb" style="float: right" @click="showPicker2 = false">
+						取消
+					</div>
+				</div>
+			</div>
+		</van-popup
+		>
+	</div>
 </template>
 
 <script>
 // @ is an alias to /src
-import { getInfo, bizInfo } from "../../service/api_user.js";
-import auth from "../../service/auth";
-export default {
-  name: "Home",
-  data() {
-    return {
-      name: "",
-      loginName: "",
-      contactUser: "",
-      contactPhone: "",
-      show: false,
-      isBiz: false,
-      type: true, //判断企业是否绑定
-      myName: "",
-
-      value1: "",
-      showPicker1: false,
-      columns1: ["科技型企业", "基金型企业", "制造商"],
-      isname: false, //是否可以修改姓名
-      formCompany: "",
-      interest: [
-        {
-          name: "洗衣服务",
-          status: false,
-        },
-        {
-          name: "停车服务",
-          status: false,
-        },
-        {
-          name: "餐饮服务",
-          status: false,
-        },
+import { binding, editMyInformation, getById, unbound, wechatBind, wechatUnBind } from '../../service/api_user.js'
+import auth from '../../service/auth'
+import { Toast } from 'vant'
+import Base from '@/pages/base/base'
+import { getUserRelation } from '@/service/api_user_relation'
+import wx from 'weixin-js-sdk'
 
-        {
-          name: "物业服务",
-          status: false,
-        },
-        {
-          name: "水电费",
-          status: false,
-        },
+export default {
+	name: 'Home',
+	mixins: [Base],
+	data() {
+		return {
+			dc_key: ['MY_INTEREST', 'MY_SPECIALTY'],
+			name: '',
+			loginName: '',
+			contactUser: '',
+			contactPhone: '',
+			show: false,
+			isBiz: false,
+			type: true, // 判断企业是否绑定
+			type1: true, // 判断微信号是否绑定
+			myName: '',
+			phoneNo: '',
 
-        {
-          name: "公共交通",
-          status: false,
-        },
-        {
-          name: "天气预报",
-          status: false,
-        },
-      ],
+			groupName: '尚贤湖基金park',
+			account: '',
+			companyName: '',
+			openName: '',
+			showPicker1: false,
+			showPicker2: false,
+			showPicker3: false,
+			columns1: ['科技型企业', '基金型企业', '制造商'],
+			isname: false, // 是否可以修改姓名
+			formCompany: '',
+			userType: '',
+			code: '',
+			nickName: '',
+			relationStatus: '',
+			interest: [
+				// {
+				//     name: '洗衣服务',
+				//     status: false
+				// },
+				// {
+				//     name: '停车服务',
+				//     status: false
+				// },
+				// {
+				//     name: '餐饮服务',
+				//     status: false
+				// },
+				//
+				// {
+				//     name: '物业服务',
+				//     status: false
+				// },
+				// {
+				//     name: '水电费',
+				//     status: false
+				// },
+				//
+				// {
+				//     name: '公共交通',
+				//     status: false
+				// },
+				// {
+				//     name: '天气预报',
+				//     status: false
+				// }
+			],
 
-      specialty: [
-        {
-          name: "洗衣服务",
-          status: false,
-        },
-        {
-          name: "停车服务",
-          status: false,
-        },
-        {
-          name: "餐饮服务",
-          status: false,
-        },
+			specialty: [
+				// {
+				//     name: '洗衣服务',
+				//     status: false
+				// },
+				// {
+				//     name: '停车服务',
+				//     status: false
+				// },
+				// {
+				//     name: '餐饮服务',
+				//     status: false
+				// },
+				//
+				// {
+				//     name: '物业服务',
+				//     status: false
+				// },
+				// {
+				//     name: '水电费',
+				//     status: false
+				// },
+				//
+				// {
+				//     name: '公共交通',
+				//     status: false
+				// },
+				// {
+				//     name: '天气预报',
+				//     status: false
+				// }
+			]
+		}
+	},
+	mounted() {
+		if (this.$route.query.code) {
+			this.code = this.$route.query.code
+			this.nickName = this.$route.query.nickName
+			this.getCode()
+		}
+		this.initDict(this.dc_key).then((res) => {
+			const interest = this.dc_data.MY_INTEREST
+			const specialty = this.dc_data.MY_SPECIALTY
+			this.interest = []
+			this.specialty = []
+			interest.forEach((item) => {
+				const i = {
+					name: item.label,
+					status: false
+				}
+				if (i.name !== '全部') {
+					this.interest.push(i)
+				}
+			})
+			specialty.forEach((item) => {
+				const i = {
+					name: item.label,
+					status: false
+				}
+				if (i.name !== '全部') {
+					this.specialty.push(i)
+				}
+			})
+			this.initUserIdentity()
+			this.getUserInfo(auth.currUser().id)
+		})
+	},
+	methods: {
+		getCode: function() {
+			wechatBind({
+				id: auth.currUser().id,
+				code: this.code,
+				nickName: this.nickName
+			}).then((res) => {
+				this.getUserInfo(auth.currUser().id)
+			})
+		},
+		setLoading: function(a) {
+			console.log('1')
+			wx.miniProgram.navigateTo({ url: '/pages/wechatBind/wechatBind' })
+		},
+		// 判断用户身份
+		initUserIdentity() {
+			const reqData = {
+				userId: auth.currUser().id
+			}
+			getUserRelation(reqData).then((res) => {
+				if (res.data === null || undefined === res.data) {
+					this.userType = 1
+					this.relationStatus = 0
+				} else {
+					this.userType = res.data.userType
+					this.relationStatus = res.data.relationStatus
+				}
+			})
+		},
+		getUserInfo(userId) {
+			const _this = this
+			getById({ id: userId }).then((res) => {
+				if (res.data) {
+					if (res.data.companyName) {
+						const companys = res.data.companyName.split(':')
+						if (companys[1] == '0') {
+							_this.userType = '3'
+							_this.companyName = ''
+							_this.type = false
+						} else {
+							_this.companyName = companys[0]
+							_this.type = false
+						}
+					} else {
+						_this.companyName = ''
+						_this.type = true
+					}
+					if (res.data.openName) {
+						_this.openName = res.data.openName
+						_this.type1 = false
+					} else {
+						_this.openName = ''
+						_this.type1 = true
+					}
+					if (res.data.groupName) {
+						_this.groupName = res.data.groupName.substring(
+						 0,
+						 res.data.groupName.length - 1
+						)
+					} else {
+						_this.groupName = '苏南产业园'
+					}
+					_this.account = res.data.account
+					_this.myName = res.data.trueName
+					_this.phoneNo = res.data.phoneNo
+					if (res.data.hobby) {
+						const hobby = res.data.hobby.split(',')
+						hobby.forEach((item) => {
+							_this.interest.forEach((ins) => {
+								if (item === ins.name) {
+									ins.status = true
+								}
+							})
+						})
+					}
+					if (res.data.spec) {
+						const spec = res.data.spec.split(',')
+						spec.forEach((item) => {
+							_this.specialty.forEach((ins) => {
+								if (item === ins.name) {
+									ins.status = true
+								}
+							})
+						})
+					}
+				}
+			})
+		},
+		editInfo() {
+			const _this = this
+			let hobby = ''
+			this.interest.forEach((item) => {
+				if (item.status === true) {
+					hobby = hobby + item.name + ','
+				}
+			})
+			if (hobby) {
+				hobby = hobby.substring(0, hobby.length - 1)
+			}
+			let spec = ''
+			this.specialty.forEach((item) => {
+				if (item.status === true) {
+					spec = spec + item.name + ','
+				}
+			})
+			if (spec) {
+				spec = spec.substring(0, spec.length - 1)
+			}
+			editMyInformation({
+				id: auth.currUser().id,
+				trueName: this.myName,
+				hobby: hobby,
+				spec: spec,
+				phoneNo: this.phoneNo
+			}).then((res) => {
+				if (res.errno === 0 && res.data) {
+					_this.getUserInfo(auth.currUser().id)
+				} else {
+					Toast(res.errmsg)
+				}
+			})
+		},
+		updateStatus(val, type) {
+			if (type === '1') {
+				this.interest.forEach((item) => {
+					if (item.name === val.name) {
+						item.status = !item.status
+					}
+				})
+			} else {
+				this.specialty.forEach((item) => {
+					if (item.name === val.name) {
+						item.status = !item.status
+					}
+				})
+			}
+			this.editInfo()
+		},
 
-        {
-          name: "物业服务",
-          status: false,
-        },
-        {
-          name: "水电费",
-          status: false,
-        },
+		// 弹框确认
+		submit() {
+			const _this = this
+			_this.showPicker1 = false
+			binding({ id: auth.currUser().id, companyName: this.formCompany }).then(
+			 (res) => {
+				 if (res.errno == 0) {
+					 _this.relationStatus = 0
+					 _this.getUserInfo(auth.currUser().id)
+				 } else {
+					 Toast(res.errmsg)
+				 }
+			 }
+			)
+		},
+		unbound() {
+			const _this = this
+			unbound({ id: auth.currUser().id }).then((res) => {
+				_this.showPicker3 = false
+				_this.getUserInfo(auth.currUser().id)
+			})
+		},
+		wechatUnBind() {
+			const _this = this
+			wechatUnBind({ id: auth.currUser().id }).then((res) => {
+				_this.showPicker2 = false
+				_this.getUserInfo(auth.currUser().id)
+			})
+		},
+		//   姓名显示
+		nameShow() {
+			if (!this.myName) {
+				this.isname = false
+			}
+		}
+	}
+}
+</script>
+<style lang="scss" scoped type="text/scss">
+.page-container {
+	.detail-card {
+		margin-bottom: 20px;
 
-        {
-          name: "公共交通",
-          status: false,
-        },
-        {
-          name: "天气预报",
-          status: false,
-        },
-      ],
-    };
-  },
-  mounted() {
-    // this.isBiz = (auth.bid() !== null)
-    // if (this.isBiz) {
-    //     this.getBizInfo(auth.bid())
-    // } else {
-    //     this.getUserInfo(auth.uid())
-    // }
-  },
-  methods: {
-    getUserInfo(userId) {
-      const _this = this;
-      getInfo(userId).then((res) => {
-        if (res.data) {
-          _this.name = res.data.truename;
-          _this.loginName = res.data.username;
-          _this.contactPhone = res.data.phone;
-        }
-      });
-    },
-    getBizInfo(bid) {
-      const _this = this;
-      console.log(bid);
-      bizInfo(bid).then((res) => {
-        if (res.data) {
-          _this.name = res.data.businessName;
-          _this.contactUser = res.data.contactUser;
-          _this.contactPhone = res.data.contactPhone;
-        }
-      });
-    },
-    goBack() {
-      this.$router.push("./mine");
-    },
+		&:last-child {
+			margin-bottom: 0px;
+		}
+	}
 
-    onConfirm(value, type) {
-      this["value" + type] = value;
-      this["showPicker" + type] = false;
-    },
+	.info-card {
+		padding: 20px 30px;
 
-    //弹框确认
+		.myinfo-list {
+			@include flex;
+			flex-wrap: wrap;
+			justify-content: flex-start;
 
-    submit() {
-      this.value1 = this.formCompany;
-      this.showPicker1 = false;
-      this.type = false;
-    },
+			span {
+				width: 160px;
+				line-height: 70px;
+				background: $color5;
+				border-radius: 35px;
+				font-size: 28px;
+				color: $color4;
+				text-align: center;
+				margin-right: 12px;
+				margin-bottom: 20px;
 
-    //   姓名显示
-    nameShow() {
-      if (!this.myName) {
-        this.isname = false;
-      }
-    },
-  },
-};
-</script>
-<style lang="scss" type="text/scss" scoped>
-.page-container {
-  .detail-card {
-    margin-bottom: 20px;
+				&:nth-child(4n) {
+					margin-right: 0;
+				}
+			}
 
-    &:last-child {
-      margin-bottom: 0px;
-    }
-  }
+			.active {
+				color: #874cfe;
+			}
+		}
+	}
 
-  .info-card {
-    padding: 20px 30px;
-    .myinfo-list {
-      @include flex;
-      flex-wrap: wrap;
-      justify-content: flex-start;
-      span {
-        width: 160px;
-        line-height: 70px;
-        background: $color5;
-        border-radius: 35px;
-        font-size: 28px;
-        color: $color4;
-        text-align: center;
-        margin-right: 12px;
-        margin-bottom: 20px;
-        &:nth-child(4n) {
-          margin-right: 0;
-        }
-      }
+	//   width: 100px;
+	.input-button {
+		/deep/ .van-field__button {
+			width: 24.333vw;
 
-      .active {
-        color: #874cfe;
-      }
-    }
-  }
+			.normal-button-app {
+				font-size: 24px;
+				padding: 10px 20px;
+				margin-left: 0px;
+			}
+		}
+	}
 
-  .input-button {
-    /deep/.van-field__button {
-      width: 100px;
-      .normal-button-app {
-        font-size: 24px;
-        padding: 10px 20px;
-        margin-left: 0px;
-      }
-    }
-  }
+	.form-popup {
+		padding: 30px;
+	}
+}
 
-  .form-popup {
-    padding: 30px;
-  }
+.left-wdith {
+	/deep/ .van-field__label {
+		width: 150px;
+	}
 }
 </style>

+ 171 - 85
src/pages/mine/myCollection.vue

@@ -1,93 +1,179 @@
 <template>
-  <div class="my-collection-box">
-    <ul class="custom-list-box">
-      <li
-        class="collection-item white-box"
-        v-for="item in collectionList"
-        :key="item.id"
-        @click="goNavigator('reserve', { id: item.id })"
-      >
-        <div class="item-content">{{ item.content }}</div>
-        <div class="item-foot">
-          <p class="label">
-            <span>发布时间:</span>
-            <span>{{ item.time }}</span>
-          </p>
-          <div class="custom-status-box val">
-            <p :class="['status-btn', setStatusStyle(item.type)]">
-              {{ item.typeStr }}
-            </p>
-          </div>
-        </div>
-      </li>
-    </ul>
-  </div>
+	<div class="my-collection-box">
+		<ul class="custom-list-box">
+			<li
+			 class="collection-item white-box"
+			 v-for="item in collectionList"
+			 :key="item.id"
+			 @click="goDetail(item)"
+			>
+				<div class="item-content">{{ item.title }}</div>
+				<div class="item-foot">
+					<p class="label">
+						<span>发布时间:</span>
+						<span>{{ item.publishDate }}</span>
+					</p>
+					<div class="custom-status-box val">
+						<p :class="['status-btn', setStatusStyle(item.collectorsType)]">
+							{{ item.typeStr }}
+						</p>
+					</div>
+				</div>
+			</li>
+		</ul>
+	</div>
 </template>
 <script>
+import auth from '../../service/auth'
+import { list } from '../../service/api_user_collectors.js'
 export default {
-  data() {
-    return {
-      //收藏列表
-      collectionList: [
-        {
-          id: 1,
-          type: "1", //1、园区通知 2、物业通知 3、园区活动  4、园区培训
-          typeStr: "园区通知",
-          content: "园区通知主题德德的",
-          time: "2021-10-25",
-        },
-        {
-          id: 2,
-          type: "2", //1、园区通知 2、物业通知 3、园区活动  4、园区培训
-          typeStr: "物业通知",
-          content: "园区通知主题德德的",
-          time: "2021-10-25",
-        },
-        {
-          id: 3,
-          type: "3", //1、园区通知 2、物业通知 3、园区活动  4、园区培训
-          typeStr: "园区活动",
-          content: "园区通知主题德德的",
-          time: "2021-10-25",
-        },
-        {
-          id: 4,
-          type: "4", //1、园区通知 2、物业通知 3、园区活动  4、园区培训
-          typeStr: "园区培训",
-          content: "园区通知主题德德的",
-          time: "2021-10-25",
-        },
-      ],
-    };
-  },
-  methods: {
-    /**
-     * 设置状态样式
-     */
-    setStatusStyle(status) {
-      let statusClass = null;
-      switch (status) {
-        case "1":
-          statusClass = "pending-btn";
-          break;
-        case "2":
-          statusClass = "accepted-btn";
-          break;
-        case "3":
-          statusClass = "processed-btn";
-          break;
-        case "4":
-          statusClass = "evaluated-btn";
-          break;
-      }
-      return statusClass;
-    },
-  },
-};
+	data() {
+		return {
+			// 收藏列表
+			collectionList: []
+		}
+	},
+	mounted() {
+		this.getData()
+		if (window.history && window.history.pushState) {
+			// 向历史记录中插入了当前页
+			history.pushState(null, null, document.URL)
+			window.addEventListener('popstate', this.goBack, false)
+		}
+	},
+	destroyed() {
+		window.removeEventListener('popstate', this.goBack, false)
+	},
+	methods: {
+		goBack() {
+			this.$router.push({ path: '/mine' })
+		},
+		getData() {
+			const _this = this
+			list({ userId: auth.uid() }).then((res) => {
+				_this.collectionList = res
+				_this.collectionList.forEach((item) => {
+					item.publishDate = this.$common.transServDate(item.publishDate)
+					if (item.collectorsType === '1') {
+						item.typeStr = '园区活动'
+					} else if (item.collectorsType === '2') {
+						item.typeStr = '园区培训'
+					} else if (item.collectorsType === '3') {
+						item.typeStr = '园区通知'
+					} else if (item.collectorsType === '4') {
+						item.typeStr = '物业通知'
+					} else if (item.collectorsType === '6') {
+						item.typeStr = '达人招募'
+					} else if (item.collectorsType === '7') {
+						item.typeStr = '达人'
+					} else if (item.collectorsType === '8') {
+						item.typeStr = '党员活动'
+					}
+				})
+			}).catch(() => {
+			})
+		},
+		goDetail(val) {
+			if (val.collectorsType === '1') {
+				this.$router.push({
+					path: '/parkActivities/detail',
+					query: {
+						// 这里面是写需要传送的值
+						id: val.collectorsId
+					}
+				})
+			} else if (val.collectorsType === '2') {
+				if (val.onlineOfflineStatus === '线下') {
+					this.$router.push({
+						path: '/parkTraining/detail',
+						query: {
+							// 这里面是写需要传送的值
+							id: val.collectorsId
+						}
+					})
+				} else {
+					this.$router.push({
+						path: '/parkTraining/onlineDetail',
+						query: {
+							// 这里面是写需要传送的值
+							id: val.collectorsId
+						}
+					})
+				}
+			} else if (val.collectorsType === '3') {
+				this.$router.push({
+					path: '/announcement/detail',
+					query: {
+						// 这里面是写需要传送的值
+						type: '1',
+						id: val.collectorsId
+					}
+				})
+			} else if (val.collectorsType === '4') {
+				this.$router.push({
+					path: '/announcement/detail',
+					query: {
+						// 这里面是写需要传送的值
+						type: '2',
+						id: val.collectorsId
+					}
+				})
+			} else if (val.collectorsType === '6') {
+				this.$router.push({
+					path: '/parkMaster/index',
+					query: {
+						// 这里面是写需要传送的值
+						backType: '1',
+						id: val.collectorsId
+					}
+				})
+			} else if (val.collectorsType === '7') {
+				this.$router.push({
+					path: '/parkMaster/detail',
+					query: {
+						backType: '1',
+						// 这里面是写需要传送的值
+						id: val.collectorsId
+					}
+				})
+			} else if (val.collectorsType === '8') {
+				this.$router.push({
+					path: '/partyBuildingLeadership/detail',
+					query: {
+						backType: '1',
+						// 这里面是写需要传送的值
+						id: val.collectorsId
+					}
+				})
+			}
+		},
+		/**
+		 * 设置状态样式
+		 */
+		setStatusStyle(status) {
+			let statusClass = null
+			switch (status) {
+				case '1':
+					statusClass = 'processed-btn'
+					break
+				case '2':
+					statusClass = 'evaluated-btn'
+					break
+				case '3':
+					statusClass = 'pending-btn'
+					break
+				case '4':
+					statusClass = 'accepted-btn'
+					break
+			}
+			return statusClass
+		}
+	}
+}
 </script>
 <style lang="scss" scoped>
 .my-collection-box {
-  width: 100%;
-  height: 100%;
+	width: 100%;
+	height: 100%;
 }
-</style>
+</style>

+ 15 - 3
src/pages/parkActivities/detail.vue

@@ -36,7 +36,7 @@
         </div>
         <div class="info-item">
           <div class="custom-item-tit"><span class="tit">活动内容</span></div>
-          <div class="text">{{ activityDetail.activityContent }}</div>
+          <div class="text" v-html="activityDetail.activityContent"></div>
         </div>
 
         <div class="info-item">
@@ -202,8 +202,8 @@ export default {
 
     .info-part {
       background-color: #fff;
-      overflow-y: auto;
-      height: calc(100vh - 700px);
+      //overflow-y: auto;
+      //height: calc(100vh - 700px);
       box-sizing: border-box;
       padding: 40px 30px;
       .info-item {
@@ -218,6 +218,7 @@ export default {
           .add {
             margin-right: 40px;
           }
+
           .dh {
             width: 100px;
             text-align: center;
@@ -234,3 +235,14 @@ export default {
   }
 }
 </style>
+<style lang="scss">
+.text{
+	p{
+		img{
+			max-width: 88vw!important;
+		}
+	}
+
+}
+
+</style>

+ 4 - 0
src/pages/parkTraining/detail.vue

@@ -86,6 +86,7 @@ export default {
     },
     data() {
         return {
+					url: process.env.VUE_APP_API_URL,
             active: false,
             id: '',
             trainDetail: '',
@@ -102,6 +103,9 @@ export default {
             const _this = this
             getTrainById(this.id, auth.currUser().id).then((res) => {
                 if (res.data) {
+									console.log(res.data)
+									res.data.annexArray[0]=res.data.annexArray[0].replace("/webServer/FileController/download/",process.env.VUE_APP_API_URL+'/FileController/download/')
+
                     _this.trainDetail = res.data
                     _this.trainDetail.registrationStartTime = this.$common.transBaseDateTime(
                         _this.trainDetail.registrationStartTime

+ 304 - 284
src/pages/parkTraining/index.vue

@@ -1,93 +1,94 @@
 <template>
-  <div class="announcement">
-    <div class="tap-part">
-      <van-tabs
-        v-model="active"
-        title-active-color="#6600FF"
-        color="#6600FF"
-        line-width="175px"
-      >
-        <van-tab title="最新培训">
-          <div class="tips-list">
-            <div
-              :class="['tip-item', item.active && 'active']"
-              v-for="item in tipList"
-              @click="selectChange(item.value)"
-            >
-              {{ item.label }}
-            </div>
-          </div>
-
-          <div class="card-news-list">
-            <div
-              class="detail-card shadow-radius news-card"
-              @click="getDetail(item)"
-              v-for="item in list"
-            >
-              <div class="image">
-                <img :src="item.annexArray[0]" alt="" />
-              </div>
-              <div class="info-part">
-                <div class="top">
-                  <p class="text">{{ item.trainTitle }}</p>
-                  <span v-if="item.onlineOfflineStatus === '线下'" class="tip-grid-bg">线下</span>
-                  <span v-else class="tip-grid-bg red">线上</span>
-                </div>
-
-                <div class="bottom">
-                  <div class="left" v-if="item.onlineOfflineStatus === '线下' && item.registrationStatus === '1'">
-                    <span class="normal-tip by y-bg">报名中</span>
-                  </div>
-                  <div class="left" v-if="item.onlineOfflineStatus === '线下' && item.registrationStatus === '2'">
-                    <span class="normal-tip by h-bg">已结束</span>
-                  </div>
-
-                  <div class="left" v-if="item.onlineOfflineStatus === '线上' && item.trainStatus === '2'">
-                    <span class="normal-tip by z-bg">可观看</span>
-                  </div>
-                  <div class="right">
-                    <div class="num">{{ item.partakeNumber }}人参与</div>
-                    <div
-                      class="icon-collect"
-                      @click.stop="changeCollectorsStatus(item)"
-                    >
-                        <i class="iconfont icon-wujiaoxingxingxingshoucangdianji blue" v-if="item.collectorsStatus === '2'" ></i>
-                        <i class="iconfont icon-wujiaoxingxingxingshoucangdianji" v-else></i>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </van-tab>
-        <van-tab title="报名记录">
-          <div class="card-news-list">
-            <div class="record-card shadow-radius" v-for="item1 in regisSignList">
-              <div class="left">
-                <img :src="item1.annexArray[0]" alt=""/>
-                <p class="text">请出示二维码签到</p>
-              </div>
-              <div class="right">
-                <div class="title">{{ item1.trainTitle }}</div>
-
-                <div class="time">时间:{{ item1.trainStartTime }}开始</div>
-
-                <div class="add">
-                  <p>地址:</p>
-                  <p>{{ item1.trainAddress }}</p>
-                </div>
-
-                <div class="bottom">
-                    <p class="normal-tip by y-bg" v-if="item1.registrationStatus === '1'">报名中</p>
-                    <p class="normal-tip by h-bg" v-else>已结束</p>
-                </div>
-              </div>
-            </div>
-          </div>
-        </van-tab>
-      </van-tabs>
-    </div>
-  </div>
+	<div class="announcement">
+		<div class="tap-part">
+			<van-tabs
+			 v-model="active"
+			 color="#6600FF"
+			 line-width="175px"
+			 title-active-color="#6600FF"
+			>
+				<van-tab title="最新培训">
+					<div class="tips-list">
+						<div
+						 v-for="item in tipList"
+						 :class="['tip-item', item.active && 'active']"
+						 @click="selectChange(item.value)"
+						>
+							{{ item.label }}
+						</div>
+					</div>
+
+					<div class="card-news-list">
+						<div
+						 v-for="item in list"
+						 class="detail-card shadow-radius news-card"
+						 @click="getDetail(item)"
+						>
+							<div class="image">
+								<img :src="item.annexArray[0]" alt=""/>
+							</div>
+							<div class="info-part">
+								<div class="top">
+									<p class="text">{{ item.trainTitle }}</p>
+									<span v-if="item.onlineOfflineStatus === '线下'" class="tip-grid-bg">线下</span>
+									<span v-else class="tip-grid-bg red">线上</span>
+								</div>
+
+								<div class="bottom">
+									<div v-if="item.onlineOfflineStatus === '线下' && item.registrationStatus === '1'" class="left">
+										<span class="normal-tip by y-bg">报名中</span>
+									</div>
+									<div v-if="item.onlineOfflineStatus === '线下' && item.registrationStatus === '2'" class="left">
+										<span class="normal-tip by h-bg">已结束</span>
+									</div>
+
+									<div v-if="item.onlineOfflineStatus === '线上' && item.trainStatus === '2'" class="left">
+										<span class="normal-tip by z-bg">可观看</span>
+									</div>
+									<div class="right">
+										<div class="num">{{ item.partakeNumber }}人参与</div>
+										<div
+										 class="icon-collect"
+										 @click.stop="changeCollectorsStatus(item)"
+										>
+											<i v-if="item.collectorsStatus === '2'"
+											   class="iconfont icon-wujiaoxingxingxingshoucangdianji blue"></i>
+											<i v-else class="iconfont icon-wujiaoxingxingxingshoucangdianji"></i>
+										</div>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</van-tab>
+				<van-tab title="报名记录">
+					<div class="card-news-list">
+						<div v-for="item1 in regisSignList" class="record-card shadow-radius">
+							<div class="left">
+								<img :src="item1.annexArray[0]" alt=""/>
+								<p class="text">请出示二维码签到</p>
+							</div>
+							<div class="right">
+								<div class="title">{{ item1.trainTitle }}</div>
+
+								<div class="time">时间:{{ item1.trainStartTime }}开始</div>
+
+								<div class="add">
+									<p>地址:</p>
+									<p>{{ item1.trainAddress }}</p>
+								</div>
+
+								<div class="bottom">
+									<p v-if="item1.registrationStatus === '1'" class="normal-tip by y-bg">报名中</p>
+									<p v-else class="normal-tip by h-bg">已结束</p>
+								</div>
+							</div>
+						</div>
+					</div>
+				</van-tab>
+			</van-tabs>
+		</div>
+	</div>
 </template>
 
 <script>
@@ -96,211 +97,230 @@ import auth from '@/service/auth'
 import { clickCollect, list, listRegisSignInfo } from '@/service/api_train'
 
 export default {
-    name: 'ParkTraining',
-    mixins: [Base],
-    data() {
-        return {
-            active: 0,
-            dc_key: ['trainType'],
-            userId: '',
-            tipList: [],
-            search: {
-                trainType: '',
-                userId: '',
-                publishStatus: '2'
-            },
-            list: [],
-            regisSignList: []
-        }
-    },
-    mounted() {
-        this.userId = auth.uid()
-        this.initDict(this.dc_key).then((res) => {
-            this.tipList = this.dc_data.trainType
-            this.getData()
-            this.getRegisSignInfo()
-        })
-    },
-    methods: {
-        getData() {
-            const _this = this
-            this.search.userId = this.userId
-            list(this.search).then((res) => {
-                _this.list = res
-            }).catch(() => {
-            })
-        },
-        getRegisSignInfo() {
-            const _this = this
-            listRegisSignInfo({ userId: this.userId, referenceType: '2' }).then((res) => {
-                _this.regisSignList = res
-                _this.regisSignList.forEach((item) => {
-                    item.trainStartTime = this.$common.transBaseDateTime(item.trainStartTime)
-                })
-                console.log(_this.regisSignList)
-            }).catch(() => {
-            })
-        },
-        selectChange(value) {
-            let tel = true
-            this.tipList.forEach(i => {
-                if (i.value === value) {
-                    if (i.active) {
-                        tel = false
-                    } else {
-                        i.active = true
-                    }
-                } else {
-                    i.active = false
-                }
-            })
-            if (tel) {
-                this.search.trainType = value
-                this.getData()
-            }
-        },
-        getDetail(val) {
-            if (val.onlineOfflineStatus === '线下') {
-                this.$router.push({
-                    path: '/parkTraining/detail',
-                    query: {
-                        // 这里面是写需要传送的值
-                        id: val.id
-                    }
-                })
-            } else {
-                this.$router.push({
-                    path: '/parkTraining/onlineDetail',
-                    query: {
-                        // 这里面是写需要传送的值
-                        id: val.id
-                    }
-                })
-            }
-        },
-        changeCollectorsStatus(val) {
-            if (val.collectorsStatus === '2') {
-                const _this = this
-                clickCollect({
-                    id: val.id,
-                    userId: auth.currUser().id,
-                    collectorsStatus: '1'
-                }).then((res) => {
-                    _this.getData()
-                    _this.getRegisSignInfo()
-                })
-            } else {
-                const _this = this
-                clickCollect({
-                    id: val.id,
-                    userId: auth.currUser().id,
-                    collectorsStatus: '2'
-                }).then((res) => {
-                    _this.getData()
-                    _this.getRegisSignInfo()
-                })
-            }
-        }
-    }
+	name: 'ParkTraining',
+	mixins: [Base],
+	data() {
+		return {
+			active: 0,
+			dc_key: ['trainType'],
+			userId: '',
+			tipList: [],
+			search: {
+				trainType: '',
+				userId: '',
+				publishStatus: '2'
+			},
+			list: [],
+			regisSignList: []
+		}
+	},
+	mounted() {
+		this.userId = auth.uid()
+		this.initDict(this.dc_key).then((res) => {
+			this.tipList = this.dc_data.trainType
+			this.getData()
+			this.getRegisSignInfo()
+		})
+	},
+	methods: {
+		getData() {
+			const _this = this
+			this.search.userId = this.userId
+			list(this.search).then((res) => {
+				_this.list = res
+
+				_this.list.forEach((e) => {
+					e.annexArray[0] = e.annexArray[0].replace('/webServer/FileController/download/', process.env.VUE_APP_API_URL + '/FileController/download/')
+
+				})
+
+			})
+		},
+		getRegisSignInfo() {
+			const _this = this
+			listRegisSignInfo({ userId: this.userId, referenceType: '2' }).then((res) => {
+				_this.regisSignList = res
+				_this.regisSignList.forEach((item) => {
+
+					item.trainStartTime = this.$common.transBaseDateTime(item.trainStartTime)
+				})
+				console.log(_this.regisSignList)
+			}).catch(() => {
+			})
+		},
+		selectChange(value) {
+			let tel = true
+			this.tipList.forEach(i => {
+
+				if (i.value === value) {
+					if (i.active) {
+						tel = false
+					} else {
+						i.active = true
+					}
+				} else {
+					i.active = false
+				}
+			})
+			if (tel) {
+				this.search.trainType = value
+				this.getData()
+			}
+		},
+		getDetail(val) {
+			if (val.onlineOfflineStatus === '线下') {
+				this.$router.push({
+					path: '/parkTraining/detail',
+					query: {
+						// 这里面是写需要传送的值
+						id: val.id
+					}
+				})
+			} else {
+				this.$router.push({
+					path: '/parkTraining/onlineDetail',
+					query: {
+						// 这里面是写需要传送的值
+						id: val.id
+					}
+				})
+			}
+		},
+		changeCollectorsStatus(val) {
+			if (val.collectorsStatus === '2') {
+				const _this = this
+				clickCollect({
+					id: val.id,
+					userId: auth.currUser().id,
+					collectorsStatus: '1'
+				}).then((res) => {
+					_this.getData()
+					_this.getRegisSignInfo()
+				})
+			} else {
+				const _this = this
+				clickCollect({
+					id: val.id,
+					userId: auth.currUser().id,
+					collectorsStatus: '2'
+				}).then((res) => {
+					_this.getData()
+					_this.getRegisSignInfo()
+				})
+			}
+		}
+	}
 }
 </script>
 
-<style lang="scss" type="text/scss" scoped>
+<style lang="scss" scoped type="text/scss">
 .announcement {
-  box-sizing: border-box;
-  .tap-part {
-    margin-top: 10px;
-    height: calc(100vh - 10px);
-
-    .van-tabs {
-      height: 100%;
-    }
-
-    .info-list {
-      height: calc(100vh - 92px);
-      background-color: #fff;
-      padding: 0 20px;
-      overflow-y: auto;
-    }
-  }
+	box-sizing: border-box;
+
+	.tap-part {
+		margin-top: 10px;
+		height: calc(100vh - 10px);
+
+		.van-tabs {
+			height: 100%;
+		}
+
+		.info-list {
+			height: calc(100vh - 92px);
+			background-color: #fff;
+			padding: 0 20px;
+			overflow-y: auto;
+		}
+	}
 }
 
 //头部标签
 .tips-list {
-  margin-top: 20px;
-  @include flex;
-  flex-wrap: wrap;
-  .tip-item {
-    width: 120px;
-    margin: 0 15px 20px;
-    text-align: center;
-    line-height: 40px;
-    font-size: 24px;
-    color: #fff;
-
-    border-radius: 4px;
-    background-color: rgba(215, 215, 215, 1);
-  }
-  .active {
-    background-color: $main;
-  }
+	margin-top: 20px;
+	@include flex;
+	flex-wrap: wrap;
+
+	.tip-item {
+		width: 120px;
+		margin: 0 15px 20px;
+		text-align: center;
+		line-height: 40px;
+		font-size: 24px;
+		color: #fff;
+
+		border-radius: 4px;
+		background-color: rgba(215, 215, 215, 1);
+	}
+
+	.active {
+		background-color: $main;
+	}
 }
 
 .card-news-list {
-  box-sizing: border-box;
-  overflow-y: auto;
-  height: calc(100vh - 240px);
-  padding: 20px 20px;
-  .news-card {
-    margin-bottom: 10px;
-  }
-  .record-card {
-    margin-bottom: 10px;
-    height: 346px;
-    background-color: #fff;
-    padding: 20px 30px;
-    box-sizing: border-box;
-    @include flex;
-    .left {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
-      height: 100%;
-      img {
-        width: 244px;
-      }
-      .text {
-        margin-bottom: 10px;
-        text-align: center;
-        font-size: 16px;
-        color: $color4;
-      }
-    }
-    .right {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
-      text-align: center;
-      font-size: 24px;
-      height: 100%;
-      color: $color4;
-      padding-left: 100px;
-      .title {
-        font-weight: 700;
-        margin-top: 20px;
-      }
-      .time {
-      }
-
-      .add {
-        p {
-          word-break: break-word;
-        }
-      }
-      .bottom {
-        text-align: right;
-      }
-    }
-  }
+	box-sizing: border-box;
+	overflow-y: auto;
+	height: calc(100vh - 240px);
+	padding: 20px 20px;
+
+	.news-card {
+		margin-bottom: 10px;
+	}
+
+	.record-card {
+		margin-bottom: 10px;
+		height: 346px;
+		background-color: #fff;
+		padding: 20px 30px;
+		box-sizing: border-box;
+		@include flex;
+
+		.left {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			height: 100%;
+
+			img {
+				width: 244px;
+			}
+
+			.text {
+				margin-bottom: 10px;
+				text-align: center;
+				font-size: 16px;
+				color: $color4;
+			}
+		}
+
+		.right {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			text-align: center;
+			font-size: 24px;
+			height: 100%;
+			color: $color4;
+			padding-left: 100px;
+
+			.title {
+				font-weight: 700;
+				margin-top: 20px;
+			}
+
+			.time {
+			}
+
+			.add {
+				p {
+					word-break: break-word;
+				}
+			}
+
+			.bottom {
+				text-align: right;
+			}
+		}
+	}
 }
 </style>

+ 284 - 188
src/pages/register.vue

@@ -1,207 +1,303 @@
 <template>
-    <div class="login">
-        <div class="login-form">
-            <div class="title">注册</div>
-            <div class="form-input">
-                <input type="text" placeholder="请输入用户名" v-model="userName" />
-            </div>
-            <div class="form-input">
-                <input
-                    type="password"
-                    placeholder="请设置 8-12位字母数字组合密码"
-                    v-model="password"
-                />
-            </div>
-        </div>
+	<div class="login">
+		<div class="login-form">
+			<div class="title">注册</div>
 
-        <div class="login-button">
-            <p>
-                <button class="but-type1" type="info" @click="register">提交</button>
-            </p>
-            <p>
-                <button class="but-type2" @click="$router.push('/login-app')">
-                    去登录
-                </button>
-            </p>
-        </div>
+			<div class="form-input">
+				<p class="left">
+					<span> +86 </span>
+					<span>
+            <i class="iconfont icon-close"></i>
+          </span>
+				</p>
+				<input
+				 type="text"
+				 placeholder="请输入手机号"
+				 v-model="phoneNo"
+				 maxlength="11"
+				 oninput="value=value.replace(/[^\d]/g,'')"
+				/>
+			</div>
+			<div class="form-input">
+				<input type="text" placeholder="请输入姓名" v-model="userName" />
+			</div>
+			<div class="form-input">
+				<input
+				 type="password"
+				 placeholder="请设置 8-12位字母数字组合密码"
+				 v-model="password"
+				/>
+			</div>
+			<div class="form-input">
+				<input
+				 type="password"
+				 placeholder="请再输入一次密码"
+				 v-model="checkPassword"
+				/>
+			</div>
+			<div class="form-input">
+				<input type="text" placeholder="请输入验证码" v-model="phoneCode" />
+				<p class="right" @click="getPhoneCode" v-if="!isShow">{{ voCode }}</p>
+				<p class="right" v-else>{{ voCode }}</p>
+			</div>
+		</div>
 
-        <div class="foot-pact" v-show="isOriginHei">
-            <div class="check">
-                <van-checkbox
-                    checked-color="rgba(102, 0, 255, 1)"
-                    v-model="checked"
-                ></van-checkbox>
-            </div>
-            <div class="text1">已阅读并同意</div>
-            <div class="text2">《服务协议条款及隐私条款》</div>
-        </div>
-    </div>
+		<div class="login-button">
+			<p>
+				<button class="but-type1" type="info" @click="register">提交</button>
+			</p>
+			<!-- <p>
+				<button class="but-type2" @click="$router.push('/login')">
+					去登录
+				</button>
+			</p> -->
+		</div>
+
+		<div class="foot-pact" v-show="isOriginHei">
+			<div class="check">
+				<van-checkbox
+				 checked-color="rgba(102, 0, 255, 1)"
+				 v-model="checked"
+				></van-checkbox>
+			</div>
+			<div class="text1">已阅读并同意</div>
+			<div class="text2">《服务协议条款及隐私条款》</div>
+		</div>
+	</div>
 </template>
 
 <script>
-import { register_by_app_account } from '../service/api_user.js'
+import { send, register_by_account } from '../service/api_user.js'
+import { mapActions } from 'vuex'
 import { Toast } from 'vant'
 export default {
-    data() {
-        return {
-            checked: false,
-            isShow: false,
-            phoneNo: '',
-            userName: '',
-            password: '',
-            checkPassword: '',
-            phoneCode: '',
-            code: '',
-            voCode: '发送验证码',
-            totalTime: 60,
-            isOriginHei: true,
-            screenHeight: document.documentElement.clientHeight, // 此处也可能是其他获取方法
-            originHeight: document.documentElement.clientHeight
-        }
-    },
-    mounted() {
-        const self = this
-        self.code = self.$route.query.code
-        console.log(self.code)
-        window.onresize = function() {
-            return (function() {
-                self.screenHeight = document.documentElement.clientHeight
-            })()
-        }
-    },
-    watch: {
-        screenHeight(val) {
-            if (this.originHeight > val + 100) {
-                // 加100为了兼容华为的返回键
-                this.isOriginHei = false
-            } else {
-                this.isOriginHei = true
-            }
-        }
-    },
-    methods: {
-        register() {
-            if (this.userName === '') {
-                Toast('请填写用户名')
-                return false
-            }
-            if (this.password === '') {
-                Toast('请填写密码')
-                return false
-            }
-            const ab = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,12}$/
-            if (ab.test(this.password) === false) {
-                Toast('请填写正确格式的密码')
-                return false
-            }
-            if (this.checked === false) {
-                Toast('请阅读并同意服务协议条款及隐私条款')
-                return false
-            }
-            const _this = this
-            register_by_app_account({
-                username: this.userName,
-                password: this.password
-            }).then((res) => {
-                if (res.errno === 0 && res.data) {
-                    Toast('注册成功')
-                    _this.$router.push({ path: '/login-app' })
-                } else {
-                    Toast(res.errmsg)
-                }
-            })
-        }
-    }
+	data() {
+		return {
+			checked: false,
+			isShow: false,
+			phoneNo: '',
+			userName: '',
+			password: '',
+			checkPassword: '',
+			phoneCode: '',
+			code: '',
+			type: '',
+			voCode: '发送验证码',
+			totalTime: 60,
+			isOriginHei: true,
+			screenHeight: document.documentElement.clientHeight, // 此处也可能是其他获取方法
+			originHeight: document.documentElement.clientHeight
+		}
+	},
+	mounted() {
+		const self = this
+		if (self.$route.query.type) {
+			self.type = self.$route.query.type
+		}
+		self.code = self.$route.query.code
+		console.log(self.code)
+		window.onresize = function() {
+			return (function() {
+				self.screenHeight = document.documentElement.clientHeight
+			})()
+		}
+	},
+	watch: {
+		screenHeight(val) {
+			if (this.originHeight > val + 100) {
+				// 加100为了兼容华为的返回键
+				this.isOriginHei = false
+			} else {
+				this.isOriginHei = true
+			}
+		}
+	},
+	methods: {
+		...mapActions({ login: 'user/login' }),
+		// testHome(){
+		//   window.history.go(-2);
+		// },
+		getPhoneCode() {
+			if (this.phoneNo === '') {
+				Toast('请填写手机号码')
+				return false
+			}
+			const ab = /1[3,4,5,7,8][0-9]{9}$/
+			if (ab.test(this.phoneNo) === false) {
+				Toast('请填写正确手机号码')
+				return false
+			}
+			this.isShow = true
+			send({
+				phoneNo: this.phoneNo,
+				type: this.type
+			}).then((res) => {
+				if (res.errno === 0 && res.data) {
+					const clock = window.setInterval(() => {
+						this.totalTime--
+						this.voCode = this.totalTime + 's后重新发送'
+						if (this.totalTime === 0) {
+							window.clearInterval(clock)
+							this.voCode = '重新发送验证码'
+							this.totalTime = 60
+							this.isShow = false
+						}
+					}, 1000)
+				} else {
+					Toast(res.errmsg)
+				}
+			})
+		},
+		register() {
+			if (this.phoneNo === '') {
+				Toast('请填写手机号码')
+				return false
+			}
+			const ab1 = /1[3,4,5,7,8][0-9]{9}$/
+			if (ab1.test(this.phoneNo) === false) {
+				Toast('请填写正确手机号码')
+				return false
+			}
+			if (this.checked === false) {
+				Toast('请阅读并同意服务协议条款及隐私条款')
+				return false
+			}
+			if (this.password === '') {
+				Toast('请填写密码')
+				return false
+			}
+			const ab = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,12}$/
+			if (ab.test(this.password) === false) {
+				Toast('请填写正确格式的密码')
+				return false
+			}
+			if (this.password !== this.checkPassword) {
+				Toast('确认密码与密码不一致')
+				return false
+			}
+			if (this.phoneCode === '') {
+				Toast('请输入验证码')
+				return false
+			}
+			const _this = this
+			register_by_account({
+				phoneNo: this.phoneNo,
+				trueName: this.userName,
+				password: this.password,
+				phoneVerificationCode: this.phoneCode,
+				code: this.code,
+				type: this.type
+			}).then((res) => {
+				if (res.errno === 0 && res.data) {
+					if (_this.type == '1') {
+						Toast('密码修改成功')
+					} else {
+						Toast('注册成功')
+						_this.login(res.data)
+					}
+					if (window.history && window.history.length > 1) {
+						window.history.back()
+						window.history.back()
+					} else {
+						_this.$router.push({ path: '/home' })
+					}
+					// _this.$router.push({ path: '/login' })
+				} else {
+					Toast(res.errmsg)
+				}
+			})
+		}
+	}
 }
 </script>
 
 <style lang="scss" scoped>
 .login {
-    width: 100%;
-    height: 100%;
-    background: #fff;
-    overflow: hidden;
-    background-size: 100% 100%;
-    padding: 150px 40px 40px;
-    box-sizing: border-box;
-    .login-form {
-        .title {
-            font-size: 32px;
-            color: $text1;
-            font-weight: 700;
-            margin-bottom: 30px;
-        }
-        .form-input {
-            margin-top: 20px;
-            border-bottom: 1px solid #f2f2f2;
-            padding: 0 30px;
-            @include fj;
-            .left {
-                @include fj;
-                width: 140px;
-                font-size: 28px;
-                color: $text3;
-                align-items: center;
-                span {
-                    flex: 1;
-                    text-align: center;
-                    i {
-                        font-size: 28px;
-                        color: $color1;
-                    }
-                }
-            }
+	width: 100%;
+	height: 100%;
+	background: #fff;
+	overflow: hidden;
+	background-size: 100% 100%;
+	padding: 150px 40px 40px;
+	box-sizing: border-box;
+	.login-form {
+		.title {
+			font-size: 32px;
+			color: $text1;
+			font-weight: 700;
+			margin-bottom: 30px;
+		}
+		.form-input {
+			margin-top: 20px;
+			border-bottom: 1px solid #f2f2f2;
+			padding: 0 30px;
+			@include fj;
+			.left {
+				@include fj;
+				width: 140px;
+				font-size: 28px;
+				color: $text3;
+				align-items: center;
+				span {
+					flex: 1;
+					text-align: center;
+					i {
+						font-size: 28px;
+						color: $color1;
+					}
+				}
+			}
 
-            .right {
-                width: 180px;
-                padding-left: 40px;
-                font-size: 24px;
-                color: $main;
-                line-height: 80px;
-                text-align: center;
-            }
+			.right {
+				width: 180px;
+				padding-left: 40px;
+				font-size: 24px;
+				color: $main;
+				line-height: 80px;
+				text-align: center;
+			}
 
-            input {
-                flex: 1;
-                font-size: 24px;
-                color: $text1;
-                line-height: 80px;
-            }
-            input::-webkit-input-placeholder {
-                color: $text2;
-            }
-        }
-    }
+			input {
+				flex: 1;
+				font-size: 24px;
+				color: $text1;
+				line-height: 80px;
+			}
+			input::-webkit-input-placeholder {
+				color: $text2;
+			}
+		}
+	}
 
-    .login-button {
-        margin-top: 100px;
-        width: 100%;
-        p {
-            margin: 20px 0;
-        }
-    }
+	.login-button {
+		margin-top: 100px;
+		width: 100%;
+		p {
+			margin: 20px 0;
+		}
+	}
 
-    .foot-pact {
-        position: fixed;
-        bottom: 30px;
-        padding: 0 80px;
-        @include fj;
-        .check {
-            margin-right: 10px;
-            /deep/.van-icon {
-                font-size: 30px;
-            }
-        }
-        .text1 {
-            font-size: 20px;
-            color: $text3;
-            line-height: 45px;
-        }
-        .text2 {
-            font-size: 20px;
-            color: $main;
-            line-height: 45px;
-        }
-    }
+	.foot-pact {
+		position: fixed;
+		bottom: 30px;
+		padding: 0 80px;
+		@include fj;
+		.check {
+			margin-right: 10px;
+			/deep/.van-icon {
+				font-size: 30px;
+			}
+		}
+		.text1 {
+			font-size: 20px;
+			color: $text3;
+			line-height: 45px;
+		}
+		.text2 {
+			font-size: 20px;
+			color: $main;
+			line-height: 45px;
+		}
+	}
 }
 </style>

+ 1 - 1
src/pages/resource-release/index.vue

@@ -2,7 +2,7 @@
 	<div class="resource-release">
 		<img alt="" src="./img/banner.png">
 		<div style="position: relative;top: -5vh;">
-			<div class="btn-list">
+			<div class="btn-list" @click="goNavigator('talentService-iWantToRcruit')">
 				<div class="card-img">
 					<img src="./img/1.png" alt="">
 				</div>

+ 3 - 3
src/pages/resource-release/zhaozu-detail.vue

@@ -8,7 +8,7 @@
 			<div class="room-type">
 				{{ info.types }}
 			</div>
-			<div class="company-name">北京正沃科技有限公司 {{ $common.transServDate(info.createdAt) }}</div>
+			<div class="company-name">{{ info.companyName ? info.companyName : '未知公司' }} {{ $common.transServDate(info.createdAt) }}</div>
 			<div class="info">
 				{{info.info}}
 
@@ -353,7 +353,7 @@ export default {
 			display: inline-block;
 			vertical-align: top;
 
-			height: 5.2vw;
+			height: 20px;
 			background-size: 100% 100%;
 			//text-align: center;
 			line-height: 1;
@@ -362,7 +362,7 @@ export default {
 
 		.img:nth-of-type(n+2) {
 			display: inline-block;
-			height: 5.2vw;
+			height: 20px;
 			margin: 0 3vw;
 			background-size: 100% 100%;
 		}

+ 570 - 398
src/pages/settleIn/index.vue

@@ -1,408 +1,580 @@
 <template>
-  <div class="settleIn">
-    <div class="form-part">
-      <van-form>
-        <van-field
-          class="input-item"
-          label="*企业名称"
-          input-align="right"
-          placeholder="用户名"
-        />
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.enterpriseTypeName"
-          input-align="right"
-          label="企业类型"
-          @click="showPicker_enterpriseType = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_enterpriseType" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.enterpriseType"
-            @confirm="(value) => onConfirm(value, 'enterpriseType')"
-            @cancel="showPicker_enterpriseType = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.isHeadName"
-          input-align="right"
-          label="是否总部"
-          @click="showPicker_isHead = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_isHead" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.yesOrNo"
-            @confirm="(value) => onConfirm(value, 'isHead')"
-            @cancel="showPicker_isHead = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.isForeignName"
-          input-align="right"
-          label="是否外资"
-          @click="showPicker_isForeign = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_isForeign" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.yesOrNo"
-            @confirm="(value) => onConfirm(value, 'isForeign')"
-            @cancel="showPicker_isForeign = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.isImoutName"
-          input-align="right"
-          label="是否进出口"
-          @click="showPicker_isImout = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_isImout" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.yesOrNo"
-            @confirm="(value) => onConfirm(value, 'isImout')"
-            @cancel="showPicker_isImout = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.industryName"
-          input-align="right"
-          label="行业类型"
-          @click="showPicker_industry = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_industry" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.industry"
-            @confirm="(value) => onConfirm(value, 'industry')"
-            @cancel="showPicker_industry = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item picker-item"
-          readonly
-          clickable
-          :value="reqFrom.registrationCodeName"
-          input-align="right"
-          label="注册标识"
-          @click="showPicker_registrationCode = true"
-        >
-          <template #button>
-            <i class="iconfont icon-zuo"></i>
-          </template>
-        </van-field>
-        <van-popup v-model="showPicker_registrationCode" position="bottom">
-          <van-picker
-            show-toolbar
-            :columns="dickData.yesOrNo"
-            @confirm="(value) => onConfirm(value, 'registrationCode')"
-            @cancel="showPicker_registrationCode = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item"
-          v-model="reqFrom.registerAmount"
-          label="*注册资金(万元)"
-          input-align="right"
-          placeholder="请填写"
-        /><van-field
-          class="input-item"
-          label="*统一社会信用代码"
-          input-align="right"
-          placeholder="请填写"
-        />
-
-        <van-field
-          class="input-item"
-          readonly
-          clickable
-          input-align="right"
-          name="datetimePicker"
-          :value="reqFrom.registerTime"
-          label="*注册时间"
-          placeholder="请选择"
-          @click="showPicker_registerTime = true"
-        />
-        <van-popup v-model="showPicker_registerTime" position="bottom">
-          <van-datetime-picker
-            type="date"
-            @confirm="(value) => onDateConfirm(value, 'registerTime')"
-            @cancel="showPicker_registerTime = false"
-          />
-        </van-popup>
-
-        <van-field
-          class="input-item"
-          label="*法定代表"
-          v-model="reqFrom.legalUser"
-          input-align="right"
-          placeholder="请填写"
-        />
-
-        <van-field
-          class="input-item-warp input-item"
-          label="*经营范围"
-          v-model="reqFrom.manageRange"
-          placeholder="请填写"
-        />
-        <van-field
-          class="input-item-warp input-item"
-          label="*注册地址"
-          v-model="reqFrom.manageAddress"
-          placeholder="请填写"
-          style="margin-bottom: 1px"
-        />
-
-        <van-field
-          class="input-item"
-          label="*联系人"
-          input-align="right"
-          v-model="reqFrom.contacts"
-          placeholder="请填写"
-        />
-        <van-field
-          class="input-item"
-          label="*联系电话"
-          v-model="reqFrom.phone"
-          input-align="right"
-          placeholder="请填写"
-        />
-
-        <van-field
-          class="input-item input-item-warp input-up"
-          name="uploader"
-          label="*营业执照副本"
-        >
-          <template #input>
-            <van-uploader v-model="uploader" :after-read="afterRead" />
-          </template>
-        </van-field>
-      </van-form>
-    </div>
-
-    <div class="white-bottom">
-      <div class="two-button">
-        <div class="btn" @click="submit(1)">保存</div>
-        <div class="btn" @click="submit(0)">提交</div>
-      </div>
-    </div>
-
-    <!-- 弹框 -->
-    <van-popup v-model="show1" class="tip-popup">
-      <div class="popup-body">
-        <div class="popup-header">
-          <div class="title">消息</div>
-          <div class="close" @click="show1 = false">
-            <i class="iconfont icon-guanbi"></i>
-          </div>
-        </div>
-        <div class="popup-center">
-          感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
-        </div>
-        <div class="popup-foot">去查看</div>
-      </div>
-    </van-popup>
-
-    <van-popup v-model="show2" class="tip-popup">
-      <div class="popup-body">
-        <div class="popup-header">
-          <div class="title">消息</div>
-          <div class="close" @click="show2 = false">
-            <i class="iconfont icon-guanbi"></i>
-          </div>
-        </div>
-        <div class="popup-center">
-          感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
-        </div>
-        <div class="popup-foot">去查看</div>
-      </div></van-popup
-    >
-  </div>
+	<div class="settleIn">
+		<div class="top-status">
+			<div class="left">
+				<span class="title">认证状态:</span>
+				<span class="normal-tip z-bg">{{ rzzt }}</span>
+			</div>
+			<div class="right">
+				<span class="title">认证结果:</span>
+				<span class="normal-tip z-br">{{ shzt }}</span>
+			</div>
+		</div>
+
+		<div class="form-part">
+			<van-form>
+				<van-field
+				 v-model="reqFrom.enterpriseName"
+				 class="input-item"
+				 input-align="right"
+				 label="*企业名称"
+				 placeholder="企业名称"
+				/>
+
+				<van-field
+				 v-model="reqFrom.enterpriseCode"
+				 class="input-item"
+				 input-align="right"
+				 label="*统一社会信用代码"
+				 placeholder="请填写"
+				/>
+				<!-- <van-field
+				class="input-item"
+				label="机构代码"
+				v-model="reqFrom.enterpriseCode"
+				input-align="right"
+				placeholder="机构代码"
+				/> -->
+
+				<van-field
+				 :value="reqFrom.enterpriseTypeName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="企业类型"
+				 readonly
+				 @click="showPicker_enterpriseType = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_enterpriseType" position="bottom">
+					<van-picker
+					 :columns="dickData.enterpriseType"
+					 show-toolbar
+					 @cancel="showPicker_enterpriseType = false"
+					 @confirm="(value) => onConfirm(value, 'enterpriseType')"
+					/>
+				</van-popup>
+
+				<van-field
+				 :value="reqFrom.isHeadName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="是否总部"
+				 readonly
+				 @click="showPicker_isHead = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_isHead" position="bottom">
+					<van-picker
+					 :columns="dickData.yesOrNo"
+					 show-toolbar
+					 @cancel="showPicker_isHead = false"
+					 @confirm="(value) => onConfirm(value, 'isHead')"
+					/>
+				</van-popup>
+
+				<van-field
+				 :value="reqFrom.isForeignName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="是否外资"
+				 readonly
+				 @click="showPicker_isForeign = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_isForeign" position="bottom">
+					<van-picker
+					 :columns="dickData.yesOrNo"
+					 show-toolbar
+					 @cancel="showPicker_isForeign = false"
+					 @confirm="(value) => onConfirm(value, 'isForeign')"
+					/>
+				</van-popup>
+
+				<van-field
+				 :value="reqFrom.isImoutName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="是否进出口"
+				 readonly
+				 @click="showPicker_isImout = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_isImout" position="bottom">
+					<van-picker
+					 :columns="dickData.yesOrNo"
+					 show-toolbar
+					 @cancel="showPicker_isImout = false"
+					 @confirm="(value) => onConfirm(value, 'isImout')"
+					/>
+				</van-popup>
+
+				<van-field
+				 :value="reqFrom.industryName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="行业类型"
+				 readonly
+				 @click="showPicker_industry = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_industry" position="bottom">
+					<van-picker
+					 :columns="dickData.industry"
+					 show-toolbar
+					 @cancel="showPicker_industry = false"
+					 @confirm="(value) => onConfirm(value, 'industry')"
+					/>
+				</van-popup>
+
+				<van-field
+				 :value="reqFrom.registrationCodeName"
+				 class="input-item picker-item"
+				 clickable
+				 input-align="right"
+				 label="注册标识"
+				 readonly
+				 @click="showPicker_registrationCode = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_registrationCode" position="bottom">
+					<van-picker
+					 :columns="dickData.yesOrNo"
+					 show-toolbar
+					 @cancel="showPicker_registrationCode = false"
+					 @confirm="(value) => onConfirm(value, 'registrationCode')"
+					/>
+				</van-popup>
+
+				<van-field
+				 v-model="reqFrom.registerAmount"
+				 class="input-item"
+				 input-align="right"
+				 label="*注册资金(万元)"
+				 placeholder="请填写"
+				/>
+				<!-- <van-field
+				class="input-item"
+				v-model="reqFrom.socialCreditCode"
+				label="*统一社会信用代码"
+				input-align="right"
+				placeholder="请填写"
+				/> -->
+
+				<van-field
+				 :value="reqFrom.registerTime"
+				 class="input-item"
+				 clickable
+				 input-align="right"
+				 label="*注册时间"
+				 name="datetimePicker"
+				 placeholder="请选择"
+				 readonly
+				 @click="showPicker_registerTime = true"
+				/>
+				<van-popup v-model="showPicker_registerTime" position="bottom">
+					<van-datetime-picker
+					 type="date"
+					 @cancel="showPicker_registerTime = false"
+					 @confirm="(value) => onDateConfirm(value, 'registerTime')"
+					/>
+				</van-popup>
+
+				<van-field
+				 v-model="reqFrom.legalUser"
+				 class="input-item"
+				 input-align="right"
+				 label="*法定代表"
+				 placeholder="请填写"
+				/>
+
+				<van-field
+				 v-model="reqFrom.manageRange"
+				 class="input-item-warp input-item"
+				 label="*经营范围"
+				 placeholder="请填写"
+				/>
+				<van-field
+				 v-model="reqFrom.manageAddress"
+				 class="input-item-warp input-item"
+				 label="*注册地址"
+				 placeholder="请填写"
+				 style="margin-bottom: 1px"
+				/>
+
+				<van-field
+				 v-model="reqFrom.contacts"
+				 class="input-item"
+				 input-align="right"
+				 label="*联系人"
+				 placeholder="请填写"
+				/>
+				<van-field
+				 v-model="reqFrom.phone"
+				 class="input-item"
+				 input-align="right"
+				 label="*联系电话"
+				 placeholder="请填写"
+				/>
+
+				<van-field
+				 class="input-item input-item-warp input-up"
+				 label="*营业执照副本"
+				 name="uploader"
+				>
+					<template #input>
+						<van-uploader
+						 v-model="componentsFileUrlList"
+						 :after-read="afterRead"
+						 :before-delete="beforeDelete"
+						 :max-count="6"
+						 :multiple="true"
+						></van-uploader>
+						<!--<van-uploader v-model="uploader" :after-read="afterRead" />-->
+					</template>
+				</van-field>
+			</van-form>
+		</div>
+
+		<div v-if="this.reqFrom.state != 2" class="white-bottom">
+			<div class="two-button">
+				<!-- 1 -->
+				<div v-if="this.reqFrom.state != 3" class="btn" @click="submit(1)">
+					保存
+				</div>
+				<div v-if="this.reqFrom.state != 3" class="btn" @click="submit(2)">
+					提交
+				</div>
+
+				<!-- 3 -->
+				<div
+				 v-if="this.reqFrom.state == 3 && this.reqFrom.isSava == 1"
+				 class="btn"
+				 style="margin-right: 0"
+				 @click="submit(2)"
+				>
+					变更提交
+				</div>
+				<div
+				 v-if="this.reqFrom.state == 3 && this.reqFrom.isSava == 2"
+				 class="btn"
+				 style="margin-right: 0"
+				 @click="submit(1)"
+				>
+					重新提交
+				</div>
+			</div>
+		</div>
+
+		<!-- 弹框 -->
+		<!-- <van-popup v-model="show1" class="tip-popup">
+		<div class="popup-body">
+		<div class="popup-header">
+		<div class="title">消息</div>
+		<div class="close" @click="show1 = false">
+		<i class="iconfont icon-guanbi"></i>
+		</div>
+		</div>
+		<div class="popup-center">
+		您的申请已保存, 管理员将不会收到你的信息, 如需提交请点击提交按钮!
+		</div>
+		<div class="popup-foot">去查看</div>
+		</div>
+		</van-popup> -->
+		<van-popup v-model="show2" class="tip-popup">
+			<div class="popup-body">
+				<div class="popup-header">
+					<div class="title">消息</div>
+					<div class="close" @click="show2 = false">
+						<i class="iconfont icon-guanbi"></i>
+					</div>
+				</div>
+				<div class="popup-center">
+					感谢您的入驻!您的申请已提交,请等待工作人员联系。您也可以通过我的-企业认证查看认证审核情况!
+				</div>
+				<div class="popup-foot" @click="$router.go(-1)">返回首页</div>
+			</div>
+		</van-popup
+		>
+	</div>
 </template>
 
 <script>
-import Base from "@/pages/base/base";
-import { reserve, getProveDetial } from "@/api/parkProve";
+import { Toast } from 'vant'
+import Base from '@/pages/base/base'
+import { getProveDetial, reserve } from '@/api/parkProve'
+import axios from 'axios'
+import auth from '@/service/auth'
+
 export default {
-  mixins: [Base],
-  data() {
-    return {
-      //登陆人Id
-      createdId: "1",
-      proveType: "1",
-
-      reqFrom: {},
-      dc_key: ["yesOrNo", "industry", "enterpriseType"],
-      dickData: {},
-      showPicker_enterpriseType: false,
-      showPicker_isHead: false,
-      showPicker_isForeign: false,
-      showPicker_isImout: false,
-      showPicker_industry: false,
-      showPicker_registrationCode: false,
-      showPicker_registerTime: false,
-      show1: false,
-      show2: false,
-      uploader: [{ url: "https://img01.yzcdn.cn/vant/leaf.jpg" }],
-    };
-  },
-
-  mounted() {
-    this.initDict(this.dc_key).then((res) => {
-      this.initDickData();
-      this.getParkProve();
-    });
-  },
-
-  methods: {
-    onConfirm(value, type) {
-      this.reqFrom[type + "Name"] = value.text;
-      this.reqFrom[type] = value.value;
-      this["showPicker_" + type] = false;
-    },
-    onDateConfirm(value, type) {
-      this.reqFrom[type] = this.dateFormat("YYYY-mm-dd", value);
-      this["showPicker_" + type] = false;
-    },
-    //处理字典数据
-    initDickData() {
-      this.dc_key.forEach((element) => {
-        let itemData = [];
-        this.dc_data[element].forEach((item) => {
-          item.text = item.label;
-          itemData.push(item);
-        });
-        this.dickData[element] = itemData;
-      });
-    },
-    dateFormat(fmt, date) {
-      let ret;
-      const opt = {
-        "Y+": date.getFullYear().toString(), // 年
-        "m+": (date.getMonth() + 1).toString(), // 月
-        "d+": date.getDate().toString(), // 日
-        "H+": date.getHours().toString(), // 时
-        "M+": date.getMinutes().toString(), // 分
-        "S+": date.getSeconds().toString(), // 秒
-      };
-      for (let k in opt) {
-        ret = new RegExp("(" + k + ")").exec(fmt);
-        if (ret) {
-          fmt = fmt.replace(
-            ret[1],
-            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
-          );
-        }
-      }
-      return fmt;
-    },
-    afterRead(file) {
-      console.log("回调文件——:", file);
-      let formData = new FormData();
-      formData.file = file.file;
-      uploadFile(formData).then((res) => {
-        console.log("上传文件回调_:", res);
-        // console.log(res.data)
-        // this.brietData = res.data
-        // this.context = res.data.content
-        let imgs = JSON.parse(this.uploader);
-        this.reqFrom.businessLicense = imgs;
-      });
-    },
-
-    //提交
-    submit(isSava) {
-      this.reqFrom.isSava = isSava;
-      this.reqFrom.createdId = this.createdId;
-      this.reqFrom.proveType = this.proveType;
-      reserve(this.reqFrom).then((res) => {
-        if (res.key == 200) {
-          if (isSava == 0) {
-            this.show2 = true;
-          } else {
-            this.show1 = true;
-          }
-        }
-      });
-    },
-
-    //获取认证信息
-    getParkProve() {
-      let reqData = {
-        userId: this.createdId,
-      };
-      getProveDetial(reqData).then((res) => {
-        console.log("详情——:", res);
-        if (res.data) {
-          this.proveType = "2";
-          this.getItemJson(res.data);
-        } else {
-          this.proveType = "1";
-        }
-      });
-    },
-
-    getItemJson(item) {
-      item.industryName = this.dc_map.industry[item.industry];
-      item.enterpriseTypeName = this.dc_map.enterpriseType[item.enterpriseType];
-      item.isHeadName = this.dc_map.yesOrNo[item.isHead];
-      item.isImoutName = this.dc_map.yesOrNo[item.isImout];
-      item.isForeignName = this.dc_map.yesOrNo[item.isForeign];
-      item.registrationCodeName = this.dc_map.yesOrNo[item.registrationCode];
-      this.reqFrom = item;
-    },
-  },
-};
+	mixins: [Base],
+	data() {
+		return {
+			myFileList: [],
+			// 登陆人Id
+			currUser: {},
+			createdId: '5',
+			proveType: '1',
+			componentsFileUrlList: [],
+			groupId: '870261874875170816',
+			// buttonDisabled: false,
+			fileUrlList: [],
+			reqFrom: {},
+			dc_key: ['yesOrNo', 'industry', 'enterpriseType'],
+			dickData: {},
+			showPicker_enterpriseType: false,
+			showPicker_isHead: false,
+			showPicker_isForeign: false,
+			showPicker_isImout: false,
+			showPicker_industry: false,
+			showPicker_registrationCode: false,
+			showPicker_registerTime: false,
+			// show1: false,
+			show2: false,
+			uploader: [],
+			rzzt: '',
+			shzt: ''
+		}
+	},
+
+	mounted() {
+		this.currUser = auth.currUser()
+		this.createdId = this.currUser.id
+
+		this.initDict(this.dc_key).then((res) => {
+			this.initDickData()
+			this.getParkProve()
+		})
+	},
+
+	methods: {
+		beforeDelete(file, detail) {
+			// this.handleImagUrlList = []
+			console.log(file, detail)
+			const vm = this
+			// name.index代表图片的索引
+			vm.myFileList.splice(detail.index, 1)
+			return (file, name) => {
+				const fileIndex = name.index
+				vm.myFileList[detail.index].splice(fileIndex, 1)
+			}
+		},
+		onConfirm(value, type) {
+			this.reqFrom[type + 'Name'] = value.text
+			this.reqFrom[type] = value.value
+			this['showPicker_' + type] = false
+		},
+		onDateConfirm(value, type) {
+			this.reqFrom[type] = this.dateFormat('YYYY-mm-dd', value)
+			this['showPicker_' + type] = false
+		},
+		// 处理字典数据
+		initDickData() {
+			this.dc_key.forEach((element) => {
+				const itemData = []
+				this.dc_data[element].forEach((item) => {
+					item.text = item.label
+					itemData.push(item)
+				})
+				this.dickData[element] = itemData
+			})
+		},
+		dateFormat(fmt, date) {
+			let ret
+			const opt = {
+				'Y+': date.getFullYear().toString(), // 年
+				'm+': (date.getMonth() + 1).toString(), // 月
+				'd+': date.getDate().toString(), // 日
+				'H+': date.getHours().toString(), // 时
+				'M+': date.getMinutes().toString(), // 分
+				'S+': date.getSeconds().toString() // 秒
+			}
+			for (const k in opt) {
+				ret = new RegExp('(' + k + ')').exec(fmt)
+				if (ret) {
+					fmt = fmt.replace(
+					 ret[1],
+					 ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+					)
+				}
+			}
+			return fmt
+		},
+		async afterRead(file) {
+			const myFileList = []
+			const data = await this.$common.uploadImg(file)
+			for (let i = 0; i < data.length; i++) {
+				myFileList.push(data[i])
+			}
+			console.log(myFileList)
+			this.myFileList = myFileList
+			this.$forceUpdate()
+		},
+
+		// 上传文件
+		uploadImg(file) {
+			const _this = this
+			const formParam = new FormData() // 创建form对象
+			formParam.append('file', file.file) // 通过append向form对象添加数据
+			console.log(formParam.get('file')) // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+			const config = {
+				headers: {
+					'Content-Type': 'multipart/form-data',
+					'MVVM-Key': String(new Date().getTime()),
+					xx: 'anything'
+				} // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+			} // 添加请求头
+			return new Promise((resolve, reject) => {
+				axios
+				 .post(
+					'/smartParkH5Server/wx/fileController/upload',
+					formParam,
+					config
+				 )
+				 .then((response) => {
+					 console.log(response)
+					 let files = response.data.data[0].substring(
+						1,
+						response.data.data.length
+					 )
+					 files = files.substring(0, files.length - 1)
+					 const fileItem = _this.$common.castEval(files)
+					 fileItem.isImage = true
+					 // console.log("图片长度——:", _this.uploader.length)
+					 _this.uploader[_this.uploader.length - 1] = fileItem
+					 console.log('图片上传——:', _this.uploader)
+					 // _this.uploader.push(fileItem)
+					 // console.log("图片上传——:", _this.fileUrlList)
+					 // console.log("图片上传2——:",JSON.stringify(_this.fileUrlList));
+				 })
+				 .catch((err, x) => {
+					 reject(err, x)
+				 })
+			})
+		},
+
+		// 提交
+		submit(state) {
+			// if(this.buttonDisabled){
+			//   Toast("请先等待管理人员审核!");
+			//   return false;
+			// }
+			this.reqFrom.state = state
+			this.reqFrom.createdId = this.createdId
+			this.reqFrom.proveType = this.proveType
+			this.reqFrom.groupId = this.groupId
+			this.reqFrom.businessLicense = this.myFileList.join(',')
+			reserve(this.reqFrom).then((res) => {
+				if (res.key == 200) {
+					this.getParkProve()
+					if (state == 1) {
+						// this.show1 = true;
+						Toast('保存成功!')
+					} else {
+						this.show2 = true
+					}
+				}
+			})
+		},
+
+		// 获取认证信息
+		getParkProve() {
+			const reqData = {
+				userId: this.createdId
+			}
+			getProveDetial(reqData).then((res) => {
+				if (res.data) {
+					this.getItemJson(res.data)
+					// if(null == this.reqFrom.state || 0 == this.reqFrom.state || undefined == this.reqFrom.state){
+					//     this.buttonDisabled = true;
+					// }else{
+					//     this.buttonDisabled = false;
+					// }
+					this.rzzt = this.reqFrom.stateDesc
+					this.shzt = this.reqFrom.resultDesc
+					if (this.reqFrom.state == '1') this.shzt = ''
+					if (this.reqFrom.state == '3') {
+						if (this.reqFrom.isSava == '1') this.proveType = '2'
+					}
+				} else {
+					this.rzzt = ''
+					this.shzt = ''
+					// this.proveType = "1";
+				}
+			})
+		},
+
+		getItemJson(item) {
+			item.industryName = this.dc_map.industry[item.industry]
+			item.enterpriseTypeName = this.dc_map.enterpriseType[item.enterpriseType]
+			item.isHeadName = this.dc_map.yesOrNo[item.isHead]
+			item.isImoutName = this.dc_map.yesOrNo[item.isImout]
+			item.isForeignName = this.dc_map.yesOrNo[item.isForeign]
+			item.registrationCodeName = this.dc_map.yesOrNo[item.registrationCode]
+			this.reqFrom = item
+			this.componentsFileUrlList = item.businessLicense.split(',').map((e) => {
+				return {
+					url: process.env.VUE_APP_API_URL + '/FileController/download/' + e,
+					isImage: true
+				}
+			})
+			console.log(this.componentsFileUrlListe)
+		}
+	}
+}
 </script>
 
-<style lang="scss" type="text/scss" scoped>
+<style lang="scss" scoped type="text/scss">
 .settleIn {
-  padding: 0 0 140px;
-  overflow-y: auto;
-  .form-part {
-    padding: 10px 0;
-  }
+	padding: 0 0 140px;
+	overflow-y: auto;
+
+	.form-part {
+		padding: 10px 0;
+	}
+
+	.top-status {
+		padding: 30px;
+		background: #fff;
+		@include flex;
+
+		.left,
+		.right {
+			@include flex;
+
+			.title {
+				font-size: 28px;
+				color: #333;
+			}
+
+			.normal-tip {
+				font-size: 26px;
+				line-height: 50px;
+				padding: 0 20px;
+			}
+		}
+	}
 }
 </style>

+ 754 - 0
src/pages/talentService/iAmATalent.vue

@@ -0,0 +1,754 @@
+<template>
+	<div class="iAmATalent">
+		<div class="form-part">
+			<van-form>
+				<van-field
+				 class="input-item"
+				 label="*真实姓名"
+				 v-model="reqFrom.realName"
+				 placeholder="请填写"
+				 input-align="right"
+				/>
+				<van-field
+				 class="input-item"
+				 label="*联系手机"
+				 v-model="reqFrom.phone"
+				 placeholder="默认用户帐号,可修改"
+				 input-align="right"
+				/>
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 input-align="right"
+				 v-model="reqFrom.birthDate"
+				 name="datetimePicker"
+				 label="出生年月"
+				 placeholder="请选择"
+				 @click="showPicker_birthDate = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_birthDate" position="bottom">
+					<van-datetime-picker
+					 type="date"
+					 :min-date="minDate"
+					 @confirm="(value) => onDateConfirm(value, 'birthDate')"
+					 @cancel="showPicker_birthDate = false"
+					/>
+				</van-popup>
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.gender"
+				 input-align="right"
+				 label="性别"
+				 placeholder="请选择"
+				 @click="showPicker_gender = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_gender" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="columns2"
+					 @confirm="(value) => onConfirm(value, 'gender')"
+					 @cancel="showPicker_gender = false"
+					/>
+				</van-popup>
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.education"
+				 input-align="right"
+				 label="最高学历"
+				 placeholder="请选择"
+				 @click="showPicker_education = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_education" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="dc_data.education"
+					 @confirm="(value) => onConfirm(value.text, 'education')"
+					 @cancel="showPicker_education = false"
+					/>
+				</van-popup>
+
+				<van-field
+				 class="input-item"
+				 label="毕业院校"
+				 v-model="reqFrom.graduateSchool"
+				 placeholder="请填写"
+				 input-align="right"
+				/>
+
+				<!-- <van-field
+					class="input-item"
+					readonly
+					clickable
+					v-model="reqFrom.graduateSchool"
+					input-align="right"
+					label="毕业院校"
+					placeholder="请选择"
+					@click="showPicker4 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker4" position="bottom">
+					<van-picker
+						show-toolbar
+						:columns="columns4"
+						@confirm="(value) => onConfirm(value, '4')"
+						@cancel="showPicker4 = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 input-align="right"
+				 v-model="reqFrom.workDate"
+				 name="datetimePicker"
+				 label="参加工作年月"
+				 placeholder="请选择"
+				 @click="showPicker_workDate = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_workDate" position="bottom">
+					<van-datetime-picker
+					 type="date"
+					 :min-date="minDate"
+					 @confirm="(value) => onDateConfirm(value, 'workDate')"
+					 @cancel="showPicker_workDate = false"
+					/>
+				</van-popup>
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.maritalStatus"
+				 input-align="right"
+				 label="婚姻状况"
+				 placeholder="请选择"
+				 @click="showPicker_maritalStatus = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker_maritalStatus" position="bottom">
+					<van-picker
+					 show-toolbar
+					 :columns="dc_data.marriageState"
+					 @confirm="(value) => onConfirm(value.text, 'maritalStatus')"
+					 @cancel="showPicker_maritalStatus = false"
+					/>
+				</van-popup>
+
+				<van-field
+				 rows="4"
+				 autosize
+				 label="特长"
+				 v-model="reqFrom.specialty"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写"
+				>
+				</van-field>
+
+				<van-field
+				 rows="4"
+				 autosize
+				 label="工作经历"
+				 v-model="reqFrom.workUndergo"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写就职日期、就职的企业、工作地点、职位、工作内容"
+				>
+				</van-field>
+
+				<van-field
+				 rows="4"
+				 autosize
+				 v-model="reqFrom.teachUndergo"
+				 label="教育经历"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写就读学府、就职时间、学历、在校经历"
+				>
+				</van-field>
+			</van-form>
+		</div>
+
+		<div class="white-box">
+			<div class="block-cell-item">
+				<p class="label">
+					上传个人照片<span class="tips">(支持图片上传限20M内,最多1张)</span>
+				</p>
+				<div class="tit">
+					<van-uploader v-model="photo" :after-read="afterRead" :max-count="1">
+					</van-uploader>
+				</div>
+			</div>
+		</div>
+
+		<div class="white-box">
+			<div class="block-cell-item">
+				<p class="label">
+					上传资格证书<span class="tips">(支持图片上传限20M内,最多6张)</span>
+				</p>
+				<div class="tit">
+					<van-uploader v-model="fileUrls2" :after-read="afterRead2" :max-count="6">
+					</van-uploader>
+				</div>
+			</div>
+		</div>
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">关注职位</div>
+			</div>
+
+			<div class="myinfo-list">
+        <span
+				 :class="item.status && 'active'"
+				 v-for="item in recruitPositionList"
+				 :key="item.label"
+				 @click="itemClick(item)"
+				>{{ item.label }}</span
+				>
+			</div>
+		</div>
+
+		<div class="white-box part-1">
+			<div class="custom-item-tit">
+				<p class="tit">关注企业</p>
+
+				<span class="normal-button-app z-bt" @click="$refs.pickerTips.init()"
+				>添加</span>
+			</div>
+			<PickerTips :list="bizList" :selects="reqFrom.followEnterprise?reqFrom.followEnterprise.split(','):[]" ref="pickerTips" @getSelect="getSelect" />
+		</div>
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">人才认定</div>
+			</div>
+
+			<div class="myinfo-list">
+        <span
+				 :class="item.status && 'active'"
+				 v-for="item in sureTalentList"
+				 :key="item.lable"
+				 @click="itemClick(item)"
+				>{{ item.text }}</span
+				>
+			</div>
+		</div>
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">特长标签</div>
+			</div>
+
+			<div class="myinfo-list">
+        <span
+				 :class="item.status && 'active'"
+				 v-for="item in specialtyList"
+				 :key="item.text"
+				 @click="itemClick(item)"
+				>{{ item.text }}</span
+				>
+			</div>
+		</div>
+
+		<div class="white-box part-1">
+			<div class="custom-item-tit">
+				<div class="tit">前台显示</div>
+			</div>
+
+			<div class="radio-box">
+				<van-radio-group v-model="reqFrom.isShow">
+					<van-radio checked-color="#976CEB" name="0">前台可见</van-radio>
+					<van-radio checked-color="#976CEB" name="1">前台不可见</van-radio>
+				</van-radio-group>
+			</div>
+		</div>
+
+		<div class="white-bottom">
+			<div class="two-button">
+				<div class="btn" @click="submitFrom(1)">保存</div>
+				<div class="btn" @click="submitFrom(0)">提交</div>
+			</div>
+		</div>
+	</div>
+</template>
+<script>
+// import { Toast } from 'vant'
+import axios from 'axios'
+import auth from '@/service/auth'
+import Base from "@/pages/base/base";
+import { getBizMainList } from '@/service/api_user_relation'
+import { operationPersonnel, personnelUserDetial } from '@/service/api_personnel'
+import { formatDate } from "@/plugins/dateFormat";
+import PickerTips from "@/components/picker-tips";
+import { Toast } from 'vant';
+export default {
+	mixins: [Base],
+	components: {
+		PickerTips,
+	},
+	data() {
+		return {
+			currUser: {},
+			minDate: new Date(1970, 0, 1),
+			groupId: "870345456071213056",
+			dc_key: ["marriageState","education", "recruitPosition", "sureTalent", "specialty"],
+			reqFrom: {},
+			bizList: [],
+			sureTalentList: [],
+			recruitPositionList: [],
+			specialtyList: [],
+			form: {
+				value1: "",
+				value2: "",
+				value3: "",
+				value4: "",
+				value5: "",
+				value6: "",
+				radio: "",
+			},
+			photo: [], //上传列表
+			fileUrls2: [],
+			showPicker_birthDate: false,
+			showPicker_gender: false,
+			columns2: ["男", "女"],
+			showPicker_education: false,
+			showPicker4: false,
+			showPicker_workDate: false,
+			showPicker_maritalStatus: false,
+			//    关注职位
+			list1: [
+				{
+					name: "XXXX1",
+					status: false,
+				},
+				{
+					name: "XXXX2",
+					status: false,
+				},
+				{
+					name: "XXXX3",
+					status: false,
+				},
+
+				{
+					name: "XXXX4",
+					status: false,
+				},
+				{
+					name: "XXXX5",
+					status: false,
+				},
+
+				{
+					name: "XXXX6",
+					status: false,
+				},
+				{
+					name: "XXXX7",
+					status: false,
+				},
+			],
+			// 人才认定
+			list2: [
+				{
+					name: "XXXX1",
+					status: false,
+				},
+				{
+					name: "XXXX2",
+					status: false,
+				},
+				{
+					name: "XXXX3",
+					status: false,
+				},
+
+				{
+					name: "XXXX4",
+					status: false,
+				},
+				{
+					name: "XXXX5",
+					status: false,
+				},
+
+				{
+					name: "XXXX6",
+					status: false,
+				},
+				{
+					name: "XXXX7",
+					status: false,
+				},
+			],
+			//   特长标签
+			list3: [
+				{
+					name: "XXXX1",
+					status: false,
+				},
+				{
+					name: "XXXX2",
+					status: false,
+				},
+				{
+					name: "XXXX3",
+					status: false,
+				},
+
+				{
+					name: "XXXX4",
+					status: false,
+				},
+				{
+					name: "XXXX5",
+					status: false,
+				},
+
+				{
+					name: "XXXX6",
+					status: false,
+				},
+				{
+					name: "XXXX7",
+					status: false,
+				},
+			],
+			// 关注企业
+			list4: [
+				{
+					name: "公司1",
+					value: "1",
+				},
+				{
+					name: "公司2",
+					value: "2",
+				},
+				{
+					name: "公司3",
+					value: "3",
+				},
+				{
+					name: "公司4",
+					value: "4",
+				},
+			],
+			//职位
+			selectRecruitPosition: [],
+			//人才认定
+			selectSureTalent: [],
+			//特长标签
+			selectSpecialty: []
+		};
+	},
+	mounted() {
+		this.currUser = auth.currUser();
+		console.log("登录用户——:", this.currUser)
+		this.createdId = this.currUser.id;
+		this.getBizList();
+		this.initDict(this.dc_key).then((res) => {
+			this.initDickData();
+		});
+		this.getUserDetial();
+
+		this.reqFrom.phone = this.reqFrom.phone?this.reqFrom.phone:this.currUser.phoneNo
+	},
+	methods: {
+		//获取所有企业
+		getBizList(){
+			let reqData = {
+				groupId: this.groupId
+			}
+			getBizMainList(reqData).then((res) => {
+				this.bizList = res.data;
+			});
+		},
+
+		//获取人才详情
+		getUserDetial(){
+			let reqData = {
+				userId: this.currUser.id
+			}
+			personnelUserDetial(reqData).then((res) => {
+				if(res.data){
+					this.reqFrom = res.data;
+					this.photo = JSON.parse(res.data.photo);
+					console.log("照片_:", this.photo);
+					this.fileUrls2 = JSON.parse(res.data.credentials);
+					console.log("执照_:", this.fileUrls2);
+					//关注职位
+					this.selectRecruitPosition = res.data.followPosition == null || res.data.followPosition == "" ? [] : res.data.followPosition.split(",");
+					//人才认定
+					this.selectSureTalent = res.data.personnelIdentify == null || res.data.personnelIdentify == ""?[]:res.data.personnelIdentify.split(",");
+					//特长标签
+					this.selectSpecialty = res.data.labelSpecialty == null || res.data.labelSpecialty == ""?[]:res.data.labelSpecialty.split(",");
+					this.reqFrom.isShow = String(res.data.isShow);
+				}
+			});
+		},
+
+		initDickData() {
+			this.dc_key.forEach((element) => {
+				this.dc_data[element].splice(0, 1);
+				this.dc_data[element].forEach((item) => {
+					this.$set(item, 'text', item.label);
+					//职位
+					if("recruitPosition" == element){
+						//职位
+						if([] != this.selectRecruitPosition && null != this.selectRecruitPosition && undefined != this.selectRecruitPosition){
+							if(this.selectRecruitPosition.includes(item.label)){
+								this.$set(item, 'status', true);
+							}else{
+								this.$set(item, 'status', false);
+							}
+						}
+					}else if("sureTalent" == element){
+						//人才
+						if([] != this.selectSureTalent && null != this.selectSureTalent && undefined != this.selectSureTalent){
+							if(this.selectSureTalent.includes(item.label)){
+								this.$set(item, 'status', true);
+							}else{
+								this.$set(item, 'status', false);
+							}
+						}
+					}else if("specialty" == element){
+						//特长
+						if([] != this.selectSpecialty && null != this.selectSpecialty && undefined != this.selectSpecialty){
+							if(this.selectSpecialty.includes(item.label)){
+								this.$set(item, 'status', true);
+							}else{
+								this.$set(item, 'status', false);
+							}
+						}
+					}
+				});
+			});
+			this.sureTalentList = this.dc_data.sureTalent;
+			this.recruitPositionList = this.dc_data.recruitPosition;
+			this.specialtyList = this.dc_data.specialty;
+		},
+
+		submitFrom(submitType){
+			if(!this.reqFrom.realName){
+				Toast("请填写真实姓名");
+				return false;
+			}
+			if(!this.reqFrom.phone){
+				Toast("请填写联系手机号");
+				return false;
+			}
+
+			this.reqFrom.groupId = this.groupId;
+			this.reqFrom.createdId = this.currUser.id;
+			this.reqFrom.state = submitType;
+			// this.reqFrom.state = submitType;
+			this.reqFrom.photo = JSON.stringify(this.photo);
+			this.reqFrom.credentials = JSON.stringify(this.fileUrls2);
+			//关注职位
+			let zws = "";
+			this.recruitPositionList.forEach(element => {
+				if(element.status){
+					zws += element.text+","
+				}
+			});
+			this.reqFrom.followPosition = zws.length > 1 ? zws.substring(0, zws.length - 1):"";
+			//人才认定
+			let rcs = "";
+			this.sureTalentList.forEach(element => {
+				if(element.status){
+					rcs += element.text+","
+				}
+			});
+			this.reqFrom.personnelIdentify = rcs.length > 1 ? rcs.substring(0, rcs.length - 1):"";
+			//特长标签
+			let tcs = "";
+			this.specialtyList.forEach(element => {
+				if(element.status){
+					tcs += element.text+","
+				}
+			});
+			this.reqFrom.labelSpecialty = tcs.length > 1 ? tcs.substring(0, tcs.length - 1):"";
+			operationPersonnel(this.reqFrom).then((res) => {
+				console.log("提交返回_;", res)
+				if (res.key == 200) {
+					this.$router.push("/talentService");
+					if(0 == submitType){
+						Toast("提交成功");
+					}else{
+						Toast("保存成功");
+					}
+				}
+			});
+		},
+
+		itemClick(item){
+			this.$set(item, 'status', !item.status);
+		},
+
+		//图片上传
+		afterRead(file) {
+			this.uploadImg(file);
+		},
+
+		//上传文件
+		uploadImg(file) {
+			const _this = this
+			const formParam = new FormData() // 创建form对象
+			formParam.append('file', file.file)// 通过append向form对象添加数据
+			console.log(formParam.get('file')) // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+			const config = {
+				headers: {
+					'Content-Type': 'multipart/form-data',
+					'MVVM-Key': String(new Date().getTime()),
+					'xx': 'anything'
+				} // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+			} // 添加请求头
+			return new Promise((resolve, reject) => {
+				axios.post('/smartParkH5Server/wx/fileController/upload', formParam, config)
+				 .then(response => {
+					 let files = response.data.data.substring(1, response.data.data.length)
+					 files = files.substring(0, files.length - 1)
+					 let fileItem = _this.$common.castEval(files);
+					 fileItem.isImage = true;
+					 _this.photo = [];
+					 _this.photo.push(fileItem)
+				 }).catch((err, x) => {
+					reject(err, x)
+				})
+			})
+		},
+
+		afterRead2(file) {
+			this.uploadImg2(file);
+		},
+
+		//上传文件
+		uploadImg2(file) {
+			const _this = this
+			const formParam = new FormData() // 创建form对象
+			formParam.append('file', file.file)// 通过append向form对象添加数据
+			console.log(formParam.get('file')) // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+			const config = {
+				headers: {
+					'Content-Type': 'multipart/form-data',
+					'MVVM-Key': String(new Date().getTime()),
+					'xx': 'anything'
+				} // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+			} // 添加请求头
+			return new Promise((resolve, reject) => {
+				axios.post('/smartParkH5Server/wx/fileController/upload', formParam, config)
+				 .then(response => {
+					 let files = response.data.data.substring(1, response.data.data.length)
+					 files = files.substring(0, files.length - 1)
+					 let fileItem = _this.$common.castEval(files);
+					 fileItem.isImage = true;
+					 _this.fileUrls2[_this.fileUrls2.length - 1] = fileItem;
+				 }).catch((err, x) => {
+					reject(err, x)
+				})
+			})
+		},
+
+		onConfirm(value, type) {
+			this.reqFrom[type] = value;
+			this["showPicker_" + type] = false;
+		},
+
+		onDateConfirm(value, type) {
+			this.reqFrom[type] = formatDate(value, "day");
+			this["showPicker_" + type] = false;
+		},
+
+		getSelect(val) {
+			let ids = "";
+			val.forEach(element => {
+				ids += element.id+","
+			});
+			this.reqFrom.followEnterprise = ids.substring(0, ids.length-1);
+		},
+	},
+};
+</script>
+<style lang="scss" type="text/scss" scoped>
+.iAmATalent {
+	padding: 0 0 140px 0;
+	.form-part {
+		margin-bottom: 20px;
+	}
+	.info-card {
+		margin-bottom: 20px;
+		padding: 0 30px;
+		.myinfo-list {
+			@include flex;
+			flex-wrap: wrap;
+			justify-content: flex-start;
+			span {
+				width: 160px;
+				line-height: 70px;
+				background: $color5;
+				border-radius: 35px;
+				font-size: 28px;
+				color: $color4;
+				text-align: center;
+				margin-right: 12px;
+				margin-bottom: 20px;
+				&:nth-child(4n) {
+					margin-right: 0;
+				}
+			}
+
+			.active {
+				color: #874cfe;
+			}
+		}
+	}
+
+	.radio-box {
+		.van-radio-group {
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
+			.van-radio {
+				width: 50%;
+				margin-bottom: 20px;
+			}
+		}
+	}
+
+	.part-1 {
+		padding: 0 30px 30px;
+	}
+}
+</style>

+ 660 - 0
src/pages/talentService/iAmATalentShow.vue

@@ -0,0 +1,660 @@
+<template>
+	<div class="iAmATalent">
+		<div class="form-part">
+			<van-form>
+				<van-field
+				 class="input-item"
+				 label="真实姓名"
+				 readonly
+				 v-model="reqFrom.realName"
+				 placeholder="请填写"
+				 input-align="right"
+				/>
+				<van-field
+				 class="input-item"
+				 label="联系手机"
+				 readonly
+				 v-model="reqFrom.phone"
+				 placeholder="默认用户帐号,可修改"
+				 input-align="right"
+				/>
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 input-align="right"
+				 v-model="reqFrom.birthDate"
+				 name="datetimePicker"
+				 label="出生年月"
+				 placeholder="请选择"
+				>
+					<!-- @click="showPicker_birthDate = true" -->
+					<!-- <template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template> -->
+				</van-field>
+				<!-- <van-popup v-model="showPicker_birthDate" position="bottom">
+					<van-datetime-picker
+						type="date"
+						@confirm="(value) => onDateConfirm(value, 'birthDate')"
+						@cancel="showPicker_birthDate = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.gender"
+				 input-align="right"
+				 label="性别"
+				 placeholder="请选择"
+
+				>
+					<!-- @click="showPicker_gender = true" -->
+					<!-- <template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template> -->
+				</van-field>
+				<!-- <van-popup v-model="showPicker_gender" position="bottom">
+					<van-picker
+						show-toolbar
+						:columns="columns2"
+						@confirm="(value) => onConfirm(value, 'gender')"
+						@cancel="showPicker_gender = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.education"
+				 input-align="right"
+				 label="最高学历"
+				 placeholder="请选择"
+				>
+					<!-- @click="showPicker_education = true"
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template> -->
+				</van-field>
+				<!-- <van-popup v-model="showPicker_education" position="bottom">
+					<van-picker
+						show-toolbar
+						:columns="dc_data.education"
+						@confirm="(value) => onConfirm(value.text, 'education')"
+						@cancel="showPicker_education = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 label="毕业院校"
+				 v-model="reqFrom.graduateSchool"
+				 readonly
+				 placeholder="请填写"
+				 input-align="right"
+				/>
+
+				<!-- <van-field
+					class="input-item"
+					readonly
+					clickable
+					v-model="reqFrom.graduateSchool"
+					input-align="right"
+					label="毕业院校"
+					placeholder="请选择"
+					@click="showPicker4 = true"
+				>
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template>
+				</van-field>
+				<van-popup v-model="showPicker4" position="bottom">
+					<van-picker
+						show-toolbar
+						:columns="columns4"
+						@confirm="(value) => onConfirm(value, '4')"
+						@cancel="showPicker4 = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 input-align="right"
+				 v-model="reqFrom.workDate"
+				 name="datetimePicker"
+				 label="参加工作年月"
+				 placeholder="请选择"
+				>
+					<!-- @click="showPicker_workDate = true"
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template> -->
+				</van-field>
+				<!-- <van-popup v-model="showPicker_workDate" position="bottom">
+					<van-datetime-picker
+						type="date"
+						@confirm="(value) => onDateConfirm(value, 'workDate')"
+						@cancel="showPicker_workDate = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 class="input-item"
+				 readonly
+				 clickable
+				 v-model="reqFrom.maritalStatus"
+				 input-align="right"
+				 label="婚姻状况"
+				 placeholder="请选择"
+				>
+					<!-- @click="showPicker_maritalStatus = true"
+					<template #button>
+						<i class="iconfont icon-zuo"></i>
+					</template> -->
+				</van-field>
+				<!-- <van-popup v-model="showPicker_maritalStatus" position="bottom">
+					<van-picker
+						show-toolbar
+						:columns="dc_data.marriageState"
+						@confirm="(value) => onConfirm(value.text, 'maritalStatus')"
+						@cancel="showPicker_maritalStatus = false"
+					/>
+				</van-popup> -->
+
+				<van-field
+				 rows="4"
+				 autosize
+				 label="特长"
+				 readonly
+				 v-model="reqFrom.specialty"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写"
+				>
+				</van-field>
+
+				<van-field
+				 rows="4"
+				 autosize
+				 readonly
+				 label="工作经历"
+				 v-model="reqFrom.workUndergo"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写就职日期、就职的企业、工作地点、职位、工作内容"
+				>
+				</van-field>
+
+				<van-field
+				 rows="4"
+				 autosize
+				 readonly
+				 v-model="reqFrom.teachUndergo"
+				 label="教育经历"
+				 class="textarea-item input-item-warp"
+				 type="textarea"
+				 placeholder="请填写就读学府、就职时间、学历、在校经历"
+				>
+				</van-field>
+			</van-form>
+		</div>
+
+		<div class="white-box">
+			<div class="block-cell-item">
+				<p class="label">
+					个人照片<span class="tips"></span>
+				</p>
+				<div class="tit">
+					<van-uploader v-model="photo" :deletable="deletable" disabled :after-read="afterRead" :max-count="1">
+					</van-uploader>
+				</div>
+			</div>
+		</div>
+
+		<div class="white-box">
+			<div class="block-cell-item">
+				<p class="label">
+					资格证书<span class="tips"></span>
+				</p>
+				<div class="tit">
+					<van-uploader v-model="fileUrls2" :deletable="deletable" :disabled="true" :after-read="afterRead2" :max-count="6">
+					</van-uploader>
+				</div>
+			</div>
+		</div>
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">关注职位</div>
+			</div>
+
+			<div class="myinfo-list">
+				<!-- @click="itemClick(item)" -->
+				<span
+				 :class="item.status && 'active'"
+				 v-for="item in recruitPositionList"
+				 :key="item.label"
+				>{{ item.label }}</span
+				>
+			</div>
+		</div>
+
+		<!-- <div class="white-box part-1">
+			<div class="custom-item-tit">
+				<p class="tit">关注企业</p>
+
+				!-- <span class="normal-button-app z-bt" @click="$refs.pickerTips.init()"
+					>添加</span
+				> --
+			</div>
+			<PickerTips :list="bizList" :selects="followEnterpriseWhow" ref="pickerTips" @getSelect="getSelect" />
+		</div> -->
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">人才认定</div>
+			</div>
+
+			<div class="myinfo-list">
+				<!-- @click="itemClick(item)" -->
+				<span
+				 :class="item.status && 'active'"
+				 v-for="item in sureTalentList"
+				 :key="item.lable"
+				>{{ item.text }}</span
+				>
+			</div>
+		</div>
+
+		<div class="detail-card info-card">
+			<div class="custom-item-tit">
+				<div class="tit">特长标签</div>
+			</div>
+
+			<div class="myinfo-list">
+				<!-- @click="itemClick(item)" -->
+				<span
+				 :class="item.status && 'active'"
+				 v-for="item in specialtyList"
+				 :key="item.text"
+				>{{ item.text }}</span
+				>
+			</div>
+		</div>
+
+		<!-- <div class="white-box part-1">
+			<div class="custom-item-tit">
+				<div class="tit">前台显示</div>
+			</div>
+
+			<div class="radio-box">
+				<van-radio-group v-model="reqFrom.isShow" disabled>
+					<van-radio checked-color="#976CEB" name="0">前台可见</van-radio>
+					<van-radio checked-color="#976CEB" name="1">前台不可见</van-radio>
+				</van-radio-group>
+			</div>
+		</div> -->
+
+		<!-- <div class="white-bottom">
+			<div class="two-button">
+				<div class="btn" @click="submitFrom(1)">保存</div>
+				<div class="btn" @click="submitFrom(0)">提交</div>
+			</div>
+		</div> -->
+	</div>
+</template>
+<script>
+// import { Toast } from 'vant'
+import axios from 'axios'
+import auth from '@/service/auth'
+import Base from '@/pages/base/base'
+import { getBizMainList } from '@/service/api_user_relation'
+import { operationPersonnel, personnelDetial } from '@/service/api_personnel'
+import { formatDate } from '@/plugins/dateFormat'
+import PickerTips from '@/components/picker-tips'
+export default {
+	mixins: [Base],
+	components: {
+		PickerTips
+	},
+	data() {
+		return {
+			currUser: {},
+			followEnterpriseWhow: [],
+			personnelId: '',
+			groupId: '870345456071213056',
+			dc_key: ['marriageState', 'education', 'recruitPosition', 'sureTalent', 'specialty'],
+			reqFrom: {},
+			bizList: [],
+			sureTalentList: [],
+			recruitPositionList: [],
+			specialtyList: [],
+			deletable:false,
+			form: {
+				value1: '',
+				value2: '',
+				value3: '',
+				value4: '',
+				value5: '',
+				value6: '',
+				radio: ''
+			},
+			photo: [], // 上传列表
+			fileUrls2: [],
+			// showPicker_birthDate: false,
+			// showPicker_gender: false,
+			// columns2: ["男", "女"],
+			// showPicker_education: false,
+			// showPicker4: false,
+			// showPicker_workDate: false,
+			// showPicker_maritalStatus: false,
+			//    关注职位
+			list1: [],
+			// 人才认定
+			list2: [],
+			//   特长标签
+			list3: [],
+			// 关注企业
+			list4: [],
+			// 职位
+			selectRecruitPosition: [],
+			// 人才认定
+			selectSureTalent: [],
+			// 特长标签
+			selectSpecialty: []
+		}
+	},
+	mounted() {
+		this.getBizList()
+		this.currUser = auth.currUser()
+		this.createdId = this.currUser.id
+
+		this.personnelId = this.$route.params.id
+
+		this.initDict(this.dc_key).then((res) => {
+			this.personnelDetial()
+			// this.initDickData();
+		})
+
+		// this.personnelDetial();
+	},
+	methods: {
+		// 获取所有企业
+		getBizList() {
+			const reqData = {
+				groupId: this.groupId
+			}
+			getBizMainList(reqData).then((res) => {
+				this.bizList = res.data
+			})
+		},
+
+		strTolist(str) {
+			let strList = []
+			if (str == null || str == '') {
+				return strList
+			} else {
+				strList = str.split(',')
+				return strList
+			}
+		},
+
+		// 获取人才详情
+		personnelDetial() {
+			const reqData = {
+				id: this.personnelId
+			}
+			personnelDetial(reqData).then((res) => {
+				if (res.data) {
+					this.reqFrom = res.data
+					this.photo = JSON.parse(res.data.photo)
+					this.fileUrls2 = JSON.parse(res.data.credentials)
+					// 关注职位
+					const selectRecruitPositionTest = this.strTolist(res.data.followPosition)
+					this.$set(this, 'selectRecruitPosition', selectRecruitPositionTest)
+					// this.selectRecruitPosition = res.data.followPosition == null || res.data.followPosition == "" ? [] : res.data.followPosition.split(",");
+					// 人才认定
+					const selectSureTalentTest = this.strTolist(res.data.personnelIdentify)
+					this.$set(this, 'selectSureTalent', selectSureTalentTest)
+					// this.selectSureTalent = res.data.personnelIdentify == null || res.data.personnelIdentify == ""?[]:res.data.personnelIdentify.split(",");
+					// 特长标签
+					const selectSpecialtyTest = this.strTolist(res.data.labelSpecialty)
+					this.$set(this, 'selectSpecialty', selectSpecialtyTest)
+					// this.selectSpecialty = res.data.labelSpecialty == null || res.data.labelSpecialty == ""?[]:res.data.labelSpecialty.split(",");
+
+					this.reqFrom.isShow = String(res.data.isShow)
+					// 真实姓名
+					const realName = res.data.realName.slice(0, 1) + (res.data.gender == '女' ? '女士' : '先生')
+					this.reqFrom.realName = realName
+
+					// 关注企业
+					this.followEnterpriseWhow = this.reqFrom.followEnterprise ? this.reqFrom.followEnterprise.split(',') : []
+					// this.$refs.pickerTips.dataInit(this.followEnterpriseWhow);
+
+					this.initDickData()
+				}
+			})
+		},
+
+		initDickData() {
+			this.dc_key.forEach((element) => {
+				this.dc_data[element].splice(0, 1)
+				this.dc_data[element].forEach((item) => {
+					this.$set(item, 'text', item.label)
+					// 职位
+					if (element == 'recruitPosition') {
+						// 职位
+						if ([] != this.selectRecruitPosition && this.selectRecruitPosition != null && undefined != this.selectRecruitPosition) {
+							if (this.selectRecruitPosition.includes(item.label)) {
+								this.$set(item, 'status', true)
+							} else {
+								this.$set(item, 'status', false)
+							}
+						}
+					} else if (element == 'sureTalent') {
+						// 人才
+						if ([] != this.selectSureTalent && this.selectSureTalent != null && undefined != this.selectSureTalent) {
+							if (this.selectSureTalent.includes(item.label)) {
+								this.$set(item, 'status', true)
+							} else {
+								this.$set(item, 'status', false)
+							}
+						}
+					} else if (element == 'specialty') {
+						// 特长
+						if ([] != this.selectSpecialty && this.selectSpecialty != null && undefined != this.selectSpecialty) {
+							if (this.selectSpecialty.includes(item.label)) {
+								this.$set(item, 'status', true)
+							} else {
+								this.$set(item, 'status', false)
+							}
+						}
+					}
+				})
+			})
+			this.sureTalentList = this.dc_data.sureTalent
+			this.recruitPositionList = this.dc_data.recruitPosition
+			this.specialtyList = this.dc_data.specialty
+		},
+
+		submitFrom(submitType) {
+			this.reqFrom.groupId = this.groupId
+			this.reqFrom.createdId = this.currUser.id
+			this.reqFrom.state = submitType
+			// this.reqFrom.state = submitType;
+			this.reqFrom.photo = JSON.stringify(this.photo)
+			this.reqFrom.credentials = JSON.stringify(this.fileUrls2)
+			// 关注职位
+			let zws = ''
+			this.recruitPositionList.forEach(element => {
+				if (element.status) {
+					zws += element.text + ','
+				}
+			})
+			this.reqFrom.followPosition = zws.length > 1 ? zws.substring(0, zws.length - 1) : ''
+			// 人才认定
+			let rcs = ''
+			this.sureTalentList.forEach(element => {
+				if (element.status) {
+					rcs += element.text + ','
+				}
+			})
+			this.reqFrom.personnelIdentify = rcs.length > 1 ? rcs.substring(0, rcs.length - 1) : ''
+			// 特长标签
+			let tcs = ''
+			this.specialtyList.forEach(element => {
+				if (element.status) {
+					tcs += element.text + ','
+				}
+			})
+			this.reqFrom.labelSpecialty = tcs.length > 1 ? tcs.substring(0, tcs.length - 1) : ''
+			operationPersonnel(this.reqFrom).then((res) => {
+				console.log('提交返回_;', res)
+			})
+		},
+
+		itemClick(item) {
+			this.$set(item, 'status', !item.status)
+		},
+
+		// 图片上传
+		afterRead(file) {
+			this.uploadImg(file)
+		},
+
+		// 上传文件
+		uploadImg(file) {
+			const _this = this
+			const formParam = new FormData() // 创建form对象
+			formParam.append('file', file.file)// 通过append向form对象添加数据
+			console.log(formParam.get('file')) // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+			const config = {
+				headers: {
+					'Content-Type': 'multipart/form-data',
+					'MVVM-Key': String(new Date().getTime()),
+					'xx': 'anything'
+				} // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+			} // 添加请求头
+			return new Promise((resolve, reject) => {
+				axios.post('/smartParkH5Server/wx/fileController/upload', formParam, config)
+				 .then(response => {
+					 let files = response.data.data.substring(1, response.data.data.length)
+					 files = files.substring(0, files.length - 1)
+					 const fileItem = _this.$common.castEval(files)
+					 fileItem.isImage = true
+					 _this.photo = []
+					 _this.photo.push(fileItem)
+				 }).catch((err, x) => {
+					reject(err, x)
+				})
+			})
+		},
+
+		afterRead2(file) {
+			this.uploadImg2(file)
+		},
+
+		// 上传文件
+		uploadImg2(file) {
+			const _this = this
+			const formParam = new FormData() // 创建form对象
+			formParam.append('file', file.file)// 通过append向form对象添加数据
+			console.log(formParam.get('file')) // FormData私有类对象,访问不到,可以通过get判断值是否传进去
+			const config = {
+				headers: {
+					'Content-Type': 'multipart/form-data',
+					'MVVM-Key': String(new Date().getTime()),
+					'xx': 'anything'
+				} // 这里是重点,需要和后台沟通好请求头,Content-Type不一定是这个值
+			} // 添加请求头
+			return new Promise((resolve, reject) => {
+				axios.post('/smartParkH5Server/wx/fileController/upload', formParam, config)
+				 .then(response => {
+					 let files = response.data.data.substring(1, response.data.data.length)
+					 files = files.substring(0, files.length - 1)
+					 const fileItem = _this.$common.castEval(files)
+					 fileItem.isImage = true
+					 _this.fileUrls2[_this.fileUrls2.length - 1] = fileItem
+				 }).catch((err, x) => {
+					reject(err, x)
+				})
+			})
+		},
+
+		onConfirm(value, type) {
+			this.reqFrom[type] = value
+			this['showPicker_' + type] = false
+		},
+
+		onDateConfirm(value, type) {
+			this.reqFrom[type] = formatDate(value, 'day')
+			this['showPicker_' + type] = false
+		},
+
+		getSelect(val) {
+			let ids = ''
+			val.forEach(element => {
+				ids += element.id + ','
+			})
+			this.reqFrom.followEnterprise = ids.substring(0, ids.length - 1)
+		}
+	}
+}
+</script>
+<style lang="scss" type="text/scss" scoped>
+.iAmATalent {
+	padding: 0 0 140px 0;
+	.form-part {
+		margin-bottom: 20px;
+	}
+	.info-card {
+		margin-bottom: 20px;
+		padding: 0 30px;
+		.myinfo-list {
+			@include flex;
+			flex-wrap: wrap;
+			justify-content: flex-start;
+			span {
+				width: 160px;
+				line-height: 70px;
+				background: $color5;
+				border-radius: 35px;
+				font-size: 28px;
+				color: $color4;
+				text-align: center;
+				margin-right: 12px;
+				margin-bottom: 20px;
+				&:nth-child(4n) {
+					margin-right: 0;
+				}
+			}
+
+			.active {
+				color: #874cfe;
+			}
+		}
+	}
+
+	.radio-box {
+		.van-radio-group {
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
+			.van-radio {
+				width: 50%;
+				margin-bottom: 20px;
+			}
+		}
+	}
+
+	.part-1 {
+		padding: 0 30px 30px;
+	}
+}
+</style>

+ 426 - 243
src/pages/talentService/iWantToRcruit.vue

@@ -1,266 +1,449 @@
 <template>
-  <div class="settleIn">
-    <van-tabs
-      v-model="active"
-      title-active-color="#6600FF"
-      color="#6600FF"
-      title-inactive-color="#666666"
-      line-width="120px"
-    >
-      <van-tab title="新增招募">
-        <div class="tabs-box">
-          <div class="form-part">
-            <van-form>
-              <van-field
-                class="input-item"
-                label="需求企业"
-                input-align="right"
-              />
+	<div class="settleIn">
+		<van-tabs
+		 v-model="active"
+		 title-active-color="#6600FF"
+		 color="#6600FF"
+		 @click="getMylist"
+		 title-inactive-color="#666666"
+		 line-width="120px"
+		>
+			<van-tab title="新增招募">
+				<div class="tabs-box">
+					<div class="form-part">
+						<van-form @submit="recruitSubmit">
+							<van-field
+							 class="input-item"
+							 label="需求企业"
+							 readonly
+							 v-model="recruitFrom.enterpriseName"
+							 input-align="right"
+							/>
 
-              <van-field
-                class="input-item picker-item"
-                readonly
-                clickable
-                v-model="value1"
-                input-align="right"
-                label="招聘职位"
-                @click="showPicker1 = true"
-              >
-                <template #button>
-                  <i class="iconfont icon-zuo"></i>
-                </template>
-              </van-field>
-              <van-popup v-model="showPicker1" position="bottom">
-                <van-picker
-                  show-toolbar
-                  :columns="columns1"
-                  @confirm="(value) => onConfirm(value, '1')"
-                  @cancel="showPicker1 = false"
-                />
-              </van-popup>
+							<van-field
+							 class="input-item picker-item"
+							 readonly
+							 clickable
+							 v-model="recruitFrom.position"
+							 input-align="right"
+							 label="招聘职位"
+							 @click="showPicker1 = true"
+							>
+								<template #button>
+									<i class="iconfont icon-zuo"></i>
+								</template>
+							</van-field>
+							<van-popup v-model="showPicker1" position="bottom">
+								<van-picker
+								 show-toolbar
+								 :columns="dickData.recruitPosition"
+								 @confirm="(value) => onConfirm(value, '1')"
+								 @cancel="showPicker1 = false"
+								/>
+							</van-popup>
 
-              <van-field
-                class="input-item"
-                label="薪水待遇(元/月)"
-                input-align="right"
-                placeholder="可填面议,可填数字区间"
-              /><van-field
-                class="input-item"
-                label="招聘人数"
-                input-align="right"
-                placeholder="请填写"
-              />
+							<van-field
+							 class="input-item"
+							 label="薪水待遇(元/月)"
+							 v-model="recruitFrom.salary"
+							 input-align="right"
+							 placeholder="可填面议,可填数字区间"
+							/>
 
-              <van-field
-                class="input-item-warp input-item"
-                label="工作经验要求"
-                type="textarea"
-                placeholder="请填写"
-              />
-              <van-field
-                class="input-item-warp input-item"
-                type="textarea"
-                label="*招聘要求"
-                placeholder="请填写"
-              />
+							<van-field
+							 class="input-item"
+							 label="招聘人数"
+							 v-model="recruitFrom.peopleNumber"
+							 input-align="right"
+							 placeholder="请填写"
+							/>
 
-              <van-field
-                class="input-item"
-                label="*联系人"
-                input-align="right"
-                placeholder="请填写"
-              />
-              <van-field
-                class="input-item"
-                label="*联系电话"
-                input-align="right"
-                placeholder="请填写手机号或座号(带区号)"
-              />
+							<van-field
+							 class="input-item-warp input-item"
+							 label="工作经验要求"
+							 v-model="recruitFrom.workRequire"
+							 type="textarea"
+							 placeholder="请填写"
+							/>
 
-              <van-field
-                class="input-item"
-                readonly
-                clickable
-                input-align="right"
-                name="datetimePicker"
-                v-model="value2"
-                label="*有效日期"
-                placeholder="请选择"
-                @click="showPicker2 = true"
-              />
-              <van-popup v-model="showPicker2" position="bottom">
-                <van-datetime-picker
-                  type="date"
-                  @confirm="(value) => onConfirm(value, '2')"
-                  @cancel="showPicker2 = false"
-                />
-              </van-popup>
-            </van-form>
-          </div>
+							<van-field
+							 class="input-item-warp input-item"
+							 type="textarea"
+							 v-model="recruitFrom.recruitRecruit"
+							 label="*招聘要求"
+							 placeholder="请填写"
+							/>
 
-          <div class="white-bottom">
-            <div class="two-button">
-              <div class="btn">保存</div>
-              <div class="btn">提交</div>
-            </div>
-          </div>
-        </div>
-      </van-tab>
-      <van-tab title="我的招募">
-        <div class="tabs-box">
-          <div class="part-2">
-            <div class="card-item white-card" v-for="item in list1">
-              <div class="card-top">
-                <div class="card-left">
-                  <p class="tit">{{ item.title }}</p>
-                  <p class="date">发布日期:{{ item.time }}</p>
-                </div>
-                <div class="card-right">
-                  <span class="normal-tip yd h-bg" v-if="item.type == '1'"
-                    >待发布</span
-                  >
-                  <span class="normal-tip yd z-bg" v-else>已发布</span>
-                </div>
-              </div>
-              <div class="card-bottom">
-                <span class="normal-button-app z-bt">编辑</span>
-                <span class="normal-button-app y-bt">下架</span>
-              </div>
-            </div>
-          </div>
-        </div>
-      </van-tab>
-    </van-tabs>
-  </div>
+							<van-field
+							 class="input-item"
+							 label="*联系人"
+							 name="contacts"
+							 v-model="recruitFrom.contacts"
+							 input-align="right"
+							 placeholder="请填写"
+							/>
+
+							<van-field
+							 class="input-item"
+							 label="*联系电话"
+							 v-model="recruitFrom.phone"
+							 input-align="right"
+							 placeholder="请填写手机号或座号(带区号)"
+							/>
+
+							<van-field
+							 class="input-item"
+							 readonly
+							 clickable
+							 input-align="right"
+							 name="datetimePicker"
+							 v-model="recruitFrom.validityDate"
+							 label="*有效日期"
+							 placeholder="请选择"
+							 @click="showPicker2 = true"
+							/>
+							<van-popup v-model="showPicker2" position="bottom">
+								<van-datetime-picker
+								 type="date"
+								 v-model="currentDate"
+								 @confirm="(value) => onConfirm(value, '2')"
+								 @cancel="showPicker2 = false"
+								/>
+							</van-popup>
+						</van-form>
+					</div>
+
+					<div class="white-bottom">
+						<div class="two-button">
+							<!-- <van-button class="btn" round block type="info" native-type="submit">提交</van-button> -->
+							<div class="btn" round block native-type="submit" @click="recruitSubmit(0)">保存</div>
+							<div class="btn" round block native-type="submit" @click="recruitSubmit(1)">提交</div>
+						</div>
+					</div>
+				</div>
+			</van-tab>
+			<van-tab title="我的招募">
+				<div class="tabs-box">
+					<div class="part-2">
+						<van-pull-refresh v-model="refreshing" @refresh="onRefresh" style="min-height: 85vh;">
+							<van-list
+							 v-model="loading"
+							 :finished="finished"
+							 finished-text="没有更多了"
+							 :immediate-check="false"
+							 @load="onLoad"
+							>
+								<div class="card-item white-card" v-for="item in myList" :key="item.id">
+									<div class="card-top">
+										<div class="card-left">
+											<p class="tit">{{ item.position }}</p>
+											<p class="date">发布日期:{{ item.createdAt }}</p>
+										</div>
+										<div class="card-right">
+											<span class="normal-tip yd h-bg" v-if="item.state == '0'">待发布</span>
+											<span class="normal-tip yd h-bg" v-if="item.state == '1'">已发布</span>
+											<span class="normal-tip yd z-bg" v-if="item.state == '2'">已下架</span>
+										</div>
+									</div>
+									<div class="card-bottom">
+										<span class="normal-button-app z-bt" @click="editFrom(item)" >编辑</span>
+										<span class="normal-button-app y-bt" @click="operationState(item.id, 2)" v-if="item.state == '1'">下架</span>
+										<span class="normal-button-app z-bt" @click="operationState(item.id, 1)" v-if="item.state != '1'">发布</span>
+									</div>
+								</div>
+							</van-list>
+						</van-pull-refresh>
+					</div>
+				</div>
+			</van-tab>
+		</van-tabs>
+	</div>
 </template>
 
 <script>
+import { Toast } from 'vant'
+import Base from "@/pages/base/base";
+import auth from '@/service/auth'
+import { getUserMain } from "@/service/api_user_relation";
 import { formatDate } from "@/plugins/dateFormat";
+import { list, operationRecruit, operationState } from "@/service/api_recruit";
 export default {
-  data() {
-    return {
-      active: 0,
-      value1: "",
-      showPicker1: false,
-      columns1: ["科技型企业", "基金型企业", "制造商"],
+	mixins: [Base],
+	data() {
+		return {
+			loading: false,
+			finished: false,
+			refreshing: false,
+			requestParam: {
+				pageNum: 1,
+				pageSize: 10
+			},
+			total: 0,
+
+			currUser: {},
+			createdId: "1",
+			currentDate: new Date(),
+			userBizMainDetail:{},
+			groupId: "870261874875170816",
+			dc_key: ["recruitPosition"],
+			dickData: {},
+			recruitFrom: {},
+			myList: [],
+			active: 0,
+			value1: "",
+			showPicker1: false,
+			columns1: ["科技型企业", "基金型企业", "制造商"],
+
+			value2: "",
+			showPicker2: false,
+			list1: [
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title:
+					 "招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "2",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+			],
+		};
+	},
+
+	mounted() {
+		this.currUser = auth.currUser();
+		this.createdId = this.currUser.id;
+		this.getUserMain();
+		this.initDict(this.dc_key).then((res) => {
+			this.initDickData();
+		});
+	},
+
+	methods: {
+		onRefresh() {
+			this.requestParam.pageNum = 1;
+			this.getMylist();
+		},
+
+		onLoad(){
+			if (this.refreshing) {
+				this.list = [];
+				this.refreshing = false;
+			}
+			if (this.myList.length >= this.total) {
+				this.finished = true;
+			}else{
+				this.requestParam.pageNum = this.requestParam.pageNum + 1;
+				this.requestParam.userId = this.createdId;
+				list(this.requestParam).then((res) => {
+					res.rows.forEach(element => {
+						this.myList.push(element);
+					});
+					this.total = res.total;
+				});
+			}
+			this.loading = false;
+		},
+
+		onConfirm(value, type) {
+			console.log("value_:", value, ",type_:", type)
+			if (type == "2") {
+				this.recruitFrom.validityDate = formatDate(value, "day");
+			} else {
+				this.recruitFrom.position = value.label;
+			}
+			this["showPicker" + type] = false;
+		},
+
+		initDickData() {
+			this.dc_key.forEach((element) => {
+				let itemData = [];
+				this.dc_data[element].forEach((item) => {
+					item.text = item.label;
+					itemData.push(item);
+				});
+				this.dickData[element] = itemData;
+			});
+		},
+
+		//获取企业
+		getUserMain(){
+			let reqData = {
+				userId: this.currUser.id
+			}
+			getUserMain(reqData).then((res) => {
+				this.userBizMainDetail = res.data;
+				this.$set(this.recruitFrom,'enterpriseName', res.data.businessName);
+				this.$set(this.recruitFrom,'enterpriseId', res.data.id);
+			})
+		},
+
+		//上下架
+		operationState(id, state){
+			let reqData = {
+				id: id,
+				state: state
+			}
+			operationState(reqData).then((res) => {
+				this.getMylist();
+				let msg = "";
+				if(1 == state){
+					msg = "发布成功!";
+				}else{
+					msg = "下架成功!";
+				}
+				Toast(msg)
+			})
+		},
+
+		recruitSubmit(state){
+			//招聘要求
+			if(!this.recruitFrom.recruitRecruit){
+				Toast("请填写招聘要求");
+				return false;
+			}
+			//联系人
+			if(!this.recruitFrom.contacts){
+				Toast("请填写联系人");
+				return false;
+			}
+			//联系电话
+			if(!this.recruitFrom.phone){
+				Toast("请填写联系电话");
+				return false;
+			}
+			//有效日期
+			if(!this.recruitFrom.validityDate){
+				Toast("请填写有效日期");
+				return false;
+			}
+			this.recruitFrom.state = state
+			this.recruitFrom.createdId = this.createdId;
+			this.recruitFrom.groupId = this.groupId;
+			operationRecruit(this.recruitFrom).then((res) => {
+				if(res.key == 200){
+					this.recruitFrom = {};
+					if(state == 1){
+						Toast("提交成功")
+					}else{
+						Toast("保存成功")
+					}
+				}
+			})
+		},
+
+		getMylist(){
+			this.requestParam.userId = this.createdId;
+			list(this.requestParam).then((res) => {
+				// if(res.key == 200){
+				// this.myList = res.data
+				// }
+				this.myList = res.rows;
+				this.total = res.total;
+				this.refreshing = false;
+			})
+		},
 
-      value2: "",
-      showPicker2: false,
-      list1: [
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title:
-            "招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "2",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-      ],
-    };
-  },
+		editFrom(item){
+			let reqData = item;
+			this.$set(reqData,'enterpriseName',  this.userBizMainDetail.businessName);
+			this.$set(reqData,'enterpriseId',  this.userBizMainDetail.id);
+			this.goNavigator("talentService-rcruitDetial", {reqData: reqData});
+		}
 
-  methods: {
-    onConfirm(value, type) {
-      if (type == "2") {
-        this.value2 = formatDate(value, "day");
-      } else {
-        this.value1 = value;
-      }
-      this["showPicker" + type] = false;
-    },
-  },
+	},
 };
 </script>
 
 <style lang="scss" type="text/scss" scoped>
 .settleIn {
-  padding: 0 0 140px;
-  overflow-y: auto;
-  /deep/.van-tabs__wrap {
-    height: 100px;
-    background: #ffffff;
-    box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
-    margin-bottom: 10px;
-  }
+	padding: 0 0 140px;
+	overflow-y: auto;
+	/deep/.van-tabs__wrap {
+		height: 100px;
+		background: #ffffff;
+		box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		margin-bottom: 10px;
+	}
 
-  .tabs-box {
-    margin: 20px 0;
-    .form-part {
-      padding: 4px 0 10px;
-      overflow-y: auto;
-      height: calc(100vh -280px);
-    }
-    .part-2 {
-      overflow-y: auto;
-      height: calc(100vh -160px);
-      box-sizing: border-box;
-      .card-item {
-        margin: 0 30px 30px;
-        .card-top {
-          @include flex;
-          .card-left {
-            display: flex;
-            justify-content: space-between;
-            flex-direction: column;
-            height: 100px;
-            .tit {
-              width: 400px;
-              font-size: 32px;
-              color: #333;
-              @include line-over;
-            }
+	.tabs-box {
+		margin: 20px 0;
+		.form-part {
+			padding: 4px 0 10px;
+			overflow-y: auto;
+			height: calc(100vh -280px);
+			background: #ffffff;
+		}
+		.part-2 {
+			overflow-y: auto;
+			height: calc(100vh -160px);
+			box-sizing: border-box;
+			.card-item {
+				margin: 0 30px 30px;
+				.card-top {
+					@include flex;
+					.card-left {
+						display: flex;
+						justify-content: space-between;
+						flex-direction: column;
+						height: 100px;
+						.tit {
+							width: 400px;
+							font-size: 32px;
+							color: #333;
+							@include line-over;
+						}
 
-            .date {
-              font-size: 28px;
-              color: #999;
-            }
-          }
-          .card-right {
-            align-self: flex-start;
-          }
-        }
+						.date {
+							font-size: 28px;
+							color: #999;
+						}
+					}
+					.card-right {
+						align-self: flex-start;
+					}
+				}
 
-        .card-bottom {
-          height: 80px;
-          display: flex;
-          justify-content: flex-end;
-          align-items: center;
-        }
-      }
-    }
-  }
+				.card-bottom {
+					height: 80px;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
+				}
+			}
+		}
+	}
 }
-</style>
+</style>

BIN
src/pages/talentService/rcfw.jpg


+ 385 - 0
src/pages/talentService/rcruitDetial.vue

@@ -0,0 +1,385 @@
+<template>
+	<div class="settleIn">
+		<!-- <van-tabs
+			v-model="active"
+			title-active-color="#6600FF"
+			color="#6600FF"
+			@click="getMylist"
+			title-inactive-color="#666666"a
+			line-width="120px"
+		>
+			<van-tab title="新增招募"> -->
+		<div class="tabs-box">
+			<div class="form-part">
+				<van-form>
+					<van-field
+					 class="input-item"
+					 label="需求企业"
+					 readonly
+					 v-model="recruitFrom.enterpriseName"
+					 input-align="right"
+					/>
+
+					<van-field
+					 class="input-item picker-item"
+					 readonly
+					 clickable
+					 v-model="recruitFrom.position"
+					 input-align="right"
+					 label="招聘职位"
+					 @click="showPicker1 = true"
+					>
+						<template #button>
+							<i class="iconfont icon-zuo"></i>
+						</template>
+					</van-field>
+					<van-popup v-model="showPicker1" position="bottom">
+						<van-picker
+						 show-toolbar
+						 :columns="dickData.recruitPosition"
+						 @confirm="(value) => onConfirm(value, '1')"
+						 @cancel="showPicker1 = false"
+						/>
+					</van-popup>
+
+					<van-field
+					 class="input-item"
+					 label="薪水待遇(元/月)"
+					 v-model="recruitFrom.salary"
+					 input-align="right"
+					 placeholder="可填面议,可填数字区间"
+					/>
+
+					<van-field
+					 class="input-item"
+					 label="招聘人数"
+					 v-model="recruitFrom.peopleNumber"
+					 input-align="right"
+					 placeholder="请填写"
+					/>
+
+					<van-field
+					 class="input-item-warp input-item"
+					 label="工作经验要求"
+					 v-model="recruitFrom.workRequire"
+					 type="textarea"
+					 placeholder="请填写"
+					/>
+
+					<van-field
+					 class="input-item-warp input-item"
+					 type="textarea"
+					 v-model="recruitFrom.recruitRecruit"
+					 label="*招聘要求"
+					 placeholder="请填写"
+					/>
+
+					<van-field
+					 class="input-item"
+					 label="*联系人"
+					 v-model="recruitFrom.contacts"
+					 input-align="right"
+					 placeholder="请填写"
+					/>
+
+					<van-field
+					 class="input-item"
+					 label="*联系电话"
+					 v-model="recruitFrom.phone"
+					 input-align="right"
+					 placeholder="请填写手机号或座号(带区号)"
+					/>
+
+					<van-field
+					 class="input-item"
+					 readonly
+					 clickable
+					 input-align="right"
+					 name="datetimePicker"
+					 v-model="recruitFrom.validityDate"
+					 label="*有效日期"
+					 placeholder="请选择"
+					 @click="showPicker2 = true"
+					/>
+					<van-popup v-model="showPicker2" position="bottom">
+						<van-datetime-picker
+						 type="date"
+						 @confirm="(value) => onConfirm(value, '2')"
+						 @cancel="showPicker2 = false"
+						/>
+					</van-popup>
+				</van-form>
+			</div>
+
+			<div class="white-bottom">
+				<div class="two-button">
+					<div class="btn" @click="recruitSubmit(0)">保存</div>
+					<div class="btn" @click="recruitSubmit(1)">提交</div>
+				</div>
+			</div>
+		</div>
+		<!-- </van-tab> -->
+		<!-- <van-tab title="我的招募">
+			<div class="tabs-box">
+				<div class="part-2">
+					<div class="card-item white-card" v-for="item in myList" :key="item.id">
+						<div class="card-top">
+							<div class="card-left">
+								<p class="tit">{{ item.position }}</p>
+								<p class="date">发布日期:{{ item.createdAt }}</p>
+							</div>
+							<div class="card-right">
+								<span class="normal-tip yd h-bg" v-if="item.state == '0'">待发布</span>
+								<span class="normal-tip yd h-bg" v-if="item.state == '1'">已发布</span>
+								<span class="normal-tip yd z-bg" v-if="item.state == '2'">已下架</span>
+							</div>
+						</div>
+						<div class="card-bottom">
+							<span class="normal-button-app z-bt" @click="editFrom(item)" >编辑</span>
+							<span class="normal-button-app y-bt" @click="operationState(item.id, 2)" v-if="item.state == '1'">下架</span>
+							<span class="normal-button-app z-bt" @click="operationState(item.id, 1)" v-if="item.state != '1'">发布</span>
+						</div>
+					</div>
+				</div>
+			</div>
+		</van-tab> -->
+		<!-- </van-tabs> -->
+	</div>
+</template>
+
+<script>
+import { Toast } from 'vant'
+import Base from "@/pages/base/base";
+import auth from '@/service/auth'
+import { getUserMain } from "@/service/api_user_relation";
+import { formatDate } from "@/plugins/dateFormat";
+import { list, operationRecruit, operationState } from "@/service/api_recruit";
+export default {
+	mixins: [Base],
+	data() {
+		return {
+			currUser: {},
+			createdId: "1",
+			userBizMainDetail:{},
+			groupId: "870261874875170816",
+			dc_key: ["recruitPosition"],
+			dickData: {},
+			recruitFrom: {},
+			myList: [],
+			active: 0,
+			value1: "",
+			showPicker1: false,
+			columns1: ["科技型企业", "基金型企业", "制造商"],
+
+			value2: "",
+			showPicker2: false,
+			list1: [
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title:
+					 "招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "2",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+				{
+					title: "招聘职位名称  ",
+					time: "2021-10-1 13:40",
+					type: "1",
+				},
+			],
+		};
+	},
+
+	mounted() {
+		this.currUser = auth.currUser();
+		this.createdId = this.currUser.id;
+		this.getUserMain();
+
+		let viewData = this.$route.params.reqData;
+		this.initDict(this.dc_key).then((res) => {
+			this.initDickData();
+			this.recruitFrom = viewData;
+		});
+	},
+
+	methods: {
+
+		onConfirm(value, type) {
+			console.log("value_:", value, ",type_:", type)
+			if (type == "2") {
+				this.recruitFrom.validityDate = formatDate(value, "day");
+			} else {
+				this.recruitFrom.position = value.label;
+			}
+			this["showPicker" + type] = false;
+		},
+
+		initDickData() {
+			this.dc_key.forEach((element) => {
+				let itemData = [];
+				this.dc_data[element].forEach((item) => {
+					item.text = item.label;
+					itemData.push(item);
+				});
+				this.dickData[element] = itemData;
+			});
+		},
+
+		//获取企业
+		getUserMain(){
+			let reqData = {
+				userId: this.currUser.id
+			}
+			getUserMain(reqData).then((res) => {
+				this.userBizMainDetail = res.data;
+				this.$set(this.recruitFrom,'enterpriseName', res.data.businessName);
+				this.$set(this.recruitFrom,'enterpriseId', res.data.id);
+			})
+		},
+
+		//上下架
+		operationState(id, state){
+			let reqData = {
+				id: id,
+				state: state
+			}
+			operationState(reqData).then((res) => {
+				this.getMylist();
+				let msg = "";
+				if(1 == state){
+					msg = "发布成功!";
+				}else{
+					msg = "下架成功!";
+				}
+				Toast(msg)
+			})
+		},
+
+		recruitSubmit(state){
+			this.recruitFrom.state = state
+			this.recruitFrom.createdId = this.createdId;
+			this.recruitFrom.groupId = this.groupId;
+			operationRecruit(this.recruitFrom).then((res) => {
+				if(res.key == 200){
+					this.recruitFrom = {};
+					this.goNavigator("talentService");
+					if(state == 1){
+						Toast("保存成功")
+					}else{
+						Toast("提交成功")
+					}
+				}
+			})
+		},
+
+		getMylist(){
+			let reqData = {
+				userId: this.createdId
+			}
+			list(reqData).then((res) => {
+				if(res.key == 200){
+					this.myList = res.data
+				}
+			})
+		},
+
+		editFrom(item){
+			this.recruitFrom = item;
+			this.$set(this.recruitFrom,'enterpriseName',  this.userBizMainDetail.businessName);
+			this.$set(this.recruitFrom,'enterpriseId',  this.userBizMainDetail.id);
+			this.active = 0;
+		}
+
+	},
+};
+</script>
+
+<style lang="scss" type="text/scss" scoped>
+.settleIn {
+	padding: 0 0 140px;
+	overflow-y: auto;
+	/deep/.van-tabs__wrap {
+		height: 100px;
+		background: #ffffff;
+		box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		margin-bottom: 10px;
+	}
+
+	.tabs-box {
+		margin: 20px 0;
+		.form-part {
+			padding: 4px 0 10px;
+			overflow-y: auto;
+			height: calc(100vh -280px);
+			background: #ffffff;
+		}
+		.part-2 {
+			overflow-y: auto;
+			height: calc(100vh -160px);
+			box-sizing: border-box;
+			.card-item {
+				margin: 0 30px 30px;
+				.card-top {
+					@include flex;
+					.card-left {
+						display: flex;
+						justify-content: space-between;
+						flex-direction: column;
+						height: 100px;
+						.tit {
+							width: 400px;
+							font-size: 32px;
+							color: #333;
+							@include line-over;
+						}
+
+						.date {
+							font-size: 28px;
+							color: #999;
+						}
+					}
+					.card-right {
+						align-self: flex-start;
+					}
+				}
+
+				.card-bottom {
+					height: 80px;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
+				}
+			}
+		}
+	}
+}
+</style>

+ 423 - 167
src/pages/talentService/recruiting.vue

@@ -1,180 +1,436 @@
 <template>
-  <div class="peripheral">
-    <van-tabs
-      v-model="active"
-      title-active-color="#6600FF"
-      color="#6600FF"
-      title-inactive-color="#666666"
-      line-width="120px"
-    >
-      <van-tab title="最新招募">
-        <div class="tabs-box">
-          <div class="white-box part-1">
-            <div class="custom-input-box">
-              <input type="text" placeholder="意向职位模糊" />
-            </div>
-            <button class="icon-box">
-              <i class="iconfont icon-sousuo"></i>
-            </button>
-          </div>
-
-          <div class="part-2">
-            <div
-              class="card-item white-card"
-              v-for="item in list1"
-              @click="goNavigator('talentService-recruitDetial')"
-            >
-              <div class="card-left">
-                <p class="tit">{{ item.title }}</p>
-                <p class="txt">{{ item.text }}</p>
-                <p class="date">发布日期:{{ item.time }}</p>
-              </div>
-              <div class="card-right">
-                <span class="normal-tip yd z-bg" v-if="item.type == '1'"
-                  >有效</span
-                >
-                <span class="normal-tip yd y-bg" v-else>到期</span>
-              </div>
-            </div>
-          </div>
-        </div>
-      </van-tab>
-      <van-tab title="专业人才库">
-        <div class="tabs-box"></div>
-      </van-tab>
-    </van-tabs>
-  </div>
+	<div class="peripheral">
+		<van-tabs
+		 v-model="active"
+		 @click="tabOnClick"
+		 title-active-color="#6600FF"
+		 color="#6600FF"
+		 title-inactive-color="#666666"
+		 line-width="120px"
+		>
+			<van-tab title="最新招募">
+				<div class="tabs-box">
+					<div class="white-box part-1">
+						<div class="search-box">
+							<div class="search-input-box">
+								<input type="text" v-model="requestData.positionName" placeholder="意向职位模糊" />
+							</div>
+							<div class="search-icon-box">
+								<i class="iconfont icon-sousuo" @click="zpSeach"></i>
+							</div>
+						</div>
+					</div>
+
+					<div class="part-2">
+						<van-pull-refresh v-model="zpRefreshing" @refresh="onZpRefresh" style="min-height: 60vh;">
+							<van-list
+							 v-model="zpLoading"
+							 :finished="zpFinished"
+							 finished-text="没有更多了"
+							 :immediate-check="false"
+							 @load="onZpLoad"
+							>
+								<div
+								 class="card-item white-card"
+								 v-for="item in dataList"
+								 :key="item.id"
+								 @click="goNavigator('talentService-recruitDetial', item)"
+								>
+									<div class="card-left">
+										<p class="tit">{{ item.position }}</p>
+										<p class="txt">{{ item.enterpriseId }}</p>
+										<p class="date">发布日期:{{ item.createdAt }}</p>
+									</div>
+									<div class="card-right">
+										<span class="normal-tip yd z-bg" v-if="compareDate(item.validityDate)">有效</span>
+										<span class="normal-tip yd y-bg" v-else>到期</span>
+									</div>
+								</div>
+							</van-list>
+						</van-pull-refresh>
+					</div>
+				</div>
+			</van-tab>
+			<van-tab title="专业人才库">
+				<div class="tabs-box">
+					<div class="white-box part-3">
+						<div class="search-box">
+							<div class="search-input-box">
+								<input type="text" v-model="paramRequest.followPosition" placeholder="意向职位模糊" />
+							</div>
+							<div class="search-icon-box">
+								<i class="iconfont icon-sousuo" @click="rcSeach"></i>
+							</div>
+						</div>
+
+						<div class="tips-list-box">
+              <span
+							 @click="getTips(item)"
+							 :class="tip == item.value && 'active'"
+							 v-for="item in dc_data.specialty"
+							 :key="item.label"
+							>{{ item.label }}</span
+							>
+						</div>
+					</div>
+
+					<div class="white-box part-4">
+						<van-pull-refresh v-model="rcRefreshing" @refresh="onRcRefresh" style="min-height: 60vh;">
+							<van-list
+							 v-model="rcLoading"
+							 :finished="rcFinished"
+							 finished-text="没有更多了"
+							 :immediate-check="false"
+							 @load="onRcLoad"
+							>
+								<div class="figure-card" v-for="item in personnelList" :key="item.id">
+									<div class="card-left">
+										<img :src="'[]'==item.photo?'':JSON.parse(item.photo)[0].url" v-if="item.photo" alt="" />
+									</div>
+									<div class="card-right">
+										<div class="top">
+											<span class="name">{{ item.realName.slice(0, 1) }}{{ item.gender=='女'?'女士':'先生' }}</span>
+											<span class="tips-detail" @click="resumeDetial(item.id)">履历详情</span>
+										</div>
+										<div class="bottom">
+											<p class="text">意向职位:{{ item.followPosition }}</p>
+											<p class="text">特长:{{ item.labelSpecialty }}</p>
+											<p class="text">工作年限:{{ item.workYears }}</p>
+										</div>
+									</div>
+								</div>
+							</van-list>
+						</van-pull-refresh>
+					</div>
+				</div>
+			</van-tab>
+		</van-tabs>
+	</div>
 </template>
 
 <script>
+import Base from '@/pages/base/base'
 import PositionNav from "@/components/position-nav";
+import { getRecruitListOder } from "@/service/api_recruit";
+import { getPersonnelList } from "@/service/api_personnel";
 export default {
-  components: {
-    PositionNav,
-  },
-  data() {
-    return {
-      active: 0,
-      list1: [
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title:
-            "招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称招聘职位名称 招聘职位名称  ",
-          text: "XXX企业名称XXX企业名称XXX企业名称XXX企业名称XXX企业名称XXX企业名称XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "2",
-        },
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-        {
-          title: "招聘职位名称  ",
-          text: "XXX企业名称",
-          time: "2021-10-1 13:40",
-          type: "1",
-        },
-      ],
-    };
-  },
-  methods: {},
+	mixins: [Base],
+	components: {
+		PositionNav,
+	},
+	data() {
+		return {
+			active: 0,
+			dc_key: ['specialty'],
+
+			zpLoading: false,
+			zpFinished: false,
+			zpRefreshing: false,
+			requestData: {
+				positionName: "",
+				pageNum: 1,
+				pageSize: 10
+			},
+			dataList: [],
+			zpTotal: 0,
+
+			rcLoading: false,
+			rcFinished: false,
+			rcRefreshing: false,
+			paramRequest: {
+				followPosition: "",
+				pageNum: 1,
+				pageSize: 5
+			},
+			personnelList: [],
+			rcTotal: 0,
+
+			list1: [],
+			tipsList: [],
+			tip: "",
+			list2: [],
+		};
+	},
+
+	mounted() {
+		this.getList();
+		this.initDict(this.dc_key).then((res) => {});
+	},
+
+	methods: {
+		zpSeach(){
+			this.requestData.pageNum = 1;
+			this.getList();
+		},
+
+		onZpRefresh() {
+			this.requestData.pageNum = 1;
+			this.getList();
+		},
+
+		onZpLoad(){
+			if (this.zpRefreshing) {
+				this.dataList = [];
+				this.zpRefreshing = false;
+			}
+			if (this.dataList.length >= this.zpTotal) {
+				this.zpFinished = true;
+			}else{
+				this.requestData.pageNum++;
+				list(this.requestData).then((res) => {
+					res.rows.forEach(element => {
+						this.dataList.push(element);
+					});
+					this.zpTotal = res.total;
+					this.zpLoading = false;
+				})
+			}
+
+		},
+
+		//获取招聘列表
+		getList(){
+			getRecruitListOder(this.requestData).then((res) => {
+				this.dataList = res.rows;
+				this.zpTotal = res.total;
+				this.zpRefreshing = false;
+
+				console.log("接口数据——:", this.zpTotal);
+				console.log("接口数据——:", this.dataList);
+
+				this.zpFinished = false;
+			})
+		},
+
+		rcSeach(){
+			this.paramRequest.pageNum = 1;
+			this.getPersonnelList();
+		},
+
+		onRcRefresh() {
+			this.paramRequest.pageNum = 1;
+			this.getPersonnelList();
+		},
+
+		onRcLoad(){
+			if (this.rcRefreshing) {
+				this.dataList = [];
+				this.rcRefreshing = false;
+			}
+			if (this.personnelList.length >= this.rcTotal) {
+				this.rcFinished = true;
+			}else{
+				this.paramRequest.pageNum++;
+				this.paramRequest.specialty = this.tip;
+				list(this.paramRequest).then((res) => {
+					res.rows.forEach(element => {
+						this.personnelList.push(element);
+					});
+					this.rcTotal = res.total;
+				})
+			}
+			this.rcLoading = false;
+		},
+
+		//获取人才列表
+		getPersonnelList(){
+			this.paramRequest.specialty = this.tip;
+			getPersonnelList(this.paramRequest).then((res) => {
+				this.personnelList = res.rows;
+				this.rcTotal = res.total;
+				this.rcRefreshing = false;
+			})
+		},
+
+		tabOnClick(){
+			if(0 == this.active){
+				this.getList();
+			}else{
+				this.getPersonnelList();
+			}
+		},
+
+		getTips(item) {
+			this.tip = item.value;
+			// this.getPersonnelList();
+			this.rcSeach();
+		},
+
+		resumeDetial(id){
+			this.goNavigator("talentService-iAmATalentShow", {id: id});
+		},
+
+		compareDate(dd){
+			return new Date(dd).getTime() > new Date().getTime();
+		}
+
+	},
 };
 </script>
 
 <style lang="scss" type="text/scss" scoped>
 .peripheral {
-  /deep/.van-tabs__wrap {
-    height: 100px;
-    background: #ffffff;
-    box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
-    margin-bottom: 10px;
-  }
-
-  .tabs-box {
-    margin: 20px 0;
-    .part-1 {
-      padding: 30px;
-      box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
-      @include flex;
-      .custom-input-box {
-        flex: 1;
-      }
-      .icon-box {
-        background: #fff;
-        width: 100px;
-        text-align: center;
-        i {
-          font-size: 50px;
-          color: $main;
-        }
-      }
-    }
-    .part-2 {
-      overflow-y: auto;
-      height: calc(100vh - 320px);
-      box-sizing: border-box;
-      .card-item {
-        @include flex;
-        margin: 0 30px 30px;
-        .card-left {
-          display: flex;
-          justify-content: space-between;
-          flex-direction: column;
-          height: 140px;
-          .tit {
-            width: 500px;
-            font-size: 32px;
-            color: #333;
-            @include line-over;
-          }
-          .txt {
-            width: 500px;
-            font-size: 28px;
-            color: #999;
-            @include line-over;
-          }
-          .date {
-            font-size: 28px;
-            color: #999;
-          }
-        }
-        .card-right {
-          align-self: flex-start;
-        }
-      }
-    }
-  }
+	/deep/.van-tabs__wrap {
+		height: 100px;
+		background: #ffffff;
+		box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		margin-bottom: 10px;
+	}
+
+	.tabs-box {
+		margin: 20px 0;
+		.part-1 {
+			padding: 30px;
+			box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+		}
+		.part-2 {
+			overflow-y: auto;
+			height: calc(100vh - 320px);
+			box-sizing: border-box;
+			.card-item {
+				@include flex;
+				margin: 0 30px 30px;
+				.card-left {
+					display: flex;
+					justify-content: space-between;
+					flex-direction: column;
+					height: 140px;
+					.tit {
+						width: 500px;
+						font-size: 32px;
+						color: #333;
+						@include line-over;
+					}
+					.txt {
+						width: 500px;
+						font-size: 28px;
+						color: #999;
+						@include line-over;
+					}
+					.date {
+						font-size: 28px;
+						color: #999;
+					}
+				}
+				.card-right {
+					align-self: flex-start;
+				}
+			}
+		}
+
+		.part-3 {
+			padding: 30px 30px 10px;
+			box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05);
+			margin-bottom: 20px;
+		}
+		.part-4 {
+			padding: 0;
+			overflow-y: auto;
+			height: calc(100vh - 450px);
+		}
+	}
+}
+.search-box {
+	@include flex;
+	box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
+	border-radius: 35px;
+	height: 70px;
+	padding: 0 40px;
+	.search-input-box {
+		input {
+			height: 70px;
+			line-height: 70px;
+			font-size: 30px;
+			color: #b7b7b7;
+			&::placeholder {
+				line-height: 70px;
+				font-size: 30px;
+				color: #b7b7b7;
+			}
+		}
+	}
+	.search-icon-box {
+		width: 100px;
+		text-align: center;
+		i {
+			line-height: 70px;
+			font-size: 36px;
+			color: $text5;
+		}
+	}
+}
+
+.tips-list-box {
+	margin-top: 20px;
+	display: flex;
+	align-items: center;
+	flex-wrap: wrap;
+	span {
+		width: 160px;
+		height: 70px;
+		line-height: 70px;
+		border-radius: 10px;
+		font-size: 28px;
+		color: #333;
+		text-align: center;
+		margin-right: 16px;
+		margin-bottom: 20px;
+		background: $color5;
+		&:nth-child(4n) {
+			margin-right: 0;
+		}
+		&.active {
+			background: #f7f3ff;
+			color: #874cfe;
+		}
+	}
+}
+
+.figure-card {
+	padding: 30px;
+	display: flex;
+	border-bottom: 1px solid #e3e3e3;
+	.card-left {
+		width: 160px;
+		height: 200px;
+		overflow: hidden;
+		margin-right: 30px;
+		img {
+			width: 100%;
+		}
+	}
+	.card-right {
+		flex: 1;
+		.top {
+			@include flex;
+			margin-bottom: 20px;
+			.name {
+				font-size: 32px;
+				color: #333;
+				font-weight: bold;
+			}
+			.tips-detail {
+				width: 160px;
+				height: 70px;
+				line-height: 70px;
+				background: #f2ebff;
+				border: 1px solid #6600ff;
+				border-radius: 10px;
+				font-size: 28px;
+				font-weight: 400;
+				color: #6600ff;
+				text-align: center;
+			}
+		}
+
+		.bottom {
+			.text {
+				font-size: 28px;
+				font-weight: 400;
+				color: #999999;
+				line-height: 40px;
+			}
+		}
+	}
 }
 </style>

+ 68 - 3
src/router/index.js

@@ -155,7 +155,7 @@ const router = new Router({
             path: '/settleIn',
             name: 'settleIn',
             meta: {
-                title: '入驻申请'
+                title: '企业认证'
             },
             component: () => import('@/pages/settleIn/index.vue')
         }, {
@@ -358,7 +358,16 @@ const router = new Router({
                 title: '经发数据填报'
             },
             component: () => import('@/pages/economicData/index.vue')
-        }, {
+        },
+        {
+            path: '/economicData/detial',
+            name: 'economicDetial',
+            meta: {
+                title: '经发填报详情'
+            },
+            component: () => import('@/pages/economicData/detial.vue')
+        },
+        , {
             path: '/professionalService',
             name: 'professionalService',
             meta: {
@@ -822,7 +831,23 @@ const router = new Router({
             meta: {
                 title: '我的'
             },
-            component: () => import('@/pages/mine-app/index.vue')
+            component: () => import('@/pages/mine/index.vue')
+        },
+        {
+            path: '/certification',
+            name: 'certification',
+            meta: {
+                title: '企业认证'
+            },
+            component: () => import('@/pages/mine/certification.vue')
+        },
+        {
+            path: '/myCollection',
+            name: 'myCollection',
+            meta: {
+                title: '我的收藏'
+            },
+            component: () => import('@/pages/mine/myCollection.vue')
         },
         {
             path: '/mine-app/my-info',
@@ -840,6 +865,14 @@ const router = new Router({
             },
             component: () => import('@/pages/mine-app/myMessage.vue')
         },
+        {
+            path: '/industrialPolicy/detail-pdf',
+            name: 'industrialPolicy-detail-pdf',
+            meta: {
+                title: '产业政策-pdf详情'
+            },
+            component: () => import('@/pages/industrialPolicy/pdfDetail.vue')
+        },
         {
             path: '/mine-app/password',
             name: 'mine-password-app',
@@ -848,6 +881,38 @@ const router = new Router({
             },
             component: () => import('@/pages/mine-app/password.vue')
         },
+        {
+            path: '/feedback',
+            name: 'feedback',
+            meta: {
+                title: '我的反馈'
+            },
+            component: () => import('@/pages/mine/feedback.vue')
+        },
+        {
+            path: '/feedbackRecord',
+            name: 'feedbackRecord',
+            meta: {
+                title: '反馈记录'
+            },
+            component: () => import('@/pages/mine/feedbackRecord.vue')
+        },
+        {
+            path: '/feedbackDetail',
+            name: 'feedbackDetail',
+            meta: {
+                title: '反馈详情'
+            },
+            component: () => import('@/pages/mine/feedbackDetail.vue')
+        },
+        {
+            path: '/employeeCertification',
+            name: 'employeeCertification',
+            meta: {
+                title: '员工认证'
+            },
+            component: () => import('@/pages/mine/employeeCertification.vue')
+        },
         {
             path: '/meetingRoom-app',
             name: 'meetingRoom-app',

+ 40 - 0
src/service/api_economyReport.js

@@ -0,0 +1,40 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const controller = '/wx/economyReport'
+
+//列表
+export function getEconomyReportList(data) {
+    return request({
+        url: baseUri + controller + '/getEconomyReportList',
+        method: 'post',
+        data: data
+    })
+}
+
+//添加 and 修改
+export function operationEconomyReportInfo(data) {
+    return request({
+        url: baseUri + controller + '/operationEconomyReportInfo',
+        method: 'post',
+        data: data
+    })
+}
+
+//详情
+export function getEconomyReportDetail(data) {
+    return request({
+        url: baseUri + controller + '/getEconomyReportDetail',
+        method: 'post',
+        data: data
+    })
+}
+
+//删除
+export function deleteInfo(data) {
+    return request({
+        url: baseUri + controller + '/deleteInfo',
+        method: 'post',
+        data: data
+    })
+}

+ 27 - 0
src/service/api_feedback.js

@@ -0,0 +1,27 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const parkFeedbackInfo = '/wx/parkFeedbackInfo'
+
+export function list(data) {
+    return request({
+        url: baseUri + parkFeedbackInfo + '/list',
+        method: 'post',
+        data: data
+    })
+}
+
+export function add(data) {
+    return request({
+        url: baseUri + parkFeedbackInfo + '/add',
+        method: 'post',
+        data: data
+    })
+}
+
+export function getById(id) {
+    return request({
+        url: baseUri + parkFeedbackInfo + '/getById?id=' + id,
+        method: 'get'
+    })
+}

+ 26 - 1
src/service/api_first-page.js

@@ -2,7 +2,8 @@ import { request } from './request'
 
 const baseUri = '/smartParkH5Server'
 const controller = '/wx/SunanPortalManagementController'
-    // /wx/SunanPortalManagementController/findInfoByPortalType
+
+// /wx/SunanPortalManagementController/findInfoByPortalType
 export function findInfoByPortalType(data) {
     return request({
         url: baseUri + controller + '/findInfoByPortalType',
@@ -10,3 +11,27 @@ export function findInfoByPortalType(data) {
         data
     })
 }
+
+export function parkTrain(data) {
+    return request({
+        url: '/smartParkH5Server/wx/parkTrain/listForTop',
+        method: 'post',
+        data
+    })
+}
+
+export function policy(data) {
+    return request({
+        url: '/smartParkH5Server/wx/policy//listForTop',
+        method: 'post',
+        data
+    })
+}
+
+export function parkActivity(data) {
+    return request({
+        url: '/smartParkH5Server/wx/parkActivity/listForTop',
+        method: 'post',
+        data
+    })
+}

+ 20 - 0
src/service/api_park_staff_prove_info.js

@@ -0,0 +1,20 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const parkActivity = '/wx/WxParkStaffProveInfoController'
+
+export function list(data) {
+    return request({
+        url: baseUri + parkActivity + '/staffProveList',
+        method: 'post',
+        data: data
+    })
+}
+
+export function staffProve(data) {
+    return request({
+        url: baseUri + parkActivity + '/staffProve',
+        method: 'post',
+        data: data
+    })
+}

+ 40 - 0
src/service/api_personnel.js

@@ -0,0 +1,40 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const controller = '/wx/personnel'
+
+//列表
+export function getPersonnelList(data) {
+    return request({
+        url: baseUri + controller + '/getPersonnelList',
+        method: 'post',
+        data: data
+    })
+}
+
+//添加招聘 and 修改
+export function operationPersonnel(data) {
+    return request({
+        url: baseUri + controller + '/operationPersonnel',
+        method: 'post',
+        data: data
+    })
+}
+
+//详情
+export function personnelDetial(data) {
+    return request({
+        url: baseUri + controller + '/personnelDetial',
+        method: 'post',
+        data: data
+    })
+}
+
+//详情
+export function personnelUserDetial(data) {
+    return request({
+        url: baseUri + controller + '/personnelUserDetial',
+        method: 'post',
+        data: data
+    })
+}

+ 49 - 0
src/service/api_recruit.js

@@ -0,0 +1,49 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const controller = '/wx/recruit'
+
+//列表
+export function list(data) {
+    return request({
+        url: baseUri + controller + '/getRecruitList',
+        method: 'post',
+        data: data
+    })
+}
+
+//列表2
+export function getRecruitListOder(data) {
+    return request({
+        url: baseUri + controller + '/getRecruitListOder',
+        method: 'post',
+        data: data
+    })
+}
+
+//添加招聘 and 修改
+export function operationRecruit(data) {
+    return request({
+        url: baseUri + controller + '/operationRecruit',
+        method: 'post',
+        data: data
+    })
+}
+
+//详情
+export function recruitDetial(data) {
+    return request({
+        url: baseUri + controller + '/recruitDetial',
+        method: 'post',
+        data: data
+    })
+}
+
+//上下架招聘
+export function operationState(data) {
+    return request({
+        url: baseUri + controller + '/operationState',
+        method: 'post',
+        data: data
+    })
+}

+ 42 - 2
src/service/api_user.js

@@ -12,7 +12,13 @@ export function login(data) {
         data: data
     })
 }
-
+export function editMyInformation(data) {
+    return request({
+        url: baseUri + user + '/editMyInformation',
+        method: 'post',
+        data: data
+    })
+}
 export function frameUserLogin(data) {
     return request({
         url: baseUri + user + '/login_by_app_main',
@@ -28,7 +34,41 @@ export function myInfo(data) {
         data: data
     })
 }
-
+export function getById(data) {
+    return request({
+        url: baseUri + user + '/getById',
+        method: 'post',
+        data: data
+    })
+}
+export function wechatUnBind(data) {
+    return request({
+        url: baseUri + user + '/wechatUnBind',
+        method: 'post',
+        data: data
+    })
+}
+export function unbound(data) {
+    return request({
+        url: baseUri + user + '/unbound',
+        method: 'post',
+        data: data
+    })
+}
+export function wechatBind(data) {
+    return request({
+        url: baseUri + user + '/wechatBind',
+        method: 'post',
+        data: data
+    })
+}
+export function binding(data) {
+    return request({
+        url: baseUri + user + '/binding',
+        method: 'post',
+        data: data
+    })
+}
 export function editPassword(data) {
     return request({
         url: baseUri + frameUser + '/editPassword',

+ 12 - 0
src/service/api_user_collectors.js

@@ -0,0 +1,12 @@
+import { request } from './request'
+
+const baseUri = '/smartParkH5Server'
+const parkUserCollectors = '/wx/parkUserCollectors'
+
+export function list(data) {
+    return request({
+        url: baseUri + parkUserCollectors + '/list',
+        method: 'post',
+        data: data
+    })
+}

+ 24 - 7
src/service/api_user_relation.js

@@ -1,9 +1,18 @@
-import { request } from './request'
+import { request } from '../service/request'
 
 const baseUri = '/smartParkH5Server'
 const userRelation = '/wx/userRelation'
 
-//获取用户企业-h5
+// 获取用户关联信息
+export function getUserRelation(data) {
+    return request({
+        url: baseUri + userRelation + '/getUserRelation',
+        method: 'post',
+        data: data
+    })
+}
+
+// 获取用户企业
 export function getUserMain(data) {
     return request({
         url: baseUri + userRelation + '/getUserMain',
@@ -12,20 +21,28 @@ export function getUserMain(data) {
     })
 }
 
-//获取用户企业-app
-export function getAppUserMain(data) {
+// 获取管家
+export function getUserMainHouseKeeper(data) {
     return request({
-        url: baseUri + userRelation + '/getUserMainApp',
+        url: baseUri + userRelation + '/getUserMainHouseKeeper',
         method: 'post',
         data: data
     })
 }
 
-//获取所有企业
+// 获取园区所有企业
 export function getBizMainList(data) {
     return request({
         url: baseUri + userRelation + '/getBizMainList',
         method: 'post',
         data: data
     })
-}
+}
+
+export function getAppUserMain(data) {
+    return request({
+        url: baseUri + userRelation + '/getUserMainApp',
+        method: 'post',
+        data: data
+    })
+}

+ 3 - 2
vue.config.js

@@ -16,7 +16,7 @@ const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPl
 module.exports = {
     // 基本路径
     // publicPath: '',
-    publicPath: '/smartParkApp/',
+    publicPath: '/industryParkApp/',
     // // 打包构建的文件目录
     outputDir: 'dist',
     // // 指定生成index.html的输出路径
@@ -36,7 +36,8 @@ module.exports = {
             '/smartParkH5Server': {
                 // target: 'http://localhost:9001',
                 // target: 'http://123.207.115.14:9091',
-                target: process.env.VUE_APP_API_URL,
+                target: 'http://192.168.2.102:9012',
+                // https://www.idea-sf.com/industryParkApi
                 ws: true,
                 changOrigin: true, // 允许跨域
                 pathRewrite: {