İşlemeleri karşılaştır

...

207 İşlemeler

Yazar SHA1 Mesaj Tarih
  庞东旭 dcab0e93c1 task 45021 终止、异常公告 3 saat önce
  庞东旭 b5269c829c Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 5 saat önce
  庞东旭 d56a1a5087 task 45021 终止、异常公告 5 saat önce
  Zhao 6fefd1df69 Task H5定位等待指示器 1 gün önce
  Zhao 0d7bd2bf37 Task H5定位 4 gün önce
  庞东旭 cb111b4050 task 配置修改 5 gün önce
  庞东旭 9338b88610 task 底部配置 6 gün önce
  yangfuda 45b081f296 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 6 gün önce
  yangfuda 358154e68c TASK 44818 河南0702JW需求后台开发-四议表决模块后台-补充二维码 6 gün önce
  张泽亮 85352595c6 产交报名时,增加竞价须知内容预览 1 hafta önce
  张泽亮 8aa848fee8 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 hafta önce
  张泽亮 8f28bfb7d2 产交报名时,增加竞价须知内容预览 1 hafta önce
  庞东旭 17cb114fbd task 44852 问题修改 1 hafta önce
  庞东旭 3e3440643d 问题修改 1 hafta önce
  庞东旭 72fc48059a 问题修改 1 hafta önce
  庞东旭 6c2b097197 问题修改 1 hafta önce
  庞东旭 16092d21ab 问题修改 1 hafta önce
  庞东旭 8c13637b16 问题修改 1 hafta önce
  庞东旭 b246b3e1f2 问题修改 1 hafta önce
  庞东旭 cc12ff40c2 问题修改 1 hafta önce
  庞东旭 6266f25fc8 阅读量 1 hafta önce
  庞东旭 35573eeaa3 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 2 hafta önce
  庞东旭 86e58a6054 0702JW需求开发 2 hafta önce
  zhaodengke 531503783b Task 筛选 3 hafta önce
  zhaodengke e90c2a5d98 Task 定位 3 hafta önce
  庞东旭 608907f8f3 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 ay önce
  庞东旭 d7cf4b5e5b 优化 1 ay önce
  张泽亮 92c9d7fdc9 先注释掉,有风险 1 ay önce
  张泽亮 620e159625 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 ay önce
  张泽亮 cb2aba82c9 哈尔滨确权需求 1 ay önce
  yangfuda 8cb509a4b3 TASK 44198 河南0620纪委需求后台开发 1 ay önce
  yangfuda 0439a747db Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 1 ay önce
  yangfuda 72ceafdf1b TASK 44198 河南0620纪委需求后台开发 1 ay önce
  庞东旭 d3c34b6cf9 更新 1 ay önce
  庞东旭 eb5dff891f 0620需求开发 1 ay önce
  庞东旭 fd998a81e8 0620 重要事项新增需求开发 1 ay önce
  庞东旭 f9338c658d 0620 重要事项新增需求开发 1 ay önce
  庞东旭 f76724cb40 0620 财务公开新增需求开发 1 ay önce
  庞东旭 f2e61156f9 缓存清理配置 1 ay önce
  庞东旭 3e97a0964e task 政策法规pdf文件预览 1 ay önce
  庞东旭 ab985c122f bug 24115 登录验证码 搜索问题修改 1 ay önce
  庞东旭 f2d4031a93 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 ay önce
  庞东旭 fc1c1171e1 bug 24115 登录验证码 搜索问题修改 1 ay önce
  zhaodengke 4c0d46a9fb Task 经营属性 1 ay önce
  yangfuda 79a544f5bb TASK 44066 在资产管理模块下增加“三清台账”功能 1 ay önce
  庞东旭 f1e9d54e44 task 44112 实施过程公开 1 ay önce
  庞东旭 783a00b8f2 task 44112 实施过程公开 1 ay önce
  庞东旭 d5f2504d54 task 44112 实施过程公开 1 ay önce
  庞东旭 480f77307b Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 ay önce
  庞东旭 600ae6e5df task 44112 实施过程公开 1 ay önce
  zhaodengke af7e38c6d8 Task 经营属性 1 ay önce
  yangfuda e2c9b114b6 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 1 ay önce
  yangfuda 09e70dc7b0 TASK 44066 在资产管理模块下增加“三清台账”功能 1 ay önce
  zhaodengke 2c6fe9c2a3 Task 资源定位 1 ay önce
  zhaodengke 2c104674ca Task 定位 1 ay önce
  zhaodengke 41f41d2007 Task 资源筛选3 1 ay önce
  zhaodengke a4c1a7c1c2 Task 资源筛选2 1 ay önce
  zhaodengke 7783862710 Task 资源筛选 1 ay önce
  zhaodengke 0d65569b77 Task 资产折旧计算 1 ay önce
  zhaodengke 7e47fbffe6 Task 农户dengl 1 ay önce
  yangfuda d26a641824 TASK 43633 完善app端内蒙农商行相关功能、解决一些发现的问题 2 ay önce
  yangfuda e0a9320347 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 3 ay önce
  yangfuda 37c076e840 移动端:公开登录bug修复 3 ay önce
  张泽亮 34e9bc527d 阳光村务:资源公开不滑动分页问题临时处理 3 ay önce
  张泽亮 b6c0d86685 移动端:公资产公开数量字段对应错误 3 ay önce
  庞东旭 4704489b1e Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 3 ay önce
  庞东旭 fb80ff81bc task 43078 优化 3 ay önce
  张泽亮 51b1dc1600 移动端:公开登录bug修复 3 ay önce
  庞东旭 2786bfa40a task 43078 优化 3 ay önce
  庞东旭 ef8fd7f604 task 43078 公开接口更换 3 ay önce
  庞东旭 4166b6f821 task 43078 公开接口更换 3 ay önce
  庞东旭 116640f56d Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 3 ay önce
  庞东旭 1f247069a8 task 43078 阳光村务加急需求开发 3 ay önce
  yangfuda 9ad66e76fa TASK 43066 河南代理记账小程序加急需求-完善重大事项申请 3 ay önce
  yangfuda 7037af3855 TASK 43066 河南代理记账小程序加急需求-完善重大事项申请 3 ay önce
  yangfuda 3775b4c8b4 补全APP端重大事项申请 3 ay önce
  yangfuda 8af9256ace 银农:app中收款方选择时显示卡号、开户行选择时可搜索、新增申请单时付款账户默认第一个 3 ay önce
  庞东旭 990cd9847e task 42343 阳光村务财务公开问题修改 4 ay önce
  yangfuda b5f1742da7 TASK 42268 右江银农:广西农商行支付对接短信 4 ay önce
  yangfuda 1cda066931 TASK 42268 右江银农:广西农商行支付对接短信 4 ay önce
  yangfuda 1c6cf2253d 银农:各个模块列表加搜索;限制内蒙农商行转账附言长度 4 ay önce
  yangfuda d98edd0607 银农:去掉申请单中收款方的开户行必填校验 4 ay önce
  庞东旭 d2ae56c93e task 41397 移动端 “银行卡转账” 添加收款方时,可以输入人名模糊搜索 4 ay önce
  庞东旭 7715aac60f task 41397 移动端 “银行卡转账” 添加收款方时,可以输入人名模糊搜索 4 ay önce
  庞东旭 7fb3b45da4 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 4 ay önce
  庞东旭 9d7c414604 task 41397 移动端 “银行卡转账” 添加收款方时,可以输入人名模糊搜索 4 ay önce
  zhaodengke dea3719075 Task 农户 4 ay önce
  yangfuda 563740f059 银农:头像、广西农商行开放批量申请 4 ay önce
  yangfuda 9c6a289900 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 4 ay önce
  yangfuda 149bd3ef25 银农:头像、广西农商行开放批量申请 4 ay önce
  zhaodengke dcefd888ee Task 凭证附件 4 ay önce
  zhaodengke 02d6db13d8 Task 银农登录去掉短信登录 4 ay önce
  zhaodengke 20a5819f7e Task 凭证列表 6 ay önce
  庞东旭 02ee0269ba task 阳光村务手机端优化 7 ay önce
  庞东旭 390d347586 task 银农手机端开户行优化 7 ay önce
  庞东旭 eacb0c9425 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 7 ay önce
  庞东旭 9bf7a8ff67 task 乳山产交手机端兼容性修改 7 ay önce
  yangfuda 96168b9f7d Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 7 ay önce
  yangfuda 130c4b3e4a 银农:建行的申请单改为支持同行跨行在同一个单子中 7 ay önce
  zhaodengke bfcb240f73 Task 零工登记 7 ay önce
  zhaodengke d339cd922f Task 综合公开2 7 ay önce
  zhaodengke f74cc7873b Task 综合公开2 7 ay önce
  zhaodengke c2c110b264 Task 综合公开 7 ay önce
  zhaodengke e3b59e29e2 Task 综合公开 7 ay önce
  yangfuda e35f8d2818 银农:增加待支付和支付记录模块 7 ay önce
  yangfuda b5eecae044 银农:增加待支付和支付记录模块 7 ay önce
  yangfuda 47fa66f775 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 8 ay önce
  yangfuda 5921895f02 银农:完善待办已办 8 ay önce
  张泽亮 70cedf603e 向store塞入用户deptID 8 ay önce
  zhaodengke 6a9b8e80f3 Task 事项 8 ay önce
  庞东旭 c9700d8352 task 银农手机端待办事项列表问题修改 9 ay önce
  庞东旭 9b8467de2b Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 9 ay önce
  庞东旭 5e8d0c703c task 乳山产交短信验证码登录修复 9 ay önce
  zhaodengke ae2f146038 Task 事项 9 ay önce
  zhaodengke b18d331970 Bug 错误时列表无限刷新 9 ay önce
  zhaodengke bc82f96296 Bug 错误时列表无限刷新 9 ay önce
  zhaodengke 8c186903bf Task 合同签订审批 9 ay önce
  zhaodengke f9cf321c86 Task 资产处置审批 9 ay önce
  zhaodengke 5222fc1bf6 Task 资产处置审批 9 ay önce
  zhaodengke 90d4a8f718 Task 用章事项审批 9 ay önce
  庞东旭 ce6ca50fa7 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 9 ay önce
  庞东旭 159c101ea0 task 银农手机端工作台顶部账套所属切换 9 ay önce
  zhaodengke 48318dea6f Task 重大事项审批 9 ay önce
  庞东旭 1548736156 task 乳山产交 9 ay önce
  庞东旭 ba45c62833 task 22985 【首页】【新闻资讯】——缺少【更多】功能,及相应列表 9 ay önce
  庞东旭 2e53fdfa52 task 产交手机端问题修改 9 ay önce
  庞东旭 37882f3f2d Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 9 ay önce
  庞东旭 3a87164965 task 产交手机端问题修改 9 ay önce
  张泽亮 24af5b062a 提交 注释地名 9 ay önce
  zhaodengke 045f43ed27 Task 零工事项 9 ay önce
  zhaodengke b16e2b44cf Task 零工事项 9 ay önce
  zhaodengke 2ab6b94d30 Task master同步 9 ay önce
  zhaodengke 99ff9aee2b Task 游客零工公开 9 ay önce
  zhaodengke 82b0050c9d Task 游客零工公开 9 ay önce
  zhaodengke fa66565219 Task 个人零工公开 9 ay önce
  zhaodengke 024f389d52 Task 零工登记 9 ay önce
  zhaodengke 5917cdf724 Task 零工公开 9 ay önce
  Xyq123* d96ed41928 阳光村务-增加事中、事后公开字段 10 ay önce
  庞东旭 2e2cbd613a task 银农已办 10 ay önce
  庞东旭 5bd8315763 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 10 ay önce
  庞东旭 c686863db1 task 产权交易手机端、阳光村务手机端 升级 10 ay önce
  张泽亮 a5ef7f65e6 bug 待办不分系统 11 ay önce
  张泽亮 6a95515f35 bug deptId 初始化 11 ay önce
  庞东旭 2d86ba3d71 task 银农待办优化 11 ay önce
  庞东旭 848d7e0c8f Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 11 ay önce
  庞东旭 b739a251aa task 乳山产交图标 11 ay önce
  庞东旭 922f6bf8b7 task 银农待办优化 11 ay önce
  QI_YUJIE f9d0eee602 task 银农直联 资金申请审批bug修改 11 ay önce
  QI_YUJIE feea9dfd47 task 银农直联 资金申请审批查看附件 11 ay önce
  张泽亮 a39865b2fe 去掉老流程的方法 ,没有同步升级手机端!!! 11 ay önce
  QI_YUJIE 85dc13c1e2 task 银农直联 资金审批申请 11 ay önce
  yangfuda 8c5b3d6d41 银农:审批历史查看问题修复 1 yıl önce
  yangfuda de3a5ceaa9 银农:审批流程入参bug修复 1 yıl önce
  张泽亮 9c075ecbad 审批流程入参bug修复 1 yıl önce
  yangfuda 69ec4c89d8 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 1 yıl önce
  yangfuda cf92eddc73 银农:完善待办已办 1 yıl önce
  张泽亮 06c293a7bc 文案 1 yıl önce
  庞东旭 a61c072392 task 乳山产交 价格指数 1 yıl önce
  庞东旭 530c35fcc0 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 yıl önce
  庞东旭 24936d6de4 task 银农登录 页面适配优化 1 yıl önce
  yangfuda ef2ee0dda7 Merge remote-tracking branch 'origin/rongxin_dev' into rongxin_dev 1 yıl önce
  yangfuda efc1eeded4 银农:申请单中显示付款账户余额 1 yıl önce
  庞东旭 ce42cda755 task 阳光村务 惠农资金公开 1 yıl önce
  庞东旭 6d5fecb9d0 task 乳山产交 倒计时定时器清理处理 1 yıl önce
  庞东旭 dc2ddc4679 task 乳山产交 报名用户审核字段判断 1 yıl önce
  zhaodengke fec99c5922 Task 资产地图 1 yıl önce
  庞东旭 860b3bee03 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 yıl önce
  庞东旭 a03f0a0b74 task 乳山产交 增加新闻附件显示 1 yıl önce
  QI_YUJIE 116ad1ddcf task 土地确权 发包方功能调整 1 yıl önce
  庞东旭 47265576b9 task 乳山产交 线下竞价判断 1 yıl önce
  QI_YUJIE 2fe9bee560 task 土地确权 承包地块功能调整 1 yıl önce
  QI_YUJIE c3cf55d86f task 土地确权 承包方整户状态 1 yıl önce
  QI_YUJIE 336afae336 task 土地确权 承包地块功能调整 1 yıl önce
  张泽亮 5144b669b5 文案 1 yıl önce
  QI_YUJIE d8b9276f3e task 土地确权 承包合同功能调整 1 yıl önce
  QI_YUJIE 4c58d88f95 task 土地确权 承包方家庭成员功能调整 1 yıl önce
  QI_YUJIE 66e9c9cb5c task 土地确权 承包方信息功能调整 1 yıl önce
  Xyq123* adb3396a34 二轮延包-承包方、承包方家庭成员字段 1 yıl önce
  庞东旭 e1827dc2cd task 全局API使用修改 1 yıl önce
  庞东旭 5260e60645 Merge branch 'rongxin_dev' of http://218.59.175.43:3000/zhangzl/nsgk_mobile into rongxin_dev 1 yıl önce
  庞东旭 328431a3b5 task 全局API使用修改 1 yıl önce
  Xyq123* fc3d2d6da7 银农-银行转账申请、备付金支出申请测试问题处理 1 yıl önce
  Xyq123* 94e44175c1 银农-银行转账申请、备付金支出申请测试问题处理 1 yıl önce
  Xyq123* d10ffafad4 银农-银行转账申请、备付金支出申请测试问题处理 1 yıl önce
  Xyq123* 8fc5b9fac0 银农-银行转账申请、备付金支出申请测试问题处理 1 yıl önce
  庞东旭 a123148d31 Merge branch 'rongxin_dev' of http://116.255.223.226:3000/zhangzl/nsgk_mobile into rongxin_dev 1 yıl önce
  庞东旭 a4520f584f task 虫害APP页面切图 1 yıl önce
  yangfuda a1454d46de 银农:新增收款方-自动拆分收款方、收款账号 1 yıl önce
  zhaodengke 66381130b6 Task 资产地图 1 yıl önce
  庞东旭 d619060552 task 银农事项审批页面升级 个人中心待办已办数据对接 1 yıl önce
  庞东旭 e965bb25e5 Merge branch 'rongxin_dev' of http://116.255.223.226:3000/zhangzl/nsgk_mobile into rongxin_dev 1 yıl önce
  庞东旭 ffcedbfc75 task 银农事项审批页面升级 1 yıl önce
  Xyq123* 1ac5334095 银农-银行转账申请、备付金支出申请自定义审批 1 yıl önce
  庞东旭 f7b3e3aedd task 虫害APP 1 yıl önce
  庞东旭 a765092dd8 task 阳光村务: 1 yıl önce
  庞东旭 5ecff83ce2 task 乳山产交 开户省市JSON修改 1 yıl önce
  Xyq123* 72d6bb73e9 宅基地系统-手机端宅基地申请、退出、有偿使用复测问题修改 1 yıl önce
  QI_YUJIE 7085267711 task 产权交易系统 会员注册查看新版审批流程 1 yıl önce
  Xyq123* 37fdf8ea13 宅基地系统-手机端宅基地申请、退出测试记录问题修改 1 yıl önce
  张泽亮 5335d3d07a Merge branch 'master' into rongxin_dev 1 yıl önce
  Xyq123* 254461a90f 宅基地系统-宅基地退出优化 1 yıl önce
  Xyq123* de4fbcfec2 宅基地系统-宅基地申请文件验证 1 yıl önce
  Xyq123* c2cec50255 宅基地系统-自定义审批、收费计划 1 yıl önce
  makaba 39a36bed3c task 阳光村务 新增 收支表 盈余表 公开表 1 yıl önce
  makaba 2e1b4f7f60 task 收支表 盈余表 公开表 图片 1 yıl önce
  张泽亮 f209f674ed Merge branch 'master' into rongxin_dev 1 yıl önce
  makaba c49f26dbf9 task 合同信息 借款计划 新增附件 1 yıl önce
100 değiştirilmiş dosya ile 3732 ekleme ve 459 silme
  1. +1
    -1
      config/index.js
  2. +5
    -3
      index.html
  3. +24
    -32
      package-lock.json
  4. +2
    -2
      package.json
  5. +17
    -0
      src/api/audit/aaudit.js
  6. +44
    -0
      src/api/audit/aauditmodel.js
  7. +76
    -0
      src/api/audit/aauditpipeline.js
  8. +1
    -1
      src/api/contracted/cbf.js
  9. +9
    -0
      src/api/finance/voucher.js
  10. +4
    -0
      src/api/homesteadSurvey/zjdzd.js
  11. +34
    -0
      src/api/notice/index.js
  12. +80
    -0
      src/api/onlineHome/bankAgriculture/cashExpense.js
  13. +78
    -11
      src/api/onlineHome/bankAgriculture/paymentApproval.js
  14. +16
    -2
      src/api/onlineHome/homestead/paidUtilize.js
  15. +64
    -0
      src/api/onlineHome/homestead/ycsysfmx.js
  16. +12
    -0
      src/api/onlineHome/villageAffairs.js
  17. +8
    -0
      src/api/register/index.js
  18. +272
    -0
      src/api/sunVillage_info/fixedAssets.js
  19. +33
    -0
      src/api/sunVillage_info/homestead/application.js
  20. +6
    -1
      src/api/sunVillage_info/homestead/paidExit.js
  21. +65
    -0
      src/api/sunVillage_info/otherOpen.js
  22. +46
    -0
      src/api/sunVillage_info/registration.js
  23. +19
    -0
      src/api/sunVillage_info/subcontract.js
  24. +98
    -0
      src/api/sunVillage_info/three.js
  25. +22
    -13
      src/api/user/index.js
  26. +29
    -0
      src/api/yinnong/yinnongApproval.js
  27. BIN
      src/assets/images/finance/theApproved.png
  28. BIN
      src/assets/images/icon/index_header_focus.png
  29. BIN
      src/assets/images/location/mark.png
  30. BIN
      src/assets/images/sunVillage_info/PDF.png
  31. BIN
      src/assets/images/sunVillage_info/PPT.png
  32. BIN
      src/assets/images/sunVillage_info/RAR.png
  33. BIN
      src/assets/images/sunVillage_info/icon-s-attachment.png
  34. BIN
      src/assets/images/sunVillage_info/icon-s-filter.png
  35. BIN
      src/assets/images/sunVillage_info/icon-s-fliter.png
  36. BIN
      src/assets/images/sunVillage_info/icon-s-rmb.png
  37. BIN
      src/assets/images/sunVillage_info/icon_registration.png
  38. BIN
      src/assets/images/sunVillage_info/index_block_27.png
  39. BIN
      src/assets/images/sunVillage_info/index_block_28.png
  40. BIN
      src/assets/images/sunVillage_info/index_block_29.png
  41. BIN
      src/assets/images/sunVillage_info/index_block_30.png
  42. BIN
      src/assets/images/sunVillage_info/index_block_31.png
  43. BIN
      src/assets/images/sunVillage_info/index_block_zonghegongkai.png
  44. BIN
      src/assets/images/sunVillage_info/index_code_btn_15.png
  45. BIN
      src/assets/images/sunVillage_info/index_code_btn_16.png
  46. BIN
      src/assets/images/sunVillage_info/index_code_btn_17.png
  47. BIN
      src/assets/images/sunVillage_info/index_code_btn_18.png
  48. BIN
      src/assets/images/sunVillage_info/index_code_btn_19.png
  49. BIN
      src/assets/images/sunVillage_info/index_code_btn_zonghegongkai.png
  50. BIN
      src/assets/images/sunVillage_info/index_icon_14.png
  51. BIN
      src/assets/images/sunVillage_info/index_icon_15.png
  52. BIN
      src/assets/images/sunVillage_info/signature_icon_01z.png
  53. BIN
      src/assets/images/weather/tianqi-baoxue.png
  54. BIN
      src/assets/images/weather/tianqi-baoyu.png
  55. BIN
      src/assets/images/weather/tianqi-daxue.png
  56. BIN
      src/assets/images/weather/tianqi-dayu.png
  57. BIN
      src/assets/images/weather/tianqi-duoyun.png
  58. BIN
      src/assets/images/weather/tianqi-feng.png
  59. BIN
      src/assets/images/weather/tianqi-fuchen.png
  60. BIN
      src/assets/images/weather/tianqi-leizhenyu.png
  61. BIN
      src/assets/images/weather/tianqi-qing.png
  62. BIN
      src/assets/images/weather/tianqi-shachenbao.png
  63. BIN
      src/assets/images/weather/tianqi-wu.png
  64. BIN
      src/assets/images/weather/tianqi-wumai.png
  65. BIN
      src/assets/images/weather/tianqi-xiaoxue.png
  66. BIN
      src/assets/images/weather/tianqi-xiaoyu.png
  67. BIN
      src/assets/images/weather/tianqi-yangsha.png
  68. BIN
      src/assets/images/weather/tianqi-yin.png
  69. BIN
      src/assets/images/weather/tianqi-zhenxue.png
  70. BIN
      src/assets/images/weather/tianqi-zhenyu.png
  71. BIN
      src/assets/images/weather/tianqi-zhongxue.png
  72. BIN
      src/assets/images/weather/tianqi-zhongyu.png
  73. +5
    -0
      src/assets/maps/plotPremises_huancui.json
  74. +5
    -0
      src/assets/maps/qu_huancui.json
  75. +215
    -3
      src/components/Map/MapGisLine.vue
  76. +214
    -2
      src/components/Map/MapGisTagDTGCopy.vue
  77. +205
    -0
      src/components/common/PagedList.vue
  78. +219
    -0
      src/components/common/Selector.vue
  79. +112
    -0
      src/components/common/nav_bar.vue
  80. +5
    -4
      src/components/common/nav_footer.vue
  81. +160
    -0
      src/components/form/CommonUpload.vue
  82. +5
    -0
      src/components/form/FieldDatePicker.vue
  83. +2
    -0
      src/components/form/FieldSelect.vue
  84. +11
    -2
      src/components/form/SubjectTreeChooser.vue
  85. +254
    -226
      src/components/home/HomeApplyUploadComp.vue
  86. +4
    -4
      src/components/home/HomeApplyUploadCompTc.vue
  87. +1
    -2
      src/components/house/CommonMap.vue
  88. +6
    -6
      src/components/house/MultiImageUploadComp.vue
  89. +69
    -4
      src/permission.js
  90. +751
    -21
      src/router/index.js
  91. +8
    -1
      src/store/modules/user.js
  92. +21
    -0
      src/utils/finance.js
  93. +0
    -2
      src/utils/global.js
  94. +12
    -5
      src/utils/request.js
  95. +53
    -96
      src/views/biddingHall/index.vue
  96. +18
    -6
      src/views/contracted/village/contractor/contractWord.vue
  97. +1
    -1
      src/views/contracted/village/contractor/contractor.vue
  98. +113
    -2
      src/views/contracted/village/contractor/contractorDetail.vue
  99. +133
    -3
      src/views/contracted/village/contractor/contractorDetailAdd.vue
  100. +65
    -3
      src/views/contracted/village/contractor/contractorFamily.vue

+ 1
- 1
config/index.js Dosyayı Görüntüle

@@ -12,7 +12,7 @@ module.exports = {
proxyTable: {
"/api": {
// 请求的目标主机
// target: 'http://116.255.223.226:8082/nsgk_test/', // 公网测试环境
//target: 'http://218.59.175.44:8082/nsgk_test/', // 公网测试环境
// target: `http://192.168.0.116:8091/nsgk_api/`, // 内网测试环境
target: 'http://localhost:8080/',
//target: 'http://192.168.0.106:8080/',


+ 5
- 3
index.html Dosyayı Görüntüle

@@ -3,13 +3,15 @@

<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1.0,maximum=scale=1.0" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1.0,maximum=scale=1.0" />
<!--<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">-->
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico">
<script src="/static/js/ol.js"></script>
<!-- <script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=cc4aba6e967096098249efa069733067"></script>-->
<script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=XzwOBaO4CElCsPdl8LIFEvv5rTemG6w1"></script>
<title>农燊高科</title>
<title>COMPANY</title>
</head>

<body>


+ 24
- 32
package-lock.json Dosyayı Görüntüle

@@ -5,25 +5,20 @@
"requires": true,
"dependencies": {
"@babel/runtime": {
"version": "7.13.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz",
"integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==",
"version": "7.24.4",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.4.tgz",
"integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
"requires": {
"regenerator-runtime": "^0.13.4"
"regenerator-runtime": "^0.14.0"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
}
}
},
"@popperjs/core": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.0.tgz",
"integrity": "sha512-wjtKehFAIARq2OxK8j3JrggNlEslJfNuSm2ArteIbKyRMts2g0a7KzTxfRVNUM+O0gnBJ2hNV8nWPOYBgI1sew=="
},
"@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@@ -41,22 +36,19 @@
"integrity": "sha512-efv7Yl/OTHjyy0irhJJPtgZb5mJZmroEtVOa8vkGRNTLY93+NgEcVuIBaC35hYCMsTrPHDQRvQGnI9Hyhtto0Q=="
},
"@vant/icons": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@vant/icons/-/icons-1.5.2.tgz",
"integrity": "sha512-Gy2mFIgObvCh1azp6LklQYsNFrCjMLxf/mEzHD6WV0pZbMBNjsb7bWvAjPo3Wygo9IVtGqi/36wrtosv3PkyRg=="
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-3.0.2.tgz",
"integrity": "sha512-4OlRVMd0uiDtD9hgSISZW8hB95vU0fFtc41tQchRIyiXkR0tS+DydZOLb8/bQkithrNWhW7Uud38MbKjlJ9lJw=="
},
"@vant/popperjs": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.0.4.tgz",
"integrity": "sha512-bqbmOoX0kYexGw65awNX9wxePR0ZIdTlVP+7JRahrbUjKW0+HxC2T27NE90cCDmqiFL/6+QYazhLvVa436jV0A==",
"requires": {
"@popperjs/core": "^2.5.4"
}
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
"integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA=="
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
},
"@zxing/library": {
"version": "0.18.6",
@@ -4286,7 +4278,7 @@
"fastclick": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/fastclick/-/fastclick-1.0.6.tgz",
"integrity": "sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo=",
"integrity": "sha512-cXyDBT4g0uWl/Xe75QspBDAgAWQ0lkPi/zgp6YFEUHj6WV6VIZl7R6TiDZhdOVU3W4ehp/8tG61Jev1jit+ztQ==",
"dev": true
},
"fastparse": {
@@ -4441,7 +4433,7 @@
"font-awesome.css": {
"version": "4.7.2",
"resolved": "https://registry.npmjs.org/font-awesome.css/-/font-awesome.css-4.7.2.tgz",
"integrity": "sha1-B1pCARQo8gJyVO9phgx1ergWyVI="
"integrity": "sha512-FIyRbig4PDY15NGzejM3b8OQ/lWvId8PHnE4CnuDtc8/YYs07cvnqLCyfvIJPwJl5SA/Rq+9jAe9W+Fr1pv0DA=="
},
"for-in": {
"version": "1.0.2",
@@ -12277,13 +12269,13 @@
}
},
"vant": {
"version": "2.12.8",
"resolved": "https://registry.npmjs.org/vant/-/vant-2.12.8.tgz",
"integrity": "sha512-2Rs/LDGg+Dz2AbWRM88EmnH1OTDSB1vcWFZ8pIlHEUraLUM6SvwsqtMpLrnn15KZA1RToeKbrv0MZOVfzoEpSQ==",
"version": "2.13.2",
"resolved": "https://registry.npmmirror.com/vant/-/vant-2.13.2.tgz",
"integrity": "sha512-anZbbLqXCq+rUJk10D67mn+V/1/i9tfOTdoR+64B0e+0BzV3KFgpHBF76noLa+yX9i/L+8DeL560WMk0GEN38g==",
"requires": {
"@babel/runtime": "7.x",
"@vant/icons": "1.5.2",
"@vant/popperjs": "^1.0.0",
"@vant/icons": "^3.0.2",
"@vant/popperjs": "^1.1.0",
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"vue-lazyload": "1.2.3"
}
@@ -12360,7 +12352,7 @@
"vue-html5-editor": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/vue-html5-editor/-/vue-html5-editor-1.1.1.tgz",
"integrity": "sha1-WRAhCoMNjI00eaHx/shHMZKqA7M=",
"integrity": "sha512-Ckmb8djta+XQMUQaxRcCUNBXEzjPF5p6c2nQ5ICcIuR8eYz4b0HAGzXlSDfL3ZxkrVHO2Hx0VrUORLu2Lwem4g==",
"dev": true
},
"vue-lazyload": {


+ 2
- 2
package.json Dosyayı Görüntüle

@@ -10,9 +10,9 @@
"build": "node build/build.js"
},
"dependencies": {
"bignumber.js": "^9.1.2",
"@vant/area-data": "^1.2.2",
"axios": "^0.21.1",
"bignumber.js": "^9.1.2",
"echarts": "^5.3.3",
"element-ui": "^2.15.6",
"font-awesome": "^4.7.0",
@@ -29,7 +29,7 @@
"quill": "^1.3.7",
"sass": "^1.32.8",
"sass-loader": "^6.0.6",
"vant": "^2.12.8",
"vant": "^2.13.2",
"vue": "^2.5.2",
"vue-baidu-map": "^0.21.22",
"vue-cookies": "^1.7.4",


+ 17
- 0
src/api/audit/aaudit.js Dosyayı Görüntüle

@@ -0,0 +1,17 @@
export const AAUDIT_INTENT = {
NONE: '', // 无
VIEW: 'VIEW', // 查看
AUDIT: 'audit', // 审批
HISTORY: 'history', // 审批历史
PIPELINE: 'pipeline', // 审批流程图
};
export const AAUDIT_STATUS = {
/* READY : "1", // 未提交
AUDITING : "3", // 审批中
PASS : "5", // 审批通过
REJECT : "7", // 审批驳回 */
READY : "0", // 未提交
AUDITING : "1", // 审批中
PASS : "3", // 审批通过
REJECT : "2", // 审批驳回
};

+ 44
- 0
src/api/audit/aauditmodel.js Dosyayı Görüntüle

@@ -0,0 +1,44 @@
import request from '@/utils/request'

// 查询审批模板列表
export function A_listAuditModel(query) {
return request({
url: '/open/home/mobile/modelList',
method: 'get',
params: query
})
}

// 查询审批模板详细
export function A_getAuditModel(id) {
return request({
url: '/approval/auditmodel/get/' + id,
method: 'get'
})
}

// 新增审批模板
export function A_addAuditModel(data) {
return request({
url: '/approval/auditmodel/add',
method: 'post',
data: data
})
}

// 修改审批模板
export function A_updateAuditModel(data) {
return request({
url: '/approval/auditmodel/edit',
method: 'post',
data: data
})
}

// 删除审批模板
export function A_deleteAuditModel(id) {
return request({
url: '/approval/auditmodel/remove/' + id,
method: 'post'
})
}

+ 76
- 0
src/api/audit/aauditpipeline.js Dosyayı Görüntüle

@@ -0,0 +1,76 @@
import request from '@/utils/request'

// 我的待办列表
export function A_myTodoList(query) {
return request({
url: '/approval/audit/todoList',
method: 'get',
params: query
})
}

// 我的已办列表
export function A_myDoneList(query) {
return request({
url: '/approval/audit/doneList',
method: 'get',
params: query
})
}

// 审批历史列表
export function A_auditHistoryList(id, query) {
return request({
url: '/approval/audit/historyList/' + id,
method: 'get',
params: query
})
}

// 获取后台流程图地址
export function A_pipelineImageUrl(no, format = 'png') {
return `/approval/audit/pipeline/${no}.${format}`;
}

// 审批状态列表
export function A_pipelineState(no) {
return request({
url: '/approval/audit/pipelineState/' + no,
method: 'get',
})
}

// 审批批次列表
export function A_auditBatchList(no) {
return request({
url: '/approval/audit/auditBatchList/' + no,
method: 'get',
})
}

// 审批历史详情
export function A_auditHistoryDetail(id, parms) {
return request({
url: '/approval/audit/history/' + id,
method: 'get',
params: parms,
})
}

// 审批
export function A_audit(data) {
return request({
url: '/approval/audit/audit',
method: 'post',
data: data,
})
}

// 提交
export function A_start(data) {
return request({
url: '/open/home/mobile/start',
method: 'post',
data: data,
})
}

+ 1
- 1
src/api/contracted/cbf.js Dosyayı Görüntüle

@@ -46,7 +46,7 @@ export function updateCbf(data) {
// 删除承包方信息
export function deleteCbf(id) {
return request({
url: '/service/cbf/mobile/remove/' + id,
url: '/service/cbf/delete/' + id,
method: 'get'
});
}


+ 9
- 0
src/api/finance/voucher.js Dosyayı Görüntüle

@@ -0,0 +1,9 @@
import request from '@/utils/request'

export const voucherList = (data) => {
return request({
url: '/finance/voucher/list',
method: 'get',
params: data
})
}

+ 4
- 0
src/api/homesteadSurvey/zjdzd.js Dosyayı Görüntüle

@@ -114,3 +114,7 @@ export function surveyInspectByZjddm(zjddm) {
method: 'get'
})
}

export function submitUploadImageList() {
// missing???
}

+ 34
- 0
src/api/notice/index.js Dosyayı Görüntüle

@@ -27,6 +27,40 @@ export function Attestation(query) {
})
}

//终止公告
export function outProjectTerminate(query) {
return request({
url: '/transaction/website/outproject/terminate',
method: 'get',
params: query
})
}

//终止公告
export function outProjectDetail(id) {
return request({
url: '/transaction/website/outproject/terminate/id/'+id,
method: 'get'
})
}

//终止公告
export function outProjectException(query) {
return request({
url: '/transaction/website/outproject/exception',
method: 'get',
params: query
})
}

//终止公告
export function outProjectExceptionDetail(id) {
return request({
url: '/transaction/website/outproject/exception/id/'+id,
method: 'get'
})
}

//成交公告
export function noticeDetails(id) {
return request({


+ 80
- 0
src/api/onlineHome/bankAgriculture/cashExpense.js Dosyayı Görüntüle

@@ -0,0 +1,80 @@
import request from '@/utils/request'

// 查询资金审批申请列表
export function listCashExpense(query) {
return request({
url: '/yinnong/cashExpense/list',
method: 'get',
params: query
})
}

// 统计查询资金审批申请列表
export function statisticCashExpense(query) {
return request({
url: '/yinnong/cashExpense/statistic',
method: 'get',
params: query
})
}

// 导出资金审批申请
export function exportCashExpense(query) {
return request({
url: '/yinnong/cashExpense/export',
method: 'get',
params: query
})
}

// 查询资金审批申请详细
export function getCashExpense(id) {
return request({
url: '/yinnong/cashExpense/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 新增资金审批申请
export function addCashExpense(data) {
return request({
url: '/yinnong/cashExpense/add',
method: 'post',
data: data
})
}

// 修改资金审批申请
export function updateCashExpense(data) {
return request({
url: '/yinnong/cashExpense/edit',
method: 'post',
data: data
})
}

// 删除资金审批申请
export function delCashExpense(id) {
return request({
url: '/yinnong/cashExpense/remove/' + id,
method: 'get'
})
}

// 资金申请审批
export function applyCashExpense(id) {
return request({
url: '/yinnong/cashExpense/submitApply/' + id,
method: 'get'
});
}

// 撤销资金申请审批
export function revokeCashExpense(id) {
return request({
url: '/yinnong/cashExpense/revokeApply/' + id,
method: 'get'
});
}


+ 78
- 11
src/api/onlineHome/bankAgriculture/paymentApproval.js Dosyayı Görüntüle

@@ -8,6 +8,58 @@ export function listTransfer(query) {
params: query
})
}
// 查询银行转账待支付列表
export function payList(query) {
return request({
url: '/yinnong/transfer/payList',
method: 'get',
params: query
})
}
// 查询银行转账支付记录列表
export function payRecordList(query) {
return request({
url: '/yinnong/transfer/payRecordList',
method: 'get',
params: query
})
}
// 支付
export function pay(query) {
return request({
url: '/yinnong/transfer/pay',
method: 'get',
params: query
})
}
export function sendSms(query) {
return request({
url: '/yinnong/transfer/sendSms',
method: 'get',
params: query
})
}
// 核实结果
export function transactionStatusQuery(id) {
return request({
url: '/yinnong/transfer/transactionStatusQuery/' + id,
method: 'get'
})
}
// 支付复核
export function editDoubleConfirmationStatus(id) {
return request({
url: '/yinnong/transfer/editDoubleConfirmationStatus/' + id,
method: 'get'
})
}
// 重置银行转账=撤回
export function resetTYinnongTransfer(id) {
return request({
url: '/yinnong/transfer/resetTYinnongTransfer/' + id,
method: 'get'
})
}
// 查询现金提现申请列表
export function listCash(query) {
return request({
@@ -23,16 +75,17 @@ export function getTransfer(id) {
method: 'get'
})
}
export function transactionStatusQuery(id) {
//重新申请
export function reapply(id) {
return request({
url: '/yinnong/transfer/transactionStatusQuery/' + id,
url: '/yinnong/transfer/reapply/' + id,
method: 'get'
})
}
export function reapply(id) {
//取消支付
export function reapplyDraft(id) {
return request({
url: '/yinnong/transfer/reapply/' + id,
url: '/yinnong/transfer/reapplyDraft/' + id,
method: 'get'
})
}
@@ -194,7 +247,7 @@ export function addCashdetail(data) {
// 查询转账账户详情详细
export function getTransferProcess(id) {
return request({
url: '/yinnong/transfer/getProcessSchedule/' + id,
url: '/yinnong/transfer/getProcessScheduleInfoNew/' + id,
method: 'get'
})
}
@@ -223,12 +276,12 @@ export function getQmyeFlow(id) {
})
}

// 查询当前账期余额
// 审批
export function approval(data) {
return request({
url: '/activiti/process/complete',
url: '/approval/audit/audit',
method: 'post',
params:data
data:data
})
}

@@ -316,6 +369,13 @@ export function getTransferProcess1(id) {
method: 'get'
})
}
// 查询出纳账户设置详细
export function getCashierAccount(id) {
return request({
url: '/cashier/account/get/' + id,
method: 'get'
})
}

// 查询出纳账户设置列表
export function listAccount(query) {
@@ -388,8 +448,15 @@ export function addMajorevent(data) {
// 提交审批
export function customSubmitMajorevent(id) {
return request({
url: '/yinnong/majorevent/customSubmit/' + id,
method: 'post'
url: '/yinnong/majorevent/customSubmitNew/' + id,
method: 'get'
})
}
// 撤回
export function updateTYinnongMajoreventFoStatus(id) {
return request({
url: '/yinnong/majorevent/updateTYinnongMajoreventFoStatus/' + id,
method: 'get'
})
}
// 查询重大事项申请详细


+ 16
- 2
src/api/onlineHome/homestead/paidUtilize.js Dosyayı Görüntüle

@@ -43,8 +43,22 @@ export function ycsyAdd(data){
data:data
})
}


// 生成收费计划
export function generateFeePlan(data) {
return request({
url: '/home/ycsy/generateFeePlan',
method: 'post',
data: data
})
}
//有偿使用超期
export function overdueList(data) {
return request({
url:'/home/ycsy/overdueList',
method:'get',
params:data
})
}
//使用权人查询
export function listByDeptId(){
return request({


+ 64
- 0
src/api/onlineHome/homestead/ycsysfmx.js Dosyayı Görüntüle

@@ -0,0 +1,64 @@
import request from '@/utils/request'

// 查询有偿收费明细列表
export function listYcsysfmx(query) {
return request({
url: '/home/ycsysfmx/list',
method: 'get',
params: query
})
}

// 统计查询有偿收费明细列表
export function statisticYcsysfmx(query) {
return request({
url: '/home/ycsysfmx/statistic',
method: 'get',
params: query
})
}

// 导出有偿收费明细
export function exportYcsysfmx(query) {
return request({
url: '/home/ycsysfmx/export',
method: 'get',
params: query
})
}

// 查询有偿收费明细详细
export function getYcsysfmx(id) {
return request({
url: '/home/ycsysfmx/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 新增有偿收费明细
export function addYcsysfmx(data) {
return request({
url: '/home/ycsysfmx/add',
method: 'post',
data: data
})
}

// 修改有偿收费明细
export function updateYcsysfmx(data) {
return request({
url: '/home/ycsysfmx/edit',
method: 'post',
data: data
})
}

// 删除有偿收费明细
export function delYcsysfmx(id) {
return request({
url: '/home/ycsysfmx/remove/' + id,
method: 'get'
})
}


+ 12
- 0
src/api/onlineHome/villageAffairs.js Dosyayı Görüntüle

@@ -17,3 +17,15 @@ export function getVillageAffairs(id) {
})
}

// 查询地区下的账套列表
export function bookListByDept(deptId, bookType) {
console.log(deptId);
return request({
url: '/open/villageAffairs/public/bookList/' + deptId,
method: 'get',
params: {
bookType,
},
})
}


+ 8
- 0
src/api/register/index.js Dosyayı Görüntüle

@@ -70,3 +70,11 @@ export function depositList(query) {
})
}

export function farmerLogin(data) {
return request({
url: '/register/farmerLogin',
method: 'post',
data: data,
})
}


+ 272
- 0
src/api/sunVillage_info/fixedAssets.js Dosyayı Görüntüle

@@ -279,6 +279,45 @@ export function majorEventPublicList(query) {
params: query
})
}
// 重要事项公开列表
export function importantList(query) {
return request({
url: '/open/villageAffairs/public/importantList',
method: 'get',
params: query
})
}
// 重要事项公开详情
export function importantDetail(query) {
return request({
url: '/open/villageAffairs/public/importantDetail',
method: 'get',
params: query
})
}
// 重要事项公开新增
export function subcontractAdd(data) {
return request({
url: '/subcontract/event/add',
method: 'post',
data: data
})
}
// 重要事项公开修改
export function subcontractEdit(data) {
return request({
url: '/subcontract/event/edit',
method: 'post',
data: data
})
}
// 重要事项公开删除
export function subcontractRemove(id) {
return request({
url: '/subcontract/event/remove/' + id,
method: 'get'
})
}
// 财务公开详情
export function financePublicDetail(query) {
return request({
@@ -425,6 +464,15 @@ export function listOddjob(query) {
})
}

// 查询零工登记详细
export function getOddjobDetail(bookId, id) {
return request({
url: '/open/villageAffairs/public/oddjobDetail',
method: 'get',
params: {bookId, id},
})
}

// 新增零工登记
export function addOddjob(data) {
return request({
@@ -1210,3 +1258,227 @@ export const assetLiabilityReportByExpTpl = (data) => {
params: data
})
}

// 查询四议两公开列表
export function listOther(query) {
return request({
url: '/subcontract/other/list',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function listSiyigongkai(query) {
return request({
url: '/subcontract/siyigongkai/list',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function listOtherOpen(query) {
return request({
url: '/open/villageAffairs/public/otherPublicList',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function listSiyigongkaiOpen(query) {
return request({
url: '/open/villageAffairs/public/siyigongkaiList',
method: 'get',
params: query
})
}

// 查询四议两公开详细
export function otherPublicDetailN(id) {
return request({
url: '/open/villageAffairs/public/otherPublicDetail?id=' + id,
method: 'get'
})
}

// 查询四议两公开详细
export function otherPublicDetailOpen(id) {
return request({
url: '/open/villageAffairs/public/otherPublicDetail?id=' + id,
method: 'get'
})
}

// 查询四议两公开详细
export function getSiyigongkai(id) {
return request({
url: '/subcontract/siyigongkai/get/' + id,
method: 'get'
})
}

// 查询四议两公开详细
export function getSiyigongkaiOpen(id, bookId) {
return request({
url: '/open/villageAffairs/public/siyigongkaiDetail',
method: 'get',
params: { id, bookId }
})
}

// 修改四议两公开
export function updateSiyigongkai(data) {
return request({
url: '/subcontract/siyigongkai/edit',
method: 'post',
data: data
})
}

// 新增四议两公开
export function addSiyigongkai(data) {
return request({
url: '/subcontract/siyigongkai/add',
method: 'post',
data: data
})
}

// 删除四议两公开
export function delSiyigongkai(id) {
return request({
url: '/subcontract/siyigongkai/remove/' + id,
method: 'get'
})
}

// 查询四议两公开列表
export function specialPublicityList(query) {
return request({
url: '/open/villageAffairs/public/specialPublicityList',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function specialPublicityDetail(query) {
return request({
url: '/open/villageAffairs/public/specialPublicityDetail',
method: 'get',
params: query
})
}
// 查询四议表决详情
export function specialPublicityVote(query) {
return request({
url: '/open/villageAffairs/public/specialVote',
method: 'get',
params: query
})
}
// 新增表决记录
export function votedetailAdd(data) {
return request({
url: '/open/villageAffairs/public/votedetailAdd',
method: 'post',
data: data
})
}

// 查询四议两公开列表
export function addReadCount(query) {
return request({
url: '/open/villageAffairs/public/addReadCount',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function specialPublicityEdit(data) {
return request({
url: '/subcontract/publicity/edit',
method: 'post',
data: data
})
}

// 查询四议两公开列表
export function specialPublicityAdd(data) {
return request({
url: '/subcontract/publicity/add',
method: 'post',
data: data
})
}

// 删除四议两公开
export function specialPublicityRemove(id) {
return request({
url: '/subcontract/publicity/remove/' + id,
method: 'get'
})
}

// 查询四议两公开列表
export function updateSpecialPublicityCount(query) {
return request({
url: '/open/villageAffairs/public/updateSpecialPublicityCount',
method: 'get',
params: query
})
}

// 收支明细公开
export function financialPublicDetailReport(query) {
return request({
url: '/open/finance/financialPublicDetailReport',
method: 'get',
params: query
})
}


// 收支明细公开
export function jyxzcqkgkList(query) {
return request({
url: '/open/asset/jyxzcqkgk/list',
method: 'get',
params: query
})
}

// 收支明细公开
export function jyxzyqkgkList(query) {
return request({
url: '/open/assetresource/jyxzyqkgk/list',
method: 'get',
params: query
})
}

export function jyxzcqkgkDetail(id) {
return request({
url: '/open/asset/jyxzcqkgk/detail/' + id,
method: 'get'
})
}

export function jyxzyqkgkDetail(id) {
return request({
url: '/open/assetresource/jyxzyqkgk/detail/' + id,
method: 'get'
})
}

// 收支明细公开
export function webList(query) {
return request({
url: '/open/typz/list',
method: 'get',
params: query
})
}

+ 33
- 0
src/api/sunVillage_info/homestead/application.js Dosyayı Görüntüle

@@ -196,6 +196,22 @@ export function customSubmitWLHT(id) {
method: 'post'
})
}
//新增地房申请(新)
export function submitApplication(id) {
return request({
url: '/open/home/mobile/submitApplication/' + id,
method: 'post'
})
}

// 新增地房申请-开工申请(新)
export function submitStart(id) {
return request({
url: '/open/home/mobile/submitStart/'+id,
method: 'post',
})
}

// 新增地房申请-开工申请
export function submitStartWLHT(id) {
return request({
@@ -213,6 +229,14 @@ export function updateStart(data) {
})
}

// 提交地房申请-验收意见(新)
export function submitCheck(id) {
return request({
url: '/open/home/mobile/submitCheck/'+id,
method: 'post',
})
}

// 提交地房申请-验收意见(乌兰浩特 简化流程)
export function submitEndWLHT(id) {
return request({
@@ -257,3 +281,12 @@ export function updateOpretion(id) {
method: 'post'
})
}


//获取用地建房申请状态信息
export function getHomeApplyStatus(id) {
return request({
url: '/open/home/mobile/homeApplyStatusNew/'+id,
method: 'get'
})
}

+ 6
- 1
src/api/sunVillage_info/homestead/paidExit.js Dosyayı Görüntüle

@@ -87,7 +87,12 @@ export function zyyctcApply(id){
method:'post',
})
}

export function zyyctcApplyNew(id){
return request({
url:'/open/home/mobile/paidExitSubmitApplyNew/'+id,
method:'post',
})
}
// 查询权利人列表
export function getShyqrs(query) {
return request({


+ 65
- 0
src/api/sunVillage_info/otherOpen.js Dosyayı Görüntüle

@@ -0,0 +1,65 @@
import request from '@/utils/request'

// 查询其他公开列表
export function listOther(query) {
return request({
url: '/subcontract/other/list',
method: 'get',
params: query
})
}

// 查询其他公开详细
export function getOther(id) {
return request({
url: '/subcontract/other/get/' + id,
method: 'get'
})
}

// 新增其他公开
export function addOther(data) {
return request({
url: '/subcontract/other/add',
method: 'post',
data: data
})
}

// 修改其他公开
export function updateOther(data) {
return request({
url: '/subcontract/other/edit',
method: 'post',
data: data
})
}

// 删除其他公开
export function delOther(id) {
return request({
url: '/subcontract/other/remove/' + id,
method: 'get'
})
}

// 查询其他公开列表 游客
export function otherOpenList(query) {
return request({
url: '/open/villageAffairs/public/otherPublicList',
method: 'get',
params: query
})
}

// 查询其他公开详细 游客
export function otherOpenDetail(id) {
return request({
url: '/open/villageAffairs/public/otherPublicDetail',
method: 'get',
params: {
id,
},
})
}


+ 46
- 0
src/api/sunVillage_info/registration.js Dosyayı Görüntüle

@@ -0,0 +1,46 @@
import request from '@/utils/request'

// 查询零工事项列表
export function listRegistration(query) {
return request({
url: '/subcontract/registration/list',
method: 'get',
params: query
})
}

// 查询零工事项详细
export function getRegistration(id) {
return request({
url: '/subcontract/registration/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 新增零工事项
export function addRegistration(data) {
return request({
url: '/subcontract/registration/add',
method: 'post',
data: data
})
}

// 修改零工事项
export function updateRegistration(data) {
return request({
url: '/subcontract/registration/edit',
method: 'post',
data: data
})
}

// 删除零工事项
export function delRegistration(id) {
return request({
url: '/subcontract/registration/remove/' + id,
method: 'get'
})
}


+ 19
- 0
src/api/sunVillage_info/subcontract.js Dosyayı Görüntüle

@@ -0,0 +1,19 @@
import request from '@/utils/request'

// 查询零工事项列表
export function registrationList(query) {
return request({
url: '/open/villageAffairs/public/registrationList',
method: 'get',
params: query
})
}

// 查询零工事项详细
export function registrationDetail(bookId, id) {
return request({
url: '/open/villageAffairs/public/registrationDetail',
method: 'get',
params: {bookId, id},
})
}

+ 98
- 0
src/api/sunVillage_info/three.js Dosyayı Görüntüle

@@ -0,0 +1,98 @@
import request from '@/utils/request'

// 查询三清台账列表
export function listThree(query) {
return request({
url: '/asset/three/list',
method: 'get',
params: query
})
}

// 统计查询三清台账列表
export function statisticThree(query) {
return request({
url: '/asset/three/statistic',
method: 'get',
params: query
})
}

// 导出三清台账
export function exportThree(query) {
return request({
url: '/asset/three/export',
method: 'get',
params: query
})
}

// 查询三清台账详细
export function getThree(id) {
return request({
url: '/asset/three/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 新增三清台账
export function addThree(data) {
return request({
url: '/asset/three/add',
method: 'post',
data: data
})
}

// 修改三清台账
export function updateThree(data) {
return request({
url: '/asset/three/edit',
method: 'post',
data: data
})
}

// 删除三清台账
export function delThree(id) {
return request({
url: '/asset/three/remove/' + id,
method: 'get'
})
}

// 清空空间字段
export function clearThreeGeom(id) {
return request({
url: '/asset/three/clear/' + id,
method: 'get',
})
}
//上传全局方法附件
export function commonAttach(data) {
return request({
url: '/common/attach',
method: 'post',
header: { "Content-Type": 'application/x-www-form-urlencoded' },
data: data
})
}
//查询已上传附件
export const attachmentList = (data) => {
return request({
url: '/system/attachment/query',
method: 'get',
params: data
})
}
//删除已上传附件
export function systemAttachment(ids) {
if (ids != undefined) {
return request({
url: '/system/attachment/remove/' + ids,
method: 'get'
})
}
}


+ 22
- 13
src/api/user/index.js Dosyayı Görüntüle

@@ -51,7 +51,7 @@ export function base64Attach(query){
export function deleteUserImg(id){
return request({
url: '/transaction/member/deleteImg/attachId/'+id,
method: 'delete',
method: 'get',
})
}

@@ -193,6 +193,15 @@ export function realtimeList(query){
})
}

// 查询审批历史
export function auditHistoryList(params) {
return request({
url: '/transaction/website/auditHistory/list',
method: 'get',
params: params
});
}

export const options = [
{
"value": "北京",
@@ -1289,23 +1298,23 @@ export const options = [
"value": "海东",
"label": "海东",
}, {
"value": "海北",
"label": "海北",
"value": "海北",
"label": "海北",
}, {
"value": "黄南",
"label": "黄南",
"value": "黄南",
"label": "黄南",
}, {
"value": "海南",
"label": "海南",
"value": "海南",
"label": "海南",
}, {
"value": "果洛",
"label": "果洛",
"value": "果洛",
"label": "果洛",
}, {
"value": "玉树",
"label": "玉树",
"value": "玉树",
"label": "玉树",
}, {
"value": "海西",
"label": "海西",
"value": "海西",
"label": "海西",
}]
}, {
"value": "宁夏",


+ 29
- 0
src/api/yinnong/yinnongApproval.js Dosyayı Görüntüle

@@ -0,0 +1,29 @@
import request from '@/utils/request'

// 查询用章申请详细
export function getSeal(id) {
return request({
url: '/yinnong/seal/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 查询资产处置详细
export function getAsset(id) {
return request({
url: '/yinnong/asset/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}

// 查询合同签订详细
export function getContraction(id) {
return request({
url: '/yinnong/contraction/get/' + id,
method: 'get',
params: arguments[1] || {}
})
}


BIN
src/assets/images/finance/theApproved.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 123  |  Yükseklik: 60  |  Boyut: 5.5 KiB

BIN
src/assets/images/icon/index_header_focus.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 7  |  Yükseklik: 9  |  Boyut: 988 B

BIN
src/assets/images/location/mark.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 48  |  Yükseklik: 48  |  Boyut: 482 B

BIN
src/assets/images/sunVillage_info/PDF.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 200  |  Yükseklik: 196  |  Boyut: 6.1 KiB

BIN
src/assets/images/sunVillage_info/PPT.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 200  |  Yükseklik: 196  |  Boyut: 5.0 KiB

BIN
src/assets/images/sunVillage_info/RAR.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 196  |  Yükseklik: 192  |  Boyut: 2.8 KiB

BIN
src/assets/images/sunVillage_info/icon-s-attachment.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 25  |  Yükseklik: 25  |  Boyut: 4.0 KiB

BIN
src/assets/images/sunVillage_info/icon-s-filter.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 47  |  Yükseklik: 34  |  Boyut: 1.5 KiB Genişlik: 47  |  Yükseklik: 34  |  Boyut: 1.5 KiB

BIN
src/assets/images/sunVillage_info/icon-s-fliter.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 47  |  Yükseklik: 34  |  Boyut: 1.5 KiB

BIN
src/assets/images/sunVillage_info/icon-s-rmb.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 25  |  Yükseklik: 25  |  Boyut: 3.9 KiB

BIN
src/assets/images/sunVillage_info/icon_registration.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 64  |  Yükseklik: 64  |  Boyut: 3.1 KiB

BIN
src/assets/images/sunVillage_info/index_block_27.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 65  |  Yükseklik: 58  |  Boyut: 4.3 KiB

BIN
src/assets/images/sunVillage_info/index_block_28.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 65  |  Yükseklik: 58  |  Boyut: 3.5 KiB

BIN
src/assets/images/sunVillage_info/index_block_29.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 65  |  Yükseklik: 58  |  Boyut: 3.6 KiB

BIN
src/assets/images/sunVillage_info/index_block_30.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 65  |  Yükseklik: 58  |  Boyut: 2.5 KiB

BIN
src/assets/images/sunVillage_info/index_block_31.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 65  |  Yükseklik: 58  |  Boyut: 2.8 KiB

BIN
src/assets/images/sunVillage_info/index_block_zonghegongkai.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 64  |  Yükseklik: 64  |  Boyut: 3.4 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_15.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 16 KiB Genişlik: 355  |  Yükseklik: 134  |  Boyut: 16 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_16.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 17 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_17.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 13 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_18.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 12 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_19.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 13 KiB

BIN
src/assets/images/sunVillage_info/index_code_btn_zonghegongkai.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 355  |  Yükseklik: 134  |  Boyut: 14 KiB

BIN
src/assets/images/sunVillage_info/index_icon_14.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 69  |  Yükseklik: 55  |  Boyut: 3.3 KiB

BIN
src/assets/images/sunVillage_info/index_icon_15.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 69  |  Yükseklik: 55  |  Boyut: 3.8 KiB

BIN
src/assets/images/sunVillage_info/signature_icon_01z.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 19  |  Yükseklik: 19  |  Boyut: 513 B

BIN
src/assets/images/weather/tianqi-baoxue.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 690 B

BIN
src/assets/images/weather/tianqi-baoyu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 584 B

BIN
src/assets/images/weather/tianqi-daxue.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 585 B

BIN
src/assets/images/weather/tianqi-dayu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 577 B

BIN
src/assets/images/weather/tianqi-duoyun.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 496 B

BIN
src/assets/images/weather/tianqi-feng.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 638 B

BIN
src/assets/images/weather/tianqi-fuchen.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 364 B

BIN
src/assets/images/weather/tianqi-leizhenyu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 557 B

BIN
src/assets/images/weather/tianqi-qing.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 439 B

BIN
src/assets/images/weather/tianqi-shachenbao.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 527 B

BIN
src/assets/images/weather/tianqi-wu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 492 B

BIN
src/assets/images/weather/tianqi-wumai.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 575 B

BIN
src/assets/images/weather/tianqi-xiaoxue.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 561 B

BIN
src/assets/images/weather/tianqi-xiaoyu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 532 B

BIN
src/assets/images/weather/tianqi-yangsha.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 429 B

BIN
src/assets/images/weather/tianqi-yin.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 505 B

BIN
src/assets/images/weather/tianqi-zhenxue.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 550 B

BIN
src/assets/images/weather/tianqi-zhenyu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 556 B

BIN
src/assets/images/weather/tianqi-zhongxue.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 564 B

BIN
src/assets/images/weather/tianqi-zhongyu.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 24  |  Yükseklik: 24  |  Boyut: 547 B

+ 5
- 0
src/assets/maps/plotPremises_huancui.json Dosyayı Görüntüle

@@ -0,0 +1,5 @@
{"student":[
{"name":"张三","address":"河南","age":20},
{"name":"李四","address":"北京","age":25},
{"name":"王五","address":"上海","age":30}
]}

+ 5
- 0
src/assets/maps/qu_huancui.json Dosyayı Görüntüle

@@ -0,0 +1,5 @@
{"student":[
{"name":"张三","address":"河南","age":20},
{"name":"李四","address":"北京","age":25},
{"name":"王五","address":"上海","age":30}
]}

+ 215
- 3
src/components/Map/MapGisLine.vue Dosyayı Görüntüle

@@ -1,17 +1,20 @@
<template>
<div>
<!-- <p class="fuTitle">地块位置绘制</p>-->
<div id="full-screen-acceptance" style="width: 100%;height:71vh;">
<div id="full-screen-acceptance" style="width: 100%;height:71vh; position: relative;">
<div :id=this.uuidMap style="width: 100%;height: 100%"></div>
<div id='land-btn-wrap'>
<!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" @click="" type="primary">画图</el-button>-->
<!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/>&nbsp;&nbsp;-->
<!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" type="primary">重置图层</el-button>-->
<input :id="locationMap" type="button" class="ant-btn ant-btn-red" value="定位"/>&nbsp;&nbsp;
<input :id="this.drawingPolygonMap" class="ant-btn ant-btn-red" type="button" value="画图"/>&nbsp;&nbsp;
<input :id="this.drawingResetMap" type="button" class="ant-btn ant-btn-red" value="重置图层"/>
</div>

<div v-if="hasSelectLocationMode" class="location-mode-chooser-btn"><input type="button" class="ant-btn ant-btn-red" value="选择定位方式" @click="selectLocationMode"/></div>
</div>
<div style="font-size: 13px; padding-top: 5px;">备注信息:绿色地块表示该地块,蓝色表示本账套已标记的其他地块</div>
<div style="font-size: 13px; padding-top: 5px;">备注:绿色地块表示该地块,蓝色表示本账套已标记的其他地块</div>
<div id="info" style="display: none"></div>
</div>
</template>
@@ -20,6 +23,7 @@
import {getQueryLand} from "@/api/homesteadSurvey/zjdzd";
import $ from "jquery";
import { getConfigKey } from "@/api/system/config";
import {Toast} from "vant";

export default {
components: {
@@ -31,6 +35,7 @@ export default {
uuidMap: this.guidProduct(),
drawingPolygonMap: this.guidProduct(),
drawingResetMap: this.guidProduct(),
locationMap: this.guidProduct(),
mapGeoServerUrl: "", // geoserver地址
villageBorderLayerName: "", // 乡镇边界图层名称
};
@@ -42,6 +47,20 @@ export default {
// 获取村边界的图层名称
this.getVillageBorderLayerName();
},
computed: {
isAndroid() {
return !!window._Native_object;
},
hasSelectLocationMode() {
return this.isAndroid && typeof(window._Native_object.SelectLocationMode) === 'function';
},
hasGetLocationTimeout() {
return this.isAndroid && typeof(window._Native_object.GetLocationTimeout) === 'function';
},
hasGetLocationMode() {
return this.isAndroid && typeof(window._Native_object.GetLocationMode) === 'function';
},
},
methods: {
// 获取geoserver的地址
getGeoServerUrl() {
@@ -72,6 +91,112 @@ export default {
return v.toString(16);
});
},
selectLocationMode() {
if(this.hasSelectLocationMode)
{
let res = window._Native_object.SelectLocationMode();
console.log('当前选择定位模式: ' + res);
}
},
getLocationMode() {
let mode = '';
if(this.hasGetLocationMode)
{
mode = window._Native_object.GetLocationMode();
}
console.log('当前选择定位模式: ' + mode);
return mode;
},
getLocationTimeout() {
let timeout = 30000;
if(this.isAndroid)
{
let to = window._Native_object.GetLocationTimeout();
if(to <= 0)
to = 30000;
timeout = to;
}
console.log('当前选择定位超时: ' + timeout);
return timeout;
},
getCurrentLocation(callback) {
// 1. 首先尝试Android宿主端
if(this.isAndroid) // Android层注入全局对象
{
let mode = this.getLocationMode();
if(mode !== 'h5')
{
console.log('使用Native获取定位');
let coord = window._Native_object.GetLocation(null);
console.log('Native坐标: ' + coord);
if(coord)
{
let arr = coord.split(',');
let res = {
code: 200,
data: {
lng: arr[0],
lat: arr[1],
},
};
callback(res);
return;
}
}
}

// 2. 再尝试浏览器
if (navigator.geolocation) {
console.log('使用浏览器获取定位');
const loading = Toast.loading({
message: '定位中...',
duration: 0,
});
let timeout = this.getLocationTimeout();
navigator.geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude } = position.coords;
console.log('浏览器定位结果: 经纬度=' + longitude + ', ' + latitude);
let res = {
code: 200,
data: {
lng: longitude,
lat: latitude,
},
};
loading.clear();
callback(res);
},
(error) => {
loading.clear();
console.log('定位失败: ' + error.message);
getQueryLand().then(callback);
},
{ enableHighAccuracy: true, timeout: timeout }
);
return;
}

// 最后使用地区坐标
console.log('使用地区坐标定位');
getQueryLand().then(callback);
},
getDeptLocation(callback) {
getQueryLand().then((response) => {
if (response.code == 200) {
let InsertCode = response.data;
if (InsertCode != null) {
var lat = InsertCode.lat;
var lng = InsertCode.lng;
if(lat !=null && lng !=null && lat !="" && lng !=""){
callback(response);
return;
}
}
}
this.getCurrentLocation(callback);
});
},
//地图查看
drawingPaceCountryLine() {
//加载地图编辑
@@ -80,6 +205,45 @@ export default {
//var hc_land;
var draw; // global so we can remove it later
var vector_drawing;

var mark_layer = null;
function addMark(lng, lat) {
if(!mark_layer)
{
mark_layer = new ol.layer.Vector({
source: new ol.source.Vector(),
});
map.addLayer(mark_layer);
}
else
mark_layer.getSource().clear();

let newFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([lng, lat])), //几何信息
//name: "标注点",
});
newFeature.setStyle(new ol.style.Style({
image: new ol.style.Icon({
//设置图标偏移
anchor: [0.5, 0.5],
//标注样式的起点位置
anchorOrigin: "top-right",
//X方向单位:分数
anchorXUnits: "fraction",
//Y方向单位:像素
anchorYUnits: "fraction",
//偏移起点位置的方向
offsetOrigin: "top-right",
//透明度
opacity: 0.9,
//图片路径
src: require('../../assets/images/location/mark.png'),
}),
zIndex: 9999,
}));
mark_layer.getSource().addFeature(newFeature);
}

if (that.message != null && that.message != ""
&& that.message != undefined) {
document.getElementById(that.uuidMap).innerHTML = '';
@@ -297,6 +461,27 @@ export default {
that.formSubmit();
}
});
$("#" + this.locationMap).click(function () {
that.getCurrentLocation(res => {
if (res.code == 200) {
let lat = res.data.lat;
let lng = res.data.lng;
if(lat && lng){
Zb = [lng,lat];
}else {
Zb =[115.452752, 31.789033];
}
addMark(lng,lat);
map.getView().animate({
// 只设置需要的属性即可
center: ol.proj.fromLonLat(Zb), // 中心点
zoom: 18, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
}
});
});
} else{
//this.closeMoule = null;
document.getElementById(that.uuidMap).innerHTML = '';
@@ -326,7 +511,7 @@ export default {
});
//获取坐标是否存在
var Zb;
getQueryLand().then((response) => {
this.getDeptLocation((response) => {
if (response.code == 200) {
let InsertCode = response.data;
if (InsertCode != null) {
@@ -442,6 +627,27 @@ export default {
//that.closeMoule = null;
that.formSubmit();
});
$("#" + this.locationMap).click(function () {
that.getCurrentLocation(res => {
if (res.code == 200) {
let lat = res.data.lat;
let lng = res.data.lng;
if(lat && lng){
Zb = [lng,lat];
}else {
Zb =[115.452752, 31.789033];
}
addMark(lng,lat);
map.getView().animate({
// 只设置需要的属性即可
center: ol.proj.fromLonLat(Zb), // 中心点
zoom: 18, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
}
});
});
}
},
},
@@ -484,4 +690,10 @@ export default {
z-index: 2000;
padding-top: 5%;
}
.location-mode-chooser-btn {
position: absolute;
right: 0;
bottom: 0;
z-index: 2000;
}
</style>

+ 214
- 2
src/components/Map/MapGisTagDTGCopy.vue Dosyayı Görüntüle

@@ -1,12 +1,15 @@
<template>
<div>
<div id="full-screen-acceptance" style="width: 100%;height:71vh;">
<div id="full-screen-acceptance" style="width: 100%;height:71vh; position: relative;">
<div :id=this.uuidMap style="width: 100%;height: 100%"></div>
<div id='land-btn-wrap' v-show="showBtn">
<input :id="locationMap" type="button" class="ant-btn ant-btn-red" value="定位"/>&nbsp;&nbsp;
<input :id="this.drawPolygonMap" class="ant-btn ant-btn-red" type="button" value="标记"/>&nbsp;&nbsp;
<!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/>&nbsp;&nbsp;-->
<input :id="this.drawResetMap" type="button" class="ant-btn ant-btn-red" value="重置标记"/>
</div>

<div v-if="hasSelectLocationMode" class="location-mode-chooser-btn"><input type="button" class="ant-btn ant-btn-red" value="选择定位方式" @click="selectLocationMode"/></div>
</div>
<div style="font-size: 1.4vh; padding-top: 5px;">备注:黄色标记表示该资产,蓝色标记表示本账套已标记的其他资产</div>
<div id="info" style="display: none"></div>
@@ -18,6 +21,7 @@
import Cookies from "js-cookie";
import {getQueryLand} from "@/api/homesteadSurvey/zjdzd";
import { getConfigKey } from "@/api/system/config";
import {Toast} from "vant";

export default {
data() {
@@ -27,6 +31,7 @@
uuidMap: this.guidProduct(),
drawPolygonMap: this.guidProduct(),
drawResetMap: this.guidProduct(),
locationMap: this.guidProduct(),
mapGeoServerUrl: "", // geoserver地址
villageBorderLayerName: "", // 乡镇边界图层名称
};
@@ -38,6 +43,20 @@
// 获取村边界的图层名称
this.getVillageBorderLayerName();
},
computed: {
isAndroid() {
return !!window._Native_object;
},
hasSelectLocationMode() {
return this.isAndroid && typeof(window._Native_object.SelectLocationMode) === 'function';
},
hasGetLocationTimeout() {
return this.isAndroid && typeof(window._Native_object.GetLocationTimeout) === 'function';
},
hasGetLocationMode() {
return this.isAndroid && typeof(window._Native_object.GetLocationMode) === 'function';
},
},
methods: {
// 获取geoserver的地址
getGeoServerUrl() {
@@ -68,6 +87,112 @@
return v.toString(16);
});
},
selectLocationMode() {
if(this.hasSelectLocationMode)
{
let res = window._Native_object.SelectLocationMode();
console.log('当前选择定位模式: ' + res);
}
},
getLocationMode() {
let mode = '';
if(this.hasGetLocationMode)
{
mode = window._Native_object.GetLocationMode();
}
console.log('当前选择定位模式: ' + mode);
return mode;
},
getLocationTimeout() {
let timeout = 10000;
if(this.hasGetLocationMode)
{
let to = window._Native_object.GetLocationTimeout();
if(to <= 0)
to = 30000;
timeout = to;
}
console.log('当前选择定位超时: ' + timeout);
return timeout;
},
getCurrentLocation(callback) {
// 1. 首先尝试Android宿主端
if(this.isAndroid) // Android层注入全局对象
{
let mode = this.getLocationMode();
if(mode !== 'h5')
{
console.log('使用Native获取定位');
let coord = window._Native_object.GetLocation(null);
console.log('Native坐标: ' + coord);
if(coord)
{
let arr = coord.split(',');
let res = {
code: 200,
data: {
lng: arr[0],
lat: arr[1],
},
};
callback(res);
return;
}
}
}

// 2. 再尝试浏览器
if (navigator.geolocation) {
console.log('使用浏览器获取定位');
const loading = Toast.loading({
message: '定位中...',
duration: 0,
});
let timeout = this.getLocationTimeout();
navigator.geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude } = position.coords;
console.log('浏览器定位结果: 经纬度=' + longitude + ', ' + latitude);
let res = {
code: 200,
data: {
lng: longitude,
lat: latitude,
},
};
loading.clear();
callback(res);
},
(error) => {
loading.clear();
console.log('定位失败: ' + error.message);
getQueryLand().then(callback);
},
{ enableHighAccuracy: true, timeout: timeout }
);
return;
}

// 最后使用地区坐标
console.log('使用地区坐标定位');
getQueryLand().then(callback);
},
getDeptLocation(callback) {
getQueryLand().then((response) => {
if (response.code == 200) {
let InsertCode = response.data;
if (InsertCode != null) {
var lat = InsertCode.lat;
var lng = InsertCode.lng;
if(lat !=null && lng !=null && lat !="" && lng !=""){
callback(response);
return;
}
}
}
this.getCurrentLocation(callback);
});
},
//地图查看
pointPaceCountryDarw() {
//加载地图编辑
@@ -76,6 +201,45 @@
//var hc_land;
var draw; // global so we can remove it later
var vector_drawing;

var mark_layer = null;
function addMark(lng, lat) {
if(!mark_layer)
{
mark_layer = new ol.layer.Vector({
source: new ol.source.Vector(),
});
map.addLayer(mark_layer);
}
else
mark_layer.getSource().clear();

let newFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([lng, lat])), //几何信息
//name: "标注点",
});
newFeature.setStyle(new ol.style.Style({
image: new ol.style.Icon({
//设置图标偏移
anchor: [0.5, 0.5],
//标注样式的起点位置
anchorOrigin: "top-right",
//X方向单位:分数
anchorXUnits: "fraction",
//Y方向单位:像素
anchorYUnits: "fraction",
//偏移起点位置的方向
offsetOrigin: "top-right",
//透明度
opacity: 0.9,
//图片路径
src: require('../../assets/images/location/mark.png'),
}),
zIndex: 9999,
}));
mark_layer.getSource().addFeature(newFeature);
}

//矢量标注样式设置函数,设置image为图标ol.style.Icon
function createLabelStyle() {
return new ol.style.Style({
@@ -337,6 +501,27 @@
that.formSubmit();
}
});
$("#" + this.locationMap).click(function () {
that.getCurrentLocation(res => {
if (res.code == 200) {
let lat = res.data.lat;
let lng = res.data.lng;
if(lat && lng){
Zb = [lng,lat];
}else {
Zb =[115.452752, 31.789033];
}
addMark(lng,lat);
map.getView().animate({
// 只设置需要的属性即可
center: ol.proj.fromLonLat(Zb), // 中心点
zoom: 18, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
}
});
});
}
else{
this.closeMoule = null;
@@ -368,7 +553,7 @@
//获取坐标是否存在
var Zb;
//开始定位当前位置
getQueryLand().then(res => {
this.getDeptLocation(res => {
if (res.code == 200) {
let lat = res.data.lat;
let lng = res.data.lng;
@@ -519,6 +704,27 @@
that.closeMoule = null;
that.formSubmit();
});
$("#" + this.locationMap).click(function () {
that.getCurrentLocation(res => {
if (res.code == 200) {
let lat = res.data.lat;
let lng = res.data.lng;
if(lat && lng){
Zb = [lng,lat];
}else {
Zb =[115.452752, 31.789033];
}
addMark(lng,lat);
map.getView().animate({
// 只设置需要的属性即可
center: ol.proj.fromLonLat(Zb), // 中心点
zoom: 18, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
}
});
});
}
},
},
@@ -561,4 +767,10 @@
z-index: 2000;
padding-top: 5%;
}
.location-mode-chooser-btn {
position: absolute;
right: 0;
bottom: 0;
z-index: 2000;
}
</style>

+ 205
- 0
src/components/common/PagedList.vue Dosyayı Görüntüle

@@ -0,0 +1,205 @@
<template>
<van-pull-refresh v-model="stateRefreshing" @refresh="getList()">
<van-list
v-model="stateLoading"
:finished="stateFinished"
finished-text="没有更多了"
@load="getList('+1')"
>
<slot name="default"/>
</van-list>
</van-pull-refresh>
</template>

<script>
// 可刷新, 可下拉的vant列表
export default {
name: 'PagedList',
props: {
value: { // 列表 只写
type: Array,
default: function() {
return [];
},
},
pageNum: { // 页码 读写 无监听
type: Number,
default: 1,
},
pageSize: { // 页量 读写 无监听
type: Number,
default: 10,
},
total: { // 读取总数 只写
type: Number,
default: 0,
},
loading: { // 是否加载中 只写
type: Boolean,
default: false,
},
refreshing: { // 是否刷新中 只写
type: Boolean,
default: false,
},
finished: { // 是否完全加载 只写
type: Boolean,
default: false,
},
getWhenCreated: { // 创建后直接获取列表 只读 无监听
type: Boolean,
default: false,
},
getListFunc: { // 获取数据函数 返回Promise 成功参数传递本次请求响应的列表项数和总数 { length|rows|data, total }
type: Function,
default: null,
},
reload: { // 变更此值为true则重新加载数据 监听
type: Boolean,
default: false,
},
},
components: {
},
data() {
return {
stateLoading: false,
stateRefreshing: false,
stateFinished: !this.getWhenCreated,
stateTotal: 0,
queryParams: {
pageNum: this.pageNum,
pageSize: this.pageSize,
},
}
},
created() {
if(this.getWhenCreated)
this.getList();
},
methods: {
getList(target) {
let type = typeof (target);
this.log(type, target);
if(target && this.stateFinished)
{
this.log('nomore');
this.$emit('nomore');
return;
}
if (target === 0) {
this.setupRefreshing(true);
this.setupFinished(true);
this.setupTotal(0);
this.setupPageNum(1);
this.clearList();
}
else if (type === 'number')
this.setupPageNum(target);
else if (type === 'string') {
this.setupPageNum(eval(this.queryParams.pageNum + target));
}
else
{
this.setupRefreshing(true);
this.setupFinished(true);
this.setupTotal(0);
this.setupPageNum(1);
this.clearList();
}

this.getListFunc(this.queryParams).then((result) => {
if(result.hasOwnProperty('rows'))
{
this.setupTotal(this.stateTotal + result.rows.length);
this.setupFinished(this.stateTotal >= result.total);
}
else if(result.hasOwnProperty('data'))
{
this.setupTotal(this.stateTotal + result.data.length);
this.setupFinished(true);
}
else if(result.hasOwnProperty('length'))
{
this.setupTotal(this.stateTotal + result.length);
this.setupFinished(true);
}

if(result.hasOwnProperty('total'))
{
this.setupFinished(this.stateTotal >= result.total);
}
else
{
this.setupFinished(true);
}
}).catch((err) => {
this.setupError(err);
}).finally(() => {
this.setupLoading(false);
this.setupRefreshing(false);
});
},
clearList() {
this.log(`reload`);
this.$emit('reload');
this.$emit('input', []);
},
setupPageNum(num) {
this.queryParams.pageNum = num;
if(this.queryParams.pageNum != this.pageNum)
this.$emit('update:pageNum', this.queryParams.pageNum);
},
setupTotal(num) {
this.log(`total -> ${num}`);
this.stateTotal = num;
if(this.stateTotal != this.total)
this.$emit('update:total', this.stateTotal);
},
setupLoading(ok) {
this.log(`loading -> ${ok}`);
this.stateLoading = ok;
if(this.stateLoading != this.loading)
this.$emit('update:loading', this.stateLoading);
},
setupFinished(ok) {
this.log(`finished -> ${ok}`);
this.stateFinished = ok;
if(this.stateFinished != this.finished)
this.$emit('update:finished', this.stateFinished);
if(ok)
this.$emit('finished', this.stateTotal);
},
setupError(err) {
this.log(`error -> ${err}`);
this.stateFinished = true;
if(this.stateFinished != this.finished)
this.$emit('update:finished', this.stateFinished);
this.$emit('error', err);
},
setupRefreshing(ok) {
this.log(`refreshing -> ${ok}`);
this.stateRefreshing = ok;
if(this.stateRefreshing != this.refreshing)
this.$emit('update:refreshing', this.stateRefreshing);
},
log() {
return;
console.log('[PagedList]: ', ...arguments);
},
},
watch: {
reload(newVal) {
if(newVal)
{
this.$emit('update:reload', false);
this.getList();
}
},
},
}
</script>

<style scoped lang="scss">

</style>

+ 219
- 0
src/components/common/Selector.vue Dosyayı Görüntüle

@@ -0,0 +1,219 @@
<!-- 下拉列表组件 zhao -->
<template>
<div>
<slot/>
<van-popup v-model="popupVisible" position="bottom">
<van-picker
ref="picker"
:title="label"
show-toolbar
:columns="options"
:readonly="readonly"
:value-key="labelKey"
:loading="loading"
@confirm="onConfirm"
@cancel="onCancel"
@change="onChanged"
/>
</van-popup>
</div>
</template>

<script>
import request from "@/utils/request";

export default {
name: "Selector",
props: {
value: {
default: null,
},
readonly: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '',
},
columns: { // 列表数据 Array
type: Array,
default: () => [],
},
labelKey: { // 名称键名 String
type: String,
default: 'label',
},
valueKey: { // 值键名 String
type: String,
default: 'value',
},
remoteUrl: { // 远程列表加载地址 String, 函数, 或 Promise
type: [String, Function, Object],
default: null,
},
onRemoteResponse: { // 远程获取到结果的处理回调 String|Function 如果是函数需返回数组, 如果是字符串支持.分割
type: [String, Function],
default: null,
},
clear: { // 点击取消时清空绑定值
type: Boolean,
default: false,
},
visible: { // 打开状态
type: Boolean,
default: false,
},
},
watch: {
value: function (newVal, oldVal) {
this.internalValue = newVal;
this.visibleValue = newVal;
this.syncIndex();
},
columns: function (newVal, oldVal) {
this.syncIndex();
},
remoteUrl: function (newVal, oldVal) {
this.requestRemote();
},
onRemoteResponse: function (newVal, oldVal) {
this.parseRemote();
},
visible: function (newVal, oldVal) {
if(newVal != this.popupVisible)
this.popupVisible = newVal;
},
popupVisible: function (newVal, oldVal) {
if(newVal != this.visible)
this.$emit('update:visible', newVal);
}
},
created() {
if(this.remoteUrl)
this.requestRemote();
},
data() {
return {
popupVisible: false,
internalValue: this.value,
visibleValue: '',
defaultIndex: 0,
remoteColumns: null,
loading: false,
remoteResponse: null,
};
},
methods: {
openPopup() {
if(!this.readonly)
{
this.popupVisible = true;
this.$nextTick(() => {
this.$refs.picker.setIndexes([this.defaultIndex]);
})
}
},
closePopup() {
this.popupVisible = false;
},
onChanged(data) {
this.$emit('change', data);
},
onConfirm(data) {
this.syncValue(data);
this.$emit('input', this.internalValue);
this.$emit('confirm', this.internalValue);
this.closePopup();
},
onCancel() {
this.closePopup();
if(this.clear)
{
this.visibleValue = '';
this.internalValue = null;
this.$emit('input', this.internalValue);
}
this.$emit('cancel');
},
getValue(data) {
return typeof(data) === 'object' && this.valueKey ? data[this.valueKey] : data;
},
getLabel(data) {
return typeof(data) === 'object' && this.labelKey ? data[this.labelKey] : data;
},
syncValue(data) {
this.internalValue = this.getValue(data);
this.visibleValue = this.getLabel(data);
},
syncIndex() {
let columns = this.getColumns();
if(!columns)
return -1;
for(let i in columns)
{
if(this.getValue(columns[i]) == this.internalValue) {
this.defaultIndex = i;
this.visibleValue = this.getLabel(columns[i]);
this.onChanged(columns[i]);
return i;
}
}
if(1) // 不存在
{
this.defaultIndex = -1;
this.visibleValue = this.internalValue;
this.onChanged(null);
}
return -1;
},
getColumns() {
return this.columns ? this.columns : this.remoteColumns;
},
requestRemote() {
if(!this.remoteUrl)
return;
this.loading = true;
this.remoteColumns = [];
let promise = typeof(this.remoteUrl) === 'function' ? this.remoteUrl() : (this.remoteUrl instanceof Promise ? this.remoteUrl : request(this.remoteUrl));
promise.then((resp) => {
this.remoteResponse = resp;
this.parseRemote();
this.syncIndex();
}).catch((e) => {
console.error(e);
}).finally(() => {
this.loading = false;
})
},
parseRemote() {
if(!this.remoteResponse)
return;
let type = typeof(this.onRemoteResponse);
if(type === 'function')
this.remoteColumns = this.onRemoteResponse(this.remoteResponse);
else if(type === 'string')
{
let arr = this.onRemoteResponse.split('.');
let ptr = this.remoteResponse;
for(let i in arr)
{
ptr = this.remoteResponse[arr[i]];
}
this.remoteColumns = ptr;
}
else
this.remoteColumns = this.remoteResponse;
},
},
computed: {
options() {
return this.columns ? this.columns : (this.remoteColumns || []);
}
}
}
</script>

<style scoped>

</style>

+ 112
- 0
src/components/common/nav_bar.vue Dosyayı Görüntüle

@@ -0,0 +1,112 @@
<template>
<div>
<div
:class='[background == "1"?"nav-wrap":"nav-wrap1",positionType=="fixed"?"nav-position-fixed":"nav-position-relative"]'
:style='{"height": 50+"px","overflow": "hidden","background":backgroundColor}'
>
<!-- // 导航栏 中间的标题 -->
<div class='nav-title' :style='{"line-height": 50+"px"}'>{{title}}</div>
<div style='display: flex; justify-content: center;flex-direction: column;height: 50px;padding-left: 2%;'>
<!-- // 其中wx:if='{{navbarData.showCapsule}}' 是控制左上角按钮的显示隐藏,首页不显示 -->
<van-icon name="arrow-left" color="#333333" size="25" @click="onClickLeft()" />
</div>
</div>
<div :style='{"height": 50+"px"}' v-if="positionType == 'fixed'"></div>
</div>
</template>

<script>
export default {
name: "nav_bar",
props: [
"background",
"backgroundColor",
"positionType",
"showCapsule",
"title",
],
data() {
return {
height: '',
navHeight:'',
}
},
created() {

},
methods: {

},
}
</script>

<style scoped lang="scss">
.nav-wrap {
width: 100%;
top: 0;
background: transparent;
color: #000;
z-index: 9999999;
}

.nav-wrap1 {
width: 100%;
top: 0;
background: linear-gradient(to bottom right,#91E1CA,#E0F4E4);
color: #333333;
z-index: 9999999;
}

/* 标题要居中 */
.nav-title {
position: absolute;
text-align: center;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
font-size: 16Px;
}

.nav-capsule {
display: flex;
align-items: center;
margin-left: 5px;
width: 70px;
justify-content: space-between;
height: 100%;
}

.navbar-v-line {
width: 1px;
height: 16px;
background-color: #e5e5e5;
}

/*.back-pre,*/
/*.back-home {*/
/* width: 18Px;*/
/* height: 25Px;*/
/* margin-top: 2px;*/
/* padding: 5px;*/
/* border-radius: 50%;*/
/*}*/

.nav-capsule .back-home {
width: 30px;
height: 30px;
margin-top: 1.5px;
}

.nav-position-fixed{
position: fixed;
}
.nav-position-relative{
position: relative;
}
</style>

+ 5
- 4
src/components/common/nav_footer.vue Dosyayı Görüntüle

@@ -5,11 +5,11 @@
<p class="text">首页</p>
</router-link>
<router-link to="/project" class="tab" active-class="active">
<span class="icon"><van-icon name="notes-o" size="25" /></span>
<span class="icon"><van-icon name="notes" size="25" /></span>
<p class="text">交易项目</p>
</router-link>
<router-link to="/user" class="tab" active-class="active">
<span class="icon"><van-icon name="contact" size="25" /></span>
<span class="icon"><van-icon name="manager-o" size="25" /></span>
<p class="text">我的</p>
</router-link>
<!-- <router-link to="/addressBook" class="tab" active-class="active">-->
@@ -45,12 +45,13 @@ export default {
-webkit-box-align: center;
align-items: center;
position: fixed;
padding: 10px 40px;
padding: 10Px 0Px;
height: 70Px;
.tab {
color: #5d656b;
text-align: center;
&.active {
color: #007b76;
color: #0DBCAA;
}
.icon {
padding-bottom: 3px;


+ 160
- 0
src/components/form/CommonUpload.vue Dosyayı Görüntüle

@@ -0,0 +1,160 @@
<!-- 通用上传组件 zhao -->

<template>
<van-uploader
v-model="fileList"
:multiple="multiple"
:after-read="afterRead"
:show-upload="showUpload"
:deletable="deletable"
@delete="deleteFile"
:accept="accept || null"
/>
</template>

<script>

import {commonUpload} from "@/api/sunVillage_info/fixedAssets";

export default {
name: "commonUpload",
props: {
name: String,
value: { // 绑定值 字符串 ,分隔 可监听
type: String,
default: null,
},
accept: { // 上传类型限制: 默认图片, * = 任意类型
type: String,
},
multiple: { // 多文件上传
type: Boolean,
default: false,
},
deletable: { // 允许删除
type: Boolean,
default: true,
},
showUpload: { // 显示上传按钮
type: Boolean,
default: true,
},
formData: { // 额外请求参数
type: Object,
default: function() {
return {};
},
},
file: { // 上传文件字段名
type: String,
default: 'file',
},
host: {
type: String, // 文件地址前缀
default: '/api',
},
},
watch: {
value: function (newVal, oldVal) {
if(newVal != this.internalValue)
this.setInternalValue(newVal);
},
},
created() {
this.parseValue(this.value);
},
data() {
return {
internalValue: this.value,
fileList: [],
pathList: [],
};
},
methods: {
setInternalValue(newVal) {
this.parseValue(newVal);
this.internalValue = newVal;
},
parseValue(data) {
if(data)
{
this.pathList = data.split(',');
}
else
{
this.pathList = [];
}
this.fileList = this.pathList.map((x) => {
return {
url: this.host + x,
};
});
},
makeFormData() {
let fd = new FormData();
if(this.formData)
{
for(let k of Object.keys(this.formData))
{
fd.set(k, this.formData[k]);
}
}
return fd;
},
upload(file) {
let params1 = this.makeFormData();
params1.append(this.file, file.file);
return commonUpload(params1).then((resp) => {
this.pathList.push(resp.fileName);
this.updateInternalValue();
this.$emit('upload', resp.fileName);
});
},
afterRead(file) {
this.$toast.loading({
message: "上传中...",
forbidClick: true,
duration: 0,
});
// 此时可以自行将文件上传至服务器
if (file instanceof Array) {//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false
if(file.length > 0)
{
let index = 0;
const f = () => {
if(index >= file.length)
return;
let up = file[index];
//console.log(up);
console.log(`上传文件: ${index} -> ${up.file.name}`);
this.upload(up).then(() => {
index++;
if(index < file.length)
f();
});
};
f();
}
} else {
this.upload(file);
}
},
deleteFile(detail){
this.pathList.splice(detail.index,1);
this.updateInternalValue();
this.$emit('remove', detail.index);
},
updateInternalValue() {
let files = this.pathList.join(',');
console.log(files);
this.internalValue = files;
if(this.internalValue != this.value)
this.$emit('input', this.internalValue);
},
},
}
</script>

<style scoped>

</style>

+ 5
- 0
src/components/form/FieldDatePicker.vue Dosyayı Görüntüle

@@ -15,6 +15,7 @@
:required="required"
:label-width="labelWidth || 'auto'"
:input-align="inputAlign || 'left'"
:size="size || ''"
>
<!-- <template #button>
<van-icon name="notes-o" size="20"/>
@@ -41,6 +42,8 @@
:type="type || 'date'"
:readonly="readonly"
:title="label || ''"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirm"
@cancel="onCancel"
@change="onChanged"
@@ -62,6 +65,8 @@ export default {
'formatter', // value的格式化 String|Function|undefined 字符串为格式字符串, 函数则必须有返回 undefined则不转换
'clearable', // 点击取消时清空绑定值
'yearRangeLength', // type === 'year' 时生成的年份数量范围 [YEAR - yearRangeLength, YEAR + yearRangeLength]
'minDate', 'maxDate',
'size',
],
watch: {
value: function (newVal, oldVal) {


+ 2
- 0
src/components/form/FieldSelect.vue Dosyayı Görüntüle

@@ -14,6 +14,7 @@
:rules="rules"
:required="required"
:label-width="labelWidth || 'auto'"
:size="size || ''"
>
</van-field>
<van-popup v-model="popupVisible" position="bottom">
@@ -46,6 +47,7 @@ export default {
'remoteUrl', // 远程列表加载地址 String
'onRemoteResponse', // 远程获取到结果的处理回调 String|Function 如果是函数需返回数组, 如果是字符串支持.分割
'clearable', // 点击取消时清空绑定值
'size',
],
watch: {
value: function (newVal, oldVal) {


+ 11
- 2
src/components/form/SubjectTreeChooser.vue Dosyayı Görüntüle

@@ -23,7 +23,7 @@ export default {
name: "SubjectTreeChooser",
components: {SubjectTreeChooserNodeItem},
props: [
'value', 'visible', 'height', 'canSelectNonLeaf',
'year','value', 'visible', 'height', 'canSelectNonLeaf',
],
watch: {
value: function (newVal, oldVal) {
@@ -33,6 +33,14 @@ export default {
this.syncIndex();
}
},
year: function (newVal, oldVal) {
//console.log(newVal)
if(newVal != this.yearNews)
{
this.yearNews = newVal;
this.getSubjects();
}
},
visible: function(newVal, oldVal) {
if(this.popupVisible !== newVal)
{
@@ -53,6 +61,7 @@ export default {
return {
popupVisible: false,
internalValue: this.value,
yearNews: this.year,
searchValue: '',
active: '1',
subjects: [],
@@ -76,7 +85,7 @@ export default {
map[x.dictValue] = item;
return item;
});
let url = '/finance/subject/listAll'; // '/open/villageAffairs/public/subjects/153'
let url = '/finance/subject/listAll?year='+this.yearNews; // '/open/villageAffairs/public/subjects/153'
request(url).then((resp) => {
let list = this.makeTree(resp.rows || resp.data);
for(let v of list)


+ 254
- 226
src/components/home/HomeApplyUploadComp.vue Dosyayı Görüntüle

@@ -30,185 +30,214 @@
</template>

<script>
import { treeSingleProcessView , attach , removeFile , getAttachmentConfigTree, attachmentFind } from "@/api/sunVillage_info/homestead/application";
import {getToken} from "@/utils/auth";
import request from '@/utils/request'
import {Notify} from "vant";
/** 导入JS方法 */
import {
treeSingleProcessView,
attach,
removeFile,
getAttachmentConfigTree,
attachmentFind
} from "@/api/sunVillage_info/homestead/application";
import {getToken} from "@/utils/auth";
import request from '@/utils/request'
import {Notify} from "vant";

export default {
name: "houseApplyUploadComp",
components: {},
props: ["businessType", "proposerId", "houseApplyStatus", "processKey", "tableName", "readonly", 'full',"userName"],
data() {
return {
disabled: this.readonly,
loading: false,
attachmentList: [],
uploadImg: {
//上传图片配置
uploadImgUrl: "/open/home/mobile/common/attach",
/** 导入JS方法 */

export default {
name: "houseApplyUploadComp",
components: {},
props: ["businessType", "proposerId", "houseApplyStatus", "processKey", "tableName", "readonly", 'full', "userName"],
data() {
return {
disabled: this.readonly,
loading: false,
attachmentList: [],
uploadImg: {
//上传图片配置
uploadImgUrl: "/open/home/mobile/common/attach",
},
newAttachments: [],
fileTypeList:[],
active: -1,
has: false,
}
},
watch: {
proposerId: function (newVal, oldVal) {
this.showAttachmentComp(this.businessType, newVal, this.houseApplyStatus, this.processKey, this.tableName, this.full);
},
readonly: function (newVal, oldVal) {
this.disabled = newVal;
},
newAttachments: [],
active: -1,
has: false,
}
},
watch: {
proposerId: function (newVal, oldVal) {
this.showAttachmentComp(this.businessType, newVal, this.houseApplyStatus, this.processKey, this.tableName, this.full);
},
readonly: function (newVal, oldVal) {
this.disabled = newVal;
created() {
if (this.businessType !== null && this.proposerId == -1) {
this.showAttachmentComp(this.businessType, this.proposerId, this.houseApplyStatus, this.processKey, this.tableName, this.full)
}
},
},
created() {
if (this.businessType !== null && this.proposerId == -1) {
this.showAttachmentComp(this.businessType, this.proposerId, this.houseApplyStatus, this.processKey, this.tableName, this.full)
}
},
methods: {
handleUploadSuccess(file, detail, item) {
this.setFileStatus(file, 'uploading', '文件上传中...');
let formData = new FormData;
formData.set('file', file.file);
this.$set(item.postData, 'userName', this.userName);
request({
url: this.uploadImg.uploadImgUrl,
method: "post",
params: item.postData,
data: formData,
}).then((resp) => {
if(resp.code == 200)
{
file.response = resp;
console.log(resp);
file.fileList = item.fileList;
this.onFileListChanged("ADD", resp.id);
this.setFileStatus(file, 'done', '文件上传成功');
this.$emit('onUploadSuccess', file);
}
else
methods: {
handleUploadSuccess(file, detail, item) {
this.setFileStatus(file, 'uploading', '文件上传中...');
let formData = new FormData;
formData.set('file', file.file);
this.$set(item.postData, 'userName', this.userName);
request({
url: this.uploadImg.uploadImgUrl,
method: "post",
params: item.postData,
data: formData,
}).then((resp) => {

if (resp.code === 200) {
file.response = resp;
file.fileList = item.fileList;
this.onFileListChanged("ADD", resp);
this.setFileStatus(file, 'done', '文件上传成功');

this.$emit('onUploadSuccess', file);
} else
this.setFileStatus(file, 'fail', '文件上传失败!');
}).catch((e) => {
this.setFileStatus(file, 'fail', '文件上传失败!');
}).catch((e) => {
this.setFileStatus(file, 'fail', '文件上传失败!');
});
return true;
},
handleRemove(file, detail) {
console.log(file, detail);
this.setFileStatus(file, 'uploading', '文件删除中...');
let id = file.id || file.response.id;
removeFile(id).then(resp => {
if(this.proposerId != -1 && false) // 不刷新
this.showAttachmentComp(this.businessType, this.proposerId, this.houseApplyStatus, this.processKey, this.tableName, this.full)
/* else // 新增时
{
let fileList = file.fileList;
//console.log(fileList);
fileList.splice(fileList.indexOf(file), 1);
}*/
this.setFileStatus(file, 'done', '文件删除成功');
});
return true;
},
//获取ip
getPath() {
// 获取当前页面的URL
const url = window.location.href;
// 使用正则表达式解析URL以获取IP和端口
const ipAndPortRegex = /^(?:https?:\/\/)?(?:([^\s:@\/]+)(?::([^\s:@\/]+))?@)?([\da-z\.-]+)(?::(\d+))?(?:\/([^\?#]+))?(?:\?([^#]+))?(?:#(.+))?$/;
const match = url.match(ipAndPortRegex);
// 提取IP和端口
const ip = match[3];
const port = match[4];
return "http://"+ip + ":" + port + "/api"
},
handleRemove(file, detail) {
console.log(file);
this.setFileStatus(file, 'uploading', '文件删除中...');
let id = file.id || file.response.id;
this.onFileListChanged("REMOVE", id);
}).catch((e) => {
this.setFileStatus(file, 'fail', '文件删除失败!');
}).finally(() => {
//loading.close();
});
return true;
},
showAttachmentComp(businessType, proposerId, houseApplyStatus, processKey, tableName, full) {
this.attachmentList = [];
this.active = -1;
this.has = false;
if(!full && 0)
{
this.getCurrentFiles(businessType, proposerId, houseApplyStatus, processKey, tableName);
}
else
{
this.getHistoryFiles(businessType, proposerId, houseApplyStatus, processKey, tableName);
}
},
formatFile(list) {
if (list !== null && list !== undefined) {
const baseImgUrl = this.$store.getters.baseRoutingUrl;
let UfileList = []; //上传图片列表
list.forEach((value, index) => {
UfileList.push({
name: value.fileName,
fileUrl: value.fileUrl,
url: baseImgUrl + value.fileUrl,
id: value.id,
fileList: UfileList,
});
removeFile(id).then(resp => {
if (this.proposerId != -1 && false) // 不刷新
this.showAttachmentComp(this.businessType, this.proposerId, this.houseApplyStatus, this.processKey, this.tableName, this.full)
/* else // 新增时
{
let fileList = file.fileList;
//console.log(fileList);
fileList.splice(fileList.indexOf(file), 1);
}*/
this.setFileStatus(file, 'done', '文件删除成功');
}).catch((e) => {
this.setFileStatus(file, 'fail', '文件删除失败!');
}).finally(() => {
//loading.close();
});
return UfileList;
}
},
onFileListChanged(type, id) {
if(this.proposerId != -1) return;
if(type === "ADD")
{
this.newAttachments.push(id);
}
else if(type === "REMOVE")
{
let index = this.newAttachments.indexOf(id);
if(index !== -1)
this.newAttachments.splice(index, 1);
}
console.log(this.newAttachments);
this.$emit('uploadFinished', this.newAttachments);
},
getCurrentFiles(businessType, proposerId, houseApplyStatus, processKey, tableName) {
this.loading = true;
treeSingleProcessView({
businessType: businessType,
houseApplyStatus: houseApplyStatus,
processKey: processKey,
tableName: tableName,
}).then(res => {
this.handleResponse(res.rows, proposerId, houseApplyStatus, tableName);
if(this.attachmentList.length === 0)
{
this.disabled = true;
return true;
},
showAttachmentComp(businessType, proposerId, houseApplyStatus, processKey, tableName, full) {
this.attachmentList = [];
this.active = -1;
this.has = false;
if (!full && 0) {
this.getCurrentFiles(businessType, proposerId, houseApplyStatus, processKey, tableName);
} else {
this.getHistoryFiles(businessType, proposerId, houseApplyStatus, processKey, tableName);
}
}).finally(() => {
this.loading = false;
});
},
getHistoryFiles(businessType, proposerId, houseApplyStatus, processKey, tableName) {
this.loading = true;
getAttachmentConfigTree({
businessType: businessType,
nodeStatus: houseApplyStatus,
processKey: processKey,
dictTypeSort: 'home_stage_status',
nodeStatusSort: '',
}).then(resp => {
//console.log(resp);
try {
if(!resp.data || resp.data.length === 0)
return;
let rows = resp.data[0].children;
rows.forEach((value, index) => {
if (!value.children)
return;
this.handleResponse(value.children, proposerId, houseApplyStatus, tableName);
},
formatFile(list) {

if (list !== null && list !== undefined) {
let baseImgUrl = this.$store.getters.baseRoutingUrl;
if (baseImgUrl === "") {
baseImgUrl = this.getPath();
}

let UfileList = []; //上传图片列表
list.forEach((value, index) => {
UfileList.push({
name: value.fileName,
fileUrl: value.fileUrl,
url: baseImgUrl + value.fileUrl,
id: value.id,
fileList: UfileList,
});
if(list.length > 0){
this.newAttachments.push(value);
this.fileTypeList.push(value.fileType)
}
});
return UfileList;
}
catch (e)
},
onFileListChanged(type, data) {
console.info(data);
if(type === "ADD")
{
console.error(e);
this.newAttachments.push(data);
this.fileTypeList.push(data.fileType);
}
}).finally(() => {
this.loading = false;
});
},
handleResponse(rows, proposerId, houseApplyStatus, tableName) {
rows.forEach((value, index) => {
else if(type === "REMOVE")
{
this.fileTypeList = [];
this.newAttachments = this.newAttachments.filter((item)=>{
return item.id !== data;
});
this.newAttachments.forEach((item)=>{
this.fileTypeList.push(item.fileType);
});
}
console.log(this.newAttachments);
this.$emit('uploadFinished', this.newAttachments,this.fileTypeList);
},
getCurrentFiles(businessType, proposerId, houseApplyStatus, processKey, tableName) {
this.loading = true;
treeSingleProcessView({
businessType: businessType,
houseApplyStatus: houseApplyStatus,
processKey: processKey,
tableName: tableName,
}).then(res => {
this.handleResponse(res.rows, proposerId, houseApplyStatus, tableName);
if (this.attachmentList.length === 0) {
this.disabled = true;
this.getHistoryFiles(businessType, proposerId, houseApplyStatus, processKey, tableName);
}
}).finally(() => {
this.loading = false;
});
},
getHistoryFiles(businessType, proposerId, houseApplyStatus, processKey, tableName) {
this.loading = true;
getAttachmentConfigTree({
businessType: businessType,
nodeStatus: houseApplyStatus,
processKey: processKey,
dictTypeSort: 'home_stage_status',
nodeStatusSort: '',
tableId: proposerId,
}).then(resp => {
//console.log(resp);
try {
if (!resp.data || resp.data.length === 0)
return;
let rows = resp.data[0].children;
rows.forEach((value, index) => {
if (!value.children)
return;
this.handleResponse(value.children, proposerId, houseApplyStatus, tableName);
});
} catch (e) {
console.error(e);
}
}).finally(() => {
this.loading = false;
});
},
handleResponse(rows, proposerId, houseApplyStatus, tableName) {
rows.forEach((value, index) => {

let obj = {
fileTypeName: value.fileTypeName,
tableId: proposerId,
@@ -224,76 +253,75 @@ export default {
current: value.nodeStatus == houseApplyStatus,
collapse: this.disabled || value.nodeStatus == houseApplyStatus ? 0 : '',
};
if(value.nodeStatus != houseApplyStatus && !this.has)
if (value.nodeStatus != houseApplyStatus && !this.has)
this.active++;
if(value.nodeStatus == houseApplyStatus)
{
if(!this.has)
if (value.nodeStatus == houseApplyStatus) {
if (!this.has)
this.active++;
this.has = true;
}
this.attachmentList.push(obj);

});
if (proposerId !== -1) {
this.attachmentList.forEach((value, index) => {
attachmentFind(value).then(resp => {
let list = this.formatFile(resp.data);
this.$set(this.attachmentList[index], "fileList", list);
});
if(value.attachmentList != null){
if(value.attachmentList.length > 0){
let list = this.formatFile( value.attachmentList);
this.$set(obj, "fileList", list);
}
}
this.attachmentList.push(obj);
console.info(this.attachmentList);
});
}
console.info(this.attachmentList);
},
setFileStatus(file, status, message) {
file.status = status;
file.message = message;
},
checkFile(file) {
let mime = file.type;
if([
"image/png",
"image/jpeg",
"image/gif",
"image/bmp",
].indexOf(mime) === -1)
{
this.notify('请上传jpg/png/gif/bmp等格式图片!', 'danger');
return false;
}
return true;
},
notify(message, type) {
Notify.clear();
Notify({ type: type || 'primary', message: message });
},
}
};
if (proposerId !== -1) {
this.$emit('uploadFinished',this.newAttachments,this.fileTypeList);
}
},
setFileStatus(file, status, message) {
file.status = status;
file.message = message;
},
checkFile(file) {
let mime = file.type;
if ([
"image/png",
"image/jpeg",
"image/gif",
"image/bmp",
].indexOf(mime) === -1) {
this.notify('请上传jpg/png/gif/bmp等格式图片!', 'danger');
return false;
}
return true;
},
notify(message, type) {
Notify.clear();
Notify({type: type || 'primary', message: message});
},
}
};
</script>
<style scoped>
.my_class >>> .el-upload--picture-card {
width: 72px;
height: 72px;
line-height: 78px;
}
.my_class >>> .el-upload--picture-card {
width: 72px;
height: 72px;
line-height: 78px;
}

.my_class >>> .el-upload-list__item {
width: 72px;
height: 72px;
}
.my_class >>> .el-upload-list__item {
width: 72px;
height: 72px;
}

.my_class >>> .el-upload-list__item-preview {
width: 20px;
}
.my_class >>> .el-upload-list__item-preview {
width: 20px;
}

.my_class >>> .el-upload-list__item-delete {
width: 20px;
}
.my_class >>> .el-upload-list__item-delete {
width: 20px;
}

.main_title{
font-size: 0.4rem;
color: #1D6FE9;
margin: 0.2rem 6%;
position: relative;
}
.main_title {
font-size: 0.4rem;
color: #1D6FE9;
margin: 0.2rem 6%;
position: relative;
}
</style>

+ 4
- 4
src/components/home/HomeApplyUploadCompTc.vue Dosyayı Görüntüle

@@ -85,7 +85,7 @@ export default {
file.response = resp;
console.log(resp);
file.fileList = item.fileList;
this.onFileListChanged("ADD", resp.id);
this.onFileListChanged("ADD", resp);
this.setFileStatus(file, 'done', '文件上传成功');
this.$emit('onUploadSuccess', file);
}
@@ -147,15 +147,15 @@ export default {
return UfileList;
}
},
onFileListChanged(type, id) {
onFileListChanged(type, data) {
if(this.proposerId != -1) return;
if(type === "ADD")
{
this.newAttachments.push(id);
this.newAttachments.push(data);
}
else if(type === "REMOVE")
{
let index = this.newAttachments.indexOf(id);
let index = this.newAttachments.indexOf(data.id);
if(index !== -1)
this.newAttachments.splice(index, 1);
}


+ 1
- 2
src/components/house/CommonMap.vue Dosyayı Görüntüle

@@ -207,6 +207,7 @@ export default {
return this.setLayerVisible(name, true);
},
setDraw(on) {

if(!this.mapObject)
return;
/* if(this.allowDraw === on)
@@ -214,7 +215,6 @@ export default {
if(on) {
let self = this;
let draw;

// 不要使用 $('DOM-selector').click(function), 动态加载按钮时手机端会失效
$(document).on('click', "#drawPolygon" + this.elementId, function () {
self.drawResult = null;
@@ -274,7 +274,6 @@ export default {
addLayer(name, theGeom) {
if(!this.mapObject)
return false;

//地图只加载一次
//加载地图编辑
//图层查询定位开始 ---------start


+ 6
- 6
src/components/house/MultiImageUploadComp.vue Dosyayı Görüntüle

@@ -44,9 +44,9 @@ export default {
return {
uploadImg: {
//上传图片配置
attachImgUrl: "/common/attach",
uploadImgUrl: "/common/upload",
removeImgUrl: "/system/attachment/remove",
attachImgUrl: "/open/home/mobile/common/attach",
uploadImgUrl: "/open/home/mobile/common/upload",
removeImgUrl: "/open/home/mobile/attach/remove",
uploadImgHeaders: {
Authorization: "Bearer " + getToken(),
},
@@ -79,7 +79,7 @@ export default {
file.path = resp.fileName;
}
file.fileList = this.uploadImg.fileList;
this.$emit('fileChanged', this.uploadImg.fileList);
this.$emit('fileChanged', resp.fileUrl);
this.updateValue();
console.log('新增', this.uploadImg.fileList);
}).catch((e) => {
@@ -96,7 +96,7 @@ export default {
Notify({ type: type || 'primary', message: message });
},
handleRemove(file, detail) {
console.log(file, detail);
console.log(file.id);
if(file.id) // new upload
{
this.setFileStatus(file, 'uploading', '文件删除中...');
@@ -107,7 +107,7 @@ export default {
if(index !== -1)
this.uploadImg.fileList.splice(index, 1);
console.log(this.uploadImg.fileList);
this.$emit('fileChanged', this.uploadImg.fileList);
this.$emit('fileChanged', null);
this.updateValue();
console.log('删除', this.uploadImg.fileList);
})


+ 69
- 4
src/permission.js Dosyayı Görüntüle

@@ -15,6 +15,7 @@ const whiteList = [
'/register',

'/news/index',
'/news/index_new',
'/news/newDetail',
'/notice/index',
'/notice/inviteTendersDetail',
@@ -35,8 +36,11 @@ const whiteList = [
'/project',
'/policy',
'/policyDetail',
'/policyPDF',
'/attestationDetail',
'/noticeDetail',
'/stopDetail',
'/abnormalDetail',
'/homestead/login',
'/applicationForm',
'/applicationList',
@@ -70,6 +74,7 @@ const whiteList = [
'/lawEnforcement/complaintAdd',
'/homesteadLogin',
'/yinnongLogin',
'/yinnongLiteLogin',
'/lawEnforcement/userRegister',
'/lawEnforcement/companyRegister',

@@ -95,7 +100,9 @@ const whiteList = [
'/sunVillage_info/list_finance_detail', //详情页
'/sunVillage_info/list_photo_detail', //详情页
'/sunVillage_info/list_finance_ranking', //详情页
'/sunVillage_info/list_tourists_ranking', //详情页
'/sunVillage_info/list_tourists_ranking', //零工排行榜
'/sunVillage_info/list_tourists_ranking_lite', //零工排行榜
'/sunVillage_info/list_tourists_registration_detail_visitor', //零工详情页
'/sunVillage_info/login_code', //详情页
'/sunVillage_info/index_code_rights', //详情页
'/sunVillage_info/list_vote', //详情页
@@ -109,11 +116,17 @@ const whiteList = [
'/sunVillage_info/list_message_add', //详情页
'/sunVillage_info/list_message_detail', //详情页
'/sunVillage_info/homeApplication/applicationList', //列表页面
'/sunVillage_info/homeApplication/applicationNewList', //列表页面
'/sunVillage_info/proposerLite',
'/sunVillage_info/proposerLiteNew',
'/sunVillage_info/paidExitAddNew',
'/sunVillage_info/paidExit/paidExitList', //列表页面
'/sunVillage_info/paidExit/paidExitNewList', //宅基地退出列表页面(新)
'/sunVillage_info/paidExitAdd',
'/sunVillage_info/paidExitModify',
'/sunVillage_info/paidExitModifyNew',
'/sunVillage_info/paidExitDetail',
'/sunVillage_info/paidExitDetailNew',
'/sunVillage_info/arbitrationList',
'/sunVillage_info/arbitrationDetail',
'/sunVillage_info/familyMember',
@@ -131,6 +144,21 @@ const whiteList = [
'/sunVillage_info/list_contract_ranking',
'/sunVillage_info/identity_check',
'/sunVillage_info/assetMapOpen',
'/sunVillage_info/otherOpenVisitIndex',
'/sunVillage_info/otherOpenVisitDetail',
'/sunVillage_info/list_discussions_new',
'/sunVillage_info/list_discussions_new_detail',
'/sunVillage_info/list_process',
'/sunVillage_info/list_process_detail',
'/sunVillage_info/list_issues_zy',
'/sunVillage_info/list_issues_zy_detail',
'/sunVillage_info/list_special',
'/sunVillage_info/list_special_detail',
'/sunVillage_info/list_special_detail_vote',
'/sunVillage_info/special_vote',
'/sunVillage_info/special_vote_detail',
'/sunVillage_info/list_finance_new',
'/sunVillage_info/list_finance_new_detail',

// 新型经营主体
'newBusinessEntity/newsBulletin', //新闻公告
@@ -185,10 +213,35 @@ const whiteList = [
'/plotPremisesMobile/index',//闲置资源


'/sunVillage_info/login_farmer', //村民登录
'/sunVillage_info/index_farmer', //村民主页
'/sunVillage_info/financeOpen', //村民主页


'/sunVillage_info/login_code_new', //村民登录
'/sunVillage_info/index_code_rights_new', //村民登录
'/sunVillage_info/list_revenueAndExpenditure', //村民登录
'/sunVillage_info/list_operatingAssets', //村民登录
'/sunVillage_info/list_operatingAssets_detail', //村民登录
'/sunVillage_info/list_operatingAssets_detail2', //村民登录
'/sunVillage_info/otherOpenVisitIndexNew', //村民登录
'/sunVillage_info/otherOpenVisitDetailNew', //村民登录


//承包地确权
'/contracted/login',//登录
'/contracted/index',//首页

//虫害APP
'/pest/pestLogin',//登录
'/pest/index',//首页
'/pest/agriculturalRecords',//农事记录
'/pest/agriculturalRecordsAdd',//农事记录(新增)
'/pest/soilTesting',//土壤检测
'/pest/weather',//气象服务
'/pest/growthMonitoring',//长势监测
'/pest/temperatureAndHumidity',//温湿度

]

router.beforeEach((to, from, next) => {
@@ -205,6 +258,7 @@ router.beforeEach((to, from, next) => {
store.dispatch('GetInfo').then(res => {
// 拉取user_info
const roles = res.roles
Cookies.set('user',res.user)
// store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => {
// // 根据roles权限生成可访问的路由表
// router.addRoutes(accessRoutes) // 动态添加可访问路由表
@@ -258,9 +312,18 @@ router.beforeEach((to, from, next) => {
} else {
try {
let loginUrl = Cookies.get("_Login_url");
if (loginUrl && loginUrl.indexOf("onlineHomeLogin") !== -1) {
next({ path: `/onlineHomeLogin?redirect=${to.fullPath}` })
return;
console.log('登录页面: ' + loginUrl)
if (loginUrl) {
if(loginUrl.indexOf("onlineHomeLogin") !== -1)
{
next({ path: `/onlineHomeLogin?redirect=${to.fullPath}` })
return;
}
else if(loginUrl.indexOf("yinnongLiteLogin") !== -1)
{
next({ path: '/yinnongLiteLogin' })
return;
}
}
} catch (e) { console.log(e); }
if ('/authenticRight/index'.indexOf(to.path) !== -1) {
@@ -279,6 +342,8 @@ router.beforeEach((to, from, next) => {
next(`/lawEnforcement/login?redirect=${to.fullPath}`)
} else if (to.path.indexOf('/sunVillage') !== -1) {
next(`/sunVillage/login`)
} else if (to.path.indexOf('/pest') !== -1) {
next(`/pest/pestLogin`)
} else {
next(`/login?redirect=${to.fullPath}`)
}


+ 751
- 21
src/router/index.js Dosyayı Görüntüle

@@ -147,6 +147,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/news/index'], resolve)
},
{
path: '/news/index_new',
name: 'newsNew',
meta: {
title: '新闻资讯',
hidden: true,
},
component: (resolve) => require(['@/views/news/index_new'], resolve)
},
{
path: '/news/newDetail',
name: 'newDetailCJ',
@@ -380,6 +389,24 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/notice/noticeDetail'], resolve)
},
{
path: '/stopDetail',
name: 'stopDetail',
meta: {
title: '公告详情',
hidden: true,
},
component: (resolve) => require(['@/views/notice/stopDetail'], resolve)
},
{
path: '/abnormalDetail',
name: 'abnormalDetail',
meta: {
title: '公告详情',
hidden: true,
},
component: (resolve) => require(['@/views/notice/abnormalDetail'], resolve)
},
{
path: '/attestationDetail',
name: 'attestationDetailCJ',
@@ -398,6 +425,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/policy/policyDetail'], resolve)
},
{
path: '/policyPDF',
name: 'policyPDF',
meta: {
title: '文件预览',
hidden: true,
},
component: (resolve) => require(['@/views/policy/policyPDF'], resolve)
},
{
path: '/interactionAdd',
name: 'interactionAddCJ',
@@ -463,6 +499,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnongLogin'], resolve)
},
{
path: '/yinnongLiteLogin',
name: 'yinnongLiteLogin',
meta: {
title: '登录页',
hidden: true,
},
component: (resolve) => require(['@/views/yinnongNoSMSLogin'], resolve)
},
{
path: '/yinnongIndex',
name: 'yinnongIndex',
@@ -1068,6 +1113,33 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnong/homestead/paidUtilize/paidUtilizeList'], resolve)
},
{
path: '/paidUtilizeCqList',
name: 'paidUtilizeCqList',
meta: {
title: '有偿使用',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/homestead/paidUtilize/paidUtilizeCqList'], resolve)
},
{
path: '/paidUtilizeFeeplanList',
name: 'paidUtilizeFeeplanList',
meta: {
title: '收费计划',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/homestead/paidUtilizeFeeplan/paidUtilizeFeeplanList'], resolve)
},
{
path: '/paidUtilizeFeeplanDteail',
name: 'paidUtilizeFeeplanDteail',
meta: {
title: '收费计划详情',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/homestead/paidUtilizeFeeplan/paidUtilizeFeeplanDteail'], resolve)
},
{
path: '/paidUtilizeModify',
name: 'paidUtilizeModify',
@@ -1979,31 +2051,22 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/yinnong/personalPicture'], resolve)
},
{
path: '/yinnong/done',
name: 'yinnongDone',
meta: {
title: '我的已办',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/done'], resolve)
},
{
path: '/yinnong/doneCompleted/done',
name: 'yinnongDoneCompletedDone',
path: '/yinnong/doneCompleted/doneNew',
name: 'yinnongDoneCompletedDoneNew',
meta: {
title: '我的已办',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/doneCompleted/done'], resolve)
component: (resolve) => require(['@/views/yinnong/doneCompleted/doneNew'], resolve)
},
{
path: '/yinnong/doneCompleted/completed',
name: 'yinnongDoneCompletedCompleted',
path: '/yinnong/doneCompleted/completedNew',
name: 'yinnongDoneCompletedCompletedNew',
meta: {
title: '我的待办',
title: '我的待办(新)',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/doneCompleted/completed'], resolve)
component: (resolve) => require(['@/views/yinnong/doneCompleted/completedNew'], resolve)
},
{
path: '/yinnong/advice',
@@ -2330,6 +2393,33 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalApproval13'], resolve)
},
{
path: '/yinnong/sealApproval',
name: 'sealApproval',
meta: {
title: '用章事项申请审批',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/sealApproval'], resolve)
},
{
path: '/yinnong/assetApproval',
name: 'assetApproval',
meta: {
title: '资产处置申请审批',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/assetApproval'], resolve)
},
{
path: '/yinnong/contractionApproval',
name: 'contractionApproval',
meta: {
title: '合同签订申请审批',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/contractionApproval'], resolve)
},

{
path: '/yinnong/approvalModify',
@@ -2668,6 +2758,51 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnong/homestead/supervision/supervisionDetail'], resolve)
},
{
path: '/yinnong/cashExpenseList',
name: 'yinnongCashExpenseList',
meta: {
title: '资金审批申请列表',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseList'], resolve)
},
{
path: '/yinnong/cashExpenseForm',
name: 'yinnongCashExpenseForm',
meta: {
title: '资金审批申请表单',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseForm'], resolve)
},
{
path: '/yinnong/cashExpenseDetail',
name: 'yinnongCashExpenseDetail',
meta: {
title: '资金审批申请详情',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseDetail'], resolve)
},
{
path: '/yinnong/cashExpenseApproval',
name: 'yinnongCashExpenseApproval',
meta: {
title: '资金审批申请',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseApproval'], resolve)
},
{
path: '/yinnong/cashExpenseProcess',
name: 'yinnongCashExpenseProcess',
meta: {
title: '资金审批申请流程',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseProcess'], resolve)
},
{
path: '/lawEnforcement',
name: 'lawEnforcement',
@@ -3308,6 +3443,123 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_contract'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_process',
name: 'sunVillageInfoListProcess',
meta: {
title: '实施过程公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_process'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_process_detail',
name: 'sunVillageInfoListProcessDetail',
meta: {
title: '实施过程公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_process_detail'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_discussions_new',
name: 'sunVillageInfoListDiscussions',
meta: {
title: '四议两公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_discussions_new'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_discussions_new_detail',
name: 'sunVillageInfoListDiscussionsDetail',
meta: {
title: '四议两公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_discussions_new_detail'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_discussions_new_edit',
name: 'sunVillageInfoListDiscussionsEdit',
meta: {
title: '四议两公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_discussions_new_edit'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_discussions_new_add',
name: 'sunVillageInfoListDiscussionsAdd',
meta: {
title: '四议两公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_discussions_new_add'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_special',
name: 'sunVillageInfoListSpecial',
meta: {
title: '专项公示',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_special'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_special_add',
name: 'sunVillageInfoListSpecialAdd',
meta: {
title: '专项公示',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_special_add'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_special_detail',
name: 'sunVillageInfoListSpecialDetail',
meta: {
title: '专项公示',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_special_detail'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_special_detail_vote',
name: 'sunVillageInfoListSpecialDetailVote',
meta: {
title: '专项公示',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_special_detail_vote'], resolve)
},
{ ////阳光村务(新)-- 四议两公开
path: '/sunVillage_info/list_special_edit',
name: 'sunVillageInfoListSpecialEdit',
meta: {
title: '专项公示',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_special_edit'], resolve)
},
{ ////阳光村务(新)-- 四议表决
path: '/sunVillage_info/special_vote',
name: 'sunVillageInfoSpecialVote',
meta: {
title: '四议表决',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/special_vote'], resolve)
},
{ ////阳光村务(新)-- 四议表决
path: '/sunVillage_info/special_vote_detail',
name: 'sunVillageInfoSpecialVoteDetail',
meta: {
title: '四议表决',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/special_vote_detail'], resolve)
},
{ ////阳光村务(新)-- 一张图公开
path: '/sunVillage_info/list_contract_detail',
name: 'sunVillageInfoListContractDetail',
@@ -3525,6 +3777,42 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance_edit'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_finance_new',
name: 'sunVillageInfoListFinanceNew',
meta: {
title: '财务公开榜',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance_new'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_finance_new_add',
name: 'sunVillageInfoListFinanceAddNew',
meta: {
title: '新增财务公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance_new_add'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_finance_new_detail',
name: 'sunVillageInfoListFinanceDetailNew',
meta: {
title: '查看财务公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance_new_detail'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_finance_new_edit',
name: 'sunVillageInfoListFinanceEditNew',
meta: {
title: '修改财务公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance_new_edit'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_tourists_edit',
name: 'sunVillageInfoListTouristsEdit',
@@ -3571,6 +3859,42 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/sunVillage_info/list_issues_edit'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_issues_zy',
name: 'sunVillageInfoListIssuesZy',
meta: {
title: '重要事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_issues_zy'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_issues_zy_add',
name: 'sunVillageInfoListIssuesAddZy',
meta: {
title: '新增重要事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_issues_zy_add'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_issues_zy_detail',
name: 'sunVillageInfoListIssuesDetailZy',
meta: {
title: '查看重要事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_issues_zy_detail'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_issues_zy_edit',
name: 'sunVillageInfoListIssuesEditZy',
meta: {
title: '修改重要事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_issues_zy_edit'], resolve)
},
{ ////阳光村务(新)-- 零工公开榜
path: '/sunVillage_info/list_tourists_ranking',
name: 'sunVillageInfoListTouristsRanking',
meta: {
@@ -3579,6 +3903,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_ranking'], resolve)
},
{ ////阳光村务(新)-- 零工公开榜(精简)
path: '/sunVillage_info/list_tourists_ranking_lite',
name: 'sunVillageInfoListTouristsRankingLite',
meta: {
title: '零工公式公布榜',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_ranking_lite'], resolve)
},
{ ////阳光村务(新)-- 零工登记
path: '/sunVillage_info/list_tourists_registration',
name: 'sunVillageInfoListTouristsRegistration',
@@ -3597,6 +3930,33 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_add'], resolve)
},
{ ////阳光村务(新)-- 零工登记详情
path: '/sunVillage_info/list_tourists_registration_detail',
name: 'sunVillageInfoListTouristsRegistrationDetail',
meta: {
title: '查看零工登记',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_detail'], resolve)
},
{ ////阳光村务(新)-- 零工登记详情(游客)
path: '/sunVillage_info/list_tourists_registration_detail_visitor',
name: 'sunVillageInfoListTouristsRegistrationDetailVisitor',
meta: {
title: '查看零工登记',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_detail_visitor'], resolve)
},
{ ////阳光村务(新)-- 零工登记修改
path: '/sunVillage_info/list_tourists_registration_edit',
name: 'sunVillageInfoListTouristsRegistrationEdit',
meta: {
title: '修改零工登记',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_edit'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_register',
name: 'sunVillageInfoListRegister',
@@ -3633,6 +3993,97 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_register_detail'], resolve)
},
{ ////阳光村务(新)-- 零工事项
path: '/sunVillage_info/registrationIndex',
name: 'registrationIndex',
meta: {
title: '零工事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/registration/registrationList'], resolve)
},
{ ////阳光村务(新)-- 零工事项详情
path: '/sunVillage_info/registrationDetail',
name: 'registrationDetail',
meta: {
title: '零工事项详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/registration/registrationDetail'], resolve)
},
{ ////阳光村务(新)-- 新增/编辑零工事项
path: '/sunVillage_info/registrationEdit',
name: 'registrationEdit',
meta: {
title: '编辑零工事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/registration/registrationEdit'], resolve)
},
{ ////阳光村务(新)-- 综合公开
path: '/sunVillage_info/otherOpenIndex',
name: 'otherOpenIndex',
meta: {
title: '综合公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenList'], resolve)
},
{ ////阳光村务(新)-- 综合公开详情
path: '/sunVillage_info/otherOpenDetail',
name: 'otherOpenDetail',
meta: {
title: '综合公开详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenDetail'], resolve)
},
{ ////阳光村务(新)-- 新增/编辑综合公开
path: '/sunVillage_info/otherOpenEdit',
name: 'otherOpenEdit',
meta: {
title: '编辑综合公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenEdit'], resolve)
},
{ ////阳光村务(新)-- 综合公开 游客
path: '/sunVillage_info/otherOpenVisitIndex',
name: 'otherOpenVisitIndex',
meta: {
title: '综合公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenVisitList'], resolve)
},
{ ////阳光村务(新)-- 综合公开详情 游客
path: '/sunVillage_info/otherOpenVisitDetail',
name: 'otherOpenVisitDetail',
meta: {
title: '综合公开详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenVisitDetail'], resolve)
},
{ ////阳光村务(新)-- 综合公开 游客
path: '/sunVillage_info/otherOpenVisitIndexNew',
name: 'otherOpenVisitIndexNew',
meta: {
title: '综合公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpenNew/otherOpenVisitList'], resolve)
},
{ ////阳光村务(新)-- 综合公开详情 游客
path: '/sunVillage_info/otherOpenVisitDetailNew',
name: 'otherOpenVisitDetailNew',
meta: {
title: '综合公开详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpenNew/otherOpenVisitDetail'], resolve)
},

{ ////阳光村务(新)-- 发包方审核
path: '/sunVillage_info/list_employer_process',
name: 'sunVillageInfoListEmployerProcess',
@@ -3786,6 +4237,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/voucher'], resolve)
},
{ // 凭证列表
path: '/voucherList',
name: 'voucherList',
meta: {
title: '凭证列表',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/voucher/voucherList'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/user',
name: 'sunVillageInfoUser',
@@ -4002,6 +4462,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/homeApplication/applicationList'], resolve)
},
{ ////阳光村务(新)-- 宅基地申请
path: '/sunVillage_info/homeApplication/applicationNewList',
name: 'sunVillageInfoApplicationNewList',
meta: {
title: '宅基地申请(新)',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/homeApplication/applicationNewList'], resolve)
},
{
path: '/sunVillage_info/proposerLite',
name: 'sunVillageInfoProposerLite',
@@ -4011,6 +4480,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/homeApplication/proposerLite'], resolve)
},
{
path: '/sunVillage_info/proposerLiteNew',
name: 'sunVillageInfoProposerLiteNew',
meta: {
title: '农村宅基地申请(新)',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/homeApplication/proposerLiteNew'], resolve)
},
{
path: '/homesteadProposerLite',
name: 'homesteadProposerLite',
@@ -4029,6 +4507,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitList'], resolve)
},
{
path: '/sunVillage_info/paidExit/paidExitNewList',
name: 'sunVillageInfoPaidExitNewList',
meta: {
title: '有偿退出',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitNewList'], resolve)
},
{
path: '/sunVillage_info/paidExitAdd',
name: 'sunVillageInfoPaidExitAdd',
@@ -4039,13 +4526,22 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitAdd'], resolve)
},
{
path: '/sunVillage_info/paidExitModify',
name: 'sunVillageInfoPaidExitModify',
path: '/sunVillage_info/paidExitAddNew',
name: 'sunVillageInfoPaidExitAddNew',
meta: {
title: '有偿退出修改',
title: '有偿退出新增(新)',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitAddNew'], resolve)
},
{
path: '/sunVillage_info/paidExitModifyNew',
name: 'sunVillageInfoPaidExitModifyNew',
meta: {
title: '有偿退出修改(新)',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitModify'], resolve)
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitModifyNew'], resolve)
},
{
path: '/sunVillage_info/paidExitDetail',
@@ -4056,6 +4552,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitDetail'], resolve)
},
{
path: '/sunVillage_info/paidExitDetailNew',
name: 'sunVillageInfoPaidExitDetailNew',
meta: {
title: '有偿退出审批',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitDetailNew'], resolve)
},
{
path: '/sunVillage_info/arbitrationList',
name: 'sunVillageInfoArbitrationList',
@@ -4245,6 +4750,42 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/resourceDetail'], resolve)
},
{ ////阳光村务(新)-- 三清台账管理
path: '/sunVillage_info/three',
name: 'sunVillageInfoListThree',
meta: {
title: '三清台账管理',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/three'], resolve)
},
{ ////阳光村务(新)-- 新增三清台账
path: '/sunVillage_info/threeAdd',
name: 'sunVillageInfoListThreeAdd',
meta: {
title: '新增三清台账',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/threeAdd'], resolve)
},
{ ////阳光村务(新)-- 修改三清台账
path: '/sunVillage_info/threeEdit',
name: 'sunVillageInfoListThreeEdit',
meta: {
title: '修改三清台账',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/threeEdit'], resolve)
},
{ ////阳光村务(新)-- 三清台账详情
path: '/sunVillage_info/threeDetail',
name: 'sunVillageInfoListThreeDetail',
meta: {
title: '三清台账详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/threeDetail'], resolve)
},
{ ////阳光村务(新)-- 修改资源
path: '/sunVillage_info/detailed_liabilities',
name: 'sunVillageInfoDetailedLiabilities',
@@ -5376,7 +5917,33 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnong/bankAgriculture/recordDetail/recordDetailList'], resolve)
},

{
path: '/sunVillage_info/paymentPendingList',
name: 'sunVillagePaymentPendingList',
meta: {
title: '待我支付',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/bankAgriculture/paymentPending/approvalList'], resolve)
},
{
path: '/sunVillage_info/payRecordList',
name: 'sunVillagePayRecordList',
meta: {
title: '支付记录',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/bankAgriculture/paymentPending/payRecordList'], resolve)
},
{
path: '/sunVillage_info/paymentPendingApprovalDetail',
name: 'sunVillagePaymentPendingApprovalDetail',
meta: {
title: '银农银行卡转账申请',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/bankAgriculture/paymentPending/approvalDetail'], resolve)
},
//<--------------------------------------农业大托管-------------------------------------->
{
path: '/agriculturalTrusteeship/index',
@@ -5873,6 +6440,169 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/contracted/user/passWord'], resolve)
},
//<--------------------------------------虫害APP-------------------------------------->
{
path: '/pest/pestLogin',
name: 'pestLogin',
meta: {
title: '登录',
hidden: true,
},
component: (resolve) => require(['@/views/pest/pestLogin'], resolve)
},
{
path: '/pest/index',
name: 'pestIndex',
meta: {
title: '首页',
hidden: true,
},
component: (resolve) => require(['@/views/pest/index'], resolve)
},
{
path: '/pest/agriculturalRecords',
name: 'pestAgriculturalRecords',
meta: {
title: '农事记录',
hidden: true,
},
component: (resolve) => require(['@/views/pest/agriculturalRecords/agriculturalRecords'], resolve)
},
{
path: '/pest/agriculturalRecordsAdd',
name: 'agriculturalRecordsAdd',
meta: {
title: '新增农事记录',
hidden: true,
},
component: (resolve) => require(['@/views/pest/agriculturalRecords/agriculturalRecordsAdd'], resolve)
},
{
path: '/pest/insectMonitoring',
name: 'insectMonitoring',
meta: {
title: '虫情监测',
hidden: true,
},
component: (resolve) => require(['@/views/pest/insectMonitoring/insectMonitoring'], resolve)
},
{
path: '/pest/soilTesting',
name: 'soilTesting',
meta: {
title: '土壤检测',
hidden: true,
},
component: (resolve) => require(['@/views/pest/soilTesting/soilTesting'], resolve)
},
{
path: '/pest/weather',
name: 'weather',
meta: {
title: '气象服务',
hidden: true,
},
component: (resolve) => require(['@/views/pest/weather/weather'], resolve)
},
{
path: '/pest/growthMonitoring',
name: 'growthMonitoring',
meta: {
title: '长势监测',
hidden: true,
},
component: (resolve) => require(['@/views/pest/growthMonitoring/growthMonitoring'], resolve)
},
{
path: '/pest/temperatureAndHumidity',
name: 'temperatureAndHumidity',
meta: {
title: '温湿度',
hidden: true,
},
component: (resolve) => require(['@/views/pest/temperatureAndHumidity/temperatureAndHumidity'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/login_code_new',
name: 'sunVillageInfoCodeLoginNew',
meta: {
title: '登录',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/login_code_new'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/index_code_rights_new',
name: 'sunVillageInfoCodeRightsNew',
meta: {
title: '首页',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/index_code_rights_new'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_revenueAndExpenditure',
name: 'sunVillageInfoRevenueAndExpendituresNew',
meta: {
title: '收支明细公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_revenueAndExpenditure'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets',
name: 'sunVillageInfoOperatingAssets',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets_detail',
name: 'sunVillageInfoOperatingAssetsDetail',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets_detail'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets_detail2',
name: 'sunVillageInfoOperatingAssetsDetail2',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets_detail2'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/login_farmer',
name: 'sunVillageInfoFarmerLogin',
meta: {
title: '村民验证登录',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/login_farmer'], resolve)
},
{ // 阳光村务(一村一码)-- 村民主页
path: '/sunVillage_info/index_farmer',
name: 'sunVillageInfoFarmerIndex',
meta: {
title: '阳光村务',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/index_farmer'], resolve)
},
{ ////阳光村务(一村一码)-- 财务公开榜
path: '/sunVillage_info/financeOpen',
name: 'sunVillageInfoFinanceOpen',
meta: {
title: '财务公开榜',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/financeOpen'], resolve)
},
];




+ 8
- 1
src/store/modules/user.js Dosyayı Görüntüle

@@ -17,6 +17,7 @@ const user = {
baseRoutingUrl: '',
businessLevel: '',
userId:null,
deptId:null,
},

mutations: {
@@ -41,6 +42,9 @@ const user = {
SET_LOGINDEPTID: (state, loginDeptId) => {
state.loginDeptId = loginDeptId
},
SET_DEPTID: (state, deptId) => {
state.deptId = deptId
},
SET_LOGINBOOKID: (state, loginBookId) => {
state.loginBookId = loginBookId
},
@@ -74,7 +78,7 @@ const user = {
commit('SET_TOKEN', res.token)
getInfo(res.token).then(response => {
const user = response.user
console.info(user.nickName);
//console.info(user.nickName);
// const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
const avatar = "";
if (response.roles && response.roles.length > 0) { // 验证返回的roles是否是一个非空数组
@@ -86,6 +90,7 @@ const user = {
commit('SET_BOOKNAME', user.bookName)
commit('SET_NAME', user.userName)
commit('SET_USERID', user.userId)
commit('SET_DEPTID', user.deptId)
commit('SET_LOGINDEPTID', user.loginDeptId)
commit('SET_LOGINBOOKID', user.loginBookId)
commit('SET_DEPTNAME', user.deptName)
@@ -157,6 +162,7 @@ const user = {
commit('SET_BOOKNAME', user.bookName)
commit('SET_NAME', user.userName)
commit('SET_USERID', user.userId)
commit('SET_DEPTID', user.deptId)
commit('SET_LOGINDEPTID', user.loginDeptId)
commit('SET_LOGINBOOKID', user.loginBookId)
commit('SET_DEPTNAME', user.deptName)
@@ -227,6 +233,7 @@ const user = {
commit('SET_BOOKNAME', user.bookName)
commit('SET_NAME', user.userName)
commit('SET_USERID', user.userId)
commit('SET_DEPTID', user.deptId)
commit('SET_LOGINDEPTID', user.loginDeptId)
commit('SET_LOGINBOOKID', user.loginBookId)
commit('SET_DEPTNAME', user.deptName)


+ 21
- 0
src/utils/finance.js Dosyayı Görüntüle

@@ -236,6 +236,27 @@ export const FINANCE = {
a = new BigNumber(a, 10);
return a.isZero();
},
sub(a, b) {
if(!(a instanceof BigNumber))
a = new BigNumber(a, 10);
if(!(b instanceof BigNumber))
b = new BigNumber(b, 10);
return a.minus(b, 10);
},
mul(a, b) {
if(!(a instanceof BigNumber))
a = new BigNumber(a, 10);
if(!(b instanceof BigNumber))
b = new BigNumber(b, 10);
return a.multipliedBy(b, 10);
},
div(a, b) {
if(!(a instanceof BigNumber))
a = new BigNumber(a, 10);
if(!(b instanceof BigNumber))
b = new BigNumber(b, 10);
return a.div(b, 10);
},
toNumber(a) {
if(typeof(a) === 'number')
return a;


+ 0
- 2
src/utils/global.js Dosyayı Görüntüle

@@ -1,10 +1,8 @@
const deptId = 100 ;
const severApi = 'http://192.168.31.107:8080';

export default
{
deptId,//区县ID
severApi,//全局API
}
export const REGION = {
YI_LONG_XIAN: '仪陇',


+ 12
- 5
src/utils/request.js Dosyayı Görüntüle

@@ -65,10 +65,11 @@ if(responseInterceptor === undefined){
responseInterceptor = service.interceptors.response.use(res => {
Toast.clear();
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
const code = res.data.code || 200 || '200';
// 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default']
// console.info(gqnum); && gqnum === 0
// console.log(code)
if (code === 401) {
// gqnum++;
Dialog.confirm({
@@ -82,9 +83,15 @@ if(responseInterceptor === undefined){
console.log('退出')
try {
let loginUrl = Cookies.get("_Login_url");
if(loginUrl && loginUrl.indexOf("onlineHomeLogin") !== -1) {
window.location.href = loginUrl;
return;
console.log('登录页面: ' + loginUrl)
if(loginUrl) {
if(loginUrl.indexOf("onlineHomeLogin") !== -1
|| loginUrl.indexOf('yinnongLiteLogin') !== -1
)
{
window.location.href = loginUrl;
return;
}
}
} catch (e) { console.log(e); }

@@ -135,7 +142,7 @@ if(responseInterceptor === undefined){
} else if (code === 500) {
Dialog.alert({ type: 'warning', message: msg });
return Promise.reject(new Error(msg))
} else if (code !== 200 && code !== 401) {
} else if (code !== 200 && code !== 401 && code !== '200') {
Dialog.alert({ type: 'warning', message: msg });
return Promise.reject('error')
} else {


+ 53
- 96
src/views/biddingHall/index.vue Dosyayı Görüntüle

@@ -1,21 +1,15 @@
<template>
<div>
<van-nav-bar
title="竞价大厅"
left-arrow
fixed
placeholder
@click-left="onClickLeft"
/>
<navBar title="竞价大厅" background="0" positionType="fixed"></navBar>
<van-search
v-model="value"
shape="round"
background="#fff"
background="linear-gradient(to top right,#91E1CA,#E0F4E4)"
placeholder="请输入搜索关键词"
@search="onSearch"
style="margin-top: -1PX;"
/>
<van-row>
<van-dropdown-menu>
<van-dropdown-menu active-color="#0EB8A4">
<van-dropdown-item v-model="value1" :options="projectTypeOption" @change="tabChange"/>
<van-dropdown-item :value="value2" :title="value2">
<van-tree-select
@@ -30,73 +24,28 @@
<van-dropdown-item v-model="value3" :options="option3" @change="tabChange"/>
</van-dropdown-menu>
</van-row>
<p class="biddingProcessTitle">
<img src="../../../static/images/title_icon.png" alt="">
竞价流程
</p>
<div class="biddingProcessContent">
<div class="head_box">
<p class="biddingProcessTitle">
<img src="../../../static/images/transaction_new/bidding/bidding_icon_01.png" alt="">
竞价流程
</p>
<div class="biddingProcessContent">

<div class="content_li">
<div class="biddingProcess">
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">查看项目</p>
</div>
<p class="biddingProcess_text">查看<br/>项目</p>

<div class="content_li">
<div class="biddingProcess">
<div></div>
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">注册报名</p>
</div>
<p class="biddingProcess_text">注册<br/>报名</p>

<div class="content_li">
<div class="biddingProcess">
<div></div>
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">交保证金</p>
</div>
<p class="biddingProcess_text">交保<br/>证金</p>

<div class="content_li">
<div class="biddingProcess">
<div></div>
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">资质审核</p>
</div>
<p class="biddingProcess_text">资质<br/>审核</p>

<div class="content_li">
<div class="biddingProcess">
<div></div>
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">参与竞价</p>
</div>
<p class="biddingProcess_text">参与<br/>竞价</p>

<div class="content_li">
<div class="biddingProcess">
<div></div>
<i></i>
<div></div>
</div>
<p class="biddingProcess_text">成交确认</p>
</div>
<p class="biddingProcess_text">成交<br/>确认</p>

<div class="content_li">
<div class="biddingProcess" style="justify-content: left;">
<div></div>
<i></i>
</div>
<p class="biddingProcess_text">结算交割</p>
</div>
<p class="biddingProcess_text">结算<br/>交割</p>

</div>
</div>
<!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">-->
<van-list
@@ -115,27 +64,27 @@
<span style="color: #848484">当前价:</span>

<!--自由竞价竞价中-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="item.biddingType=='自由竞价'&&item.deadline>0 && item.projectShowStatus == '正在竞价'">*</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="item.biddingType=='自由竞价'&&item.deadline>0 && item.projectShowStatus == '正在竞价'">*</span>
<!--自由竞价竞价中-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&item.money && item.projectShowStatus == '正在竞价'">*</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&item.money && item.projectShowStatus == '正在竞价'">*</span>
<!--自由竞价竞价结束(有人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&item.money && item.projectShowStatus != '正在竞价' && item.projectShowStatus != '等待竞价'">{{item.money}}{{item.priceUnit}}</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&item.money && item.projectShowStatus != '正在竞价' && item.projectShowStatus != '等待竞价'">{{item.money}}{{item.priceUnit}}</span>
<!--自由竞价竞价结束(无人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&!item.money">暂无出价</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType=='自由竞价'&&item.deadline<=0)&&!item.money">暂无出价</span>

<!--阶梯竞价竞价中(有人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline>0)&&item.money">{{item.money}}{{item.priceUnit}}</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline>0)&&item.money">{{item.money}}{{item.priceUnit}}</span>
<!--阶梯竞价竞价中(无人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline>0)&&!item.money">暂无出价</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline>0)&&!item.money">暂无出价</span>
<!--阶梯竞价竞价结束(有人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline<=0)&&item.money">{{item.money}}{{item.priceUnit}}</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline<=0)&&item.money">{{item.money}}{{item.priceUnit}}</span>
<!--阶梯竞价竞价结束(无人出价)-->
<span :style="{'font-size':'14px',color: {'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline<=0)&&!item.money">暂无出价</span>
<span :style="{'font-size':'14px',color: {'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',}[item.projectShowStatus]}" v-if="(item.biddingType!='自由竞价'&&item.deadline<=0)&&!item.money">暂无出价</span>

</p>
<p :style="{
color: {
'正在报名': '#007E72','等待竞价': '#848484','等待成交': '#848484','已经成交': '#848484','正在竞价': '#c21F3a',
'正在报名': '#0DBCAA','等待竞价': '#848484','等待成交': '#848484','已经成交': '#2D87E8','正在竞价': 'red',
}[item.projectShowStatus]}">{{item.projectShowStatus}}</p>
</div>
<div class="list_li_time">
@@ -167,9 +116,11 @@

<script>
import {getBiddingList, getDeptList} from "../../api/biddingHall";
import navBar from "@/components/common/nav_bar.vue";

export default {
name: "biddingHallApply",
components: { navBar },
data() {
return {
//标的物类型
@@ -397,7 +348,13 @@ export default {
</script>

<style scoped lang="scss">

.head_box{
background: linear-gradient(#96E0CF,#CBF1C8);
border-radius: 15PX;
width: 94%;
margin: 2vh auto 0;
padding: 1vh 3vw 2vh;
}
.list_li{
width: 94%;
background: #ffffff;
@@ -439,7 +396,8 @@ export default {
}

.van-search__content{
border:1px solid #007E72;
/*border:1px solid #007E72;*/
border-radius: 10Px;
}
/*>>> .van-dropdown-menu__title{*/
/* font-size: 14PX;*/
@@ -466,35 +424,34 @@ export default {
height:100%;
}
.biddingProcessTitle{
background-color:#007E72;
color:#fff;
color:#333333;
text-align: center;
line-height: 0.8rem;
font-size: 14PX;
font-size: 18PX;
display: flex;
align-items: center;
justify-content: center;
padding: 5PX 0;
justify-content: left;
img{
margin-right: 5PX;
width: 18PX;
width: 25PX;
}
}
.biddingProcess_text{
/*font-size: 1vh;*/
margin-top: 10PX;
color: #848484;
color: #333333;
background: #ffffff;
padding: 1vh;
line-height: 1;
border-radius: 10PX;
}
.biddingProcessContent{
padding:0.4rem 0;
background-color: #ffffff;
padding:3vw;
background-color: rgba(255,255,255,.5);
text-align: center;
display: flex;
align-items: flex-start;
justify-content: center;
.content_li{
width: 15%;
}
align-items: center;
justify-content: space-between;
border-radius: 10PX;
margin-top: 1vh;
}
.biddingProcessListLeftCol{
padding:10px 0.25rem 10px 0.3rem;


+ 18
- 6
src/views/contracted/village/contractor/contractWord.vue Dosyayı Görüntüle

@@ -25,7 +25,9 @@
</template>
</van-field>
<van-field v-model="form.ycbhtbm" label="原承包合同代码:" placeholder="请输入原承包合同代码" :border="false" input-align="left" maxlength="19" />
<van-field v-model="form.fbfbm" label="发包方代码:" placeholder="请输入发包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="14" />
<van-field v-model="form.fbfbm" label="发包方代码:" placeholder="请输入发包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" :disabled="isDisabled" maxlength="14" />
<van-field v-model="form.cbfbm" label="承包方代码:" placeholder="请输入承包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" :disabled="isDisabled" maxlength="18" />
<van-field v-model="form.cbfmc" label="承包方名称:" placeholder="请输入承包方名称" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="50" />
<van-field
v-model="cbflxText"
label="承包方类型:"
@@ -48,8 +50,6 @@
@cancel="showType = false"
/>
</van-popup>
<van-field v-model="form.cbfbm" label="承包方代码:" placeholder="请输入承包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" :disabled="isDisabled" maxlength="18" />
<van-field v-model="form.cbfmc" label="承包方名称:" placeholder="请输入承包方名称" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="50" />
<van-field
v-model="cbfsText"
label="承包方式:"
@@ -149,8 +149,9 @@
@cancel="showCbqxz = false"
/>
</van-popup>
<van-field v-model="form.cbdkzs" label="承包地块数:" placeholder="请输入承包地块数" required :rules="[{ required: true }]" :border="false" input-align="left" type="digit" />
<van-field v-model="form.htzmjm" label="合同面积(亩):" placeholder="请输入合同面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="left" type="number" />
<van-field v-model="form.cbdkzs" label="承包地块总数:" placeholder="请输入承包地块总数" required :rules="[{ required: true }]" :border="false" input-align="left" type="digit" />
<van-field v-model="form.htzmjm" label="合同总面积(亩):" placeholder="请输入合同总面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="left" type="number" />
<van-field v-model="form.yhtzmjm" label="原合同总面积(亩):" placeholder="请输入原合同总面积(亩)" :border="false" input-align="left" type="number" />
</van-form>
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p>
</div>
@@ -248,6 +249,16 @@
});
},
submitForm() {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能保存承包合同信息';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
this.$refs.formData.validate().then(() => {
if (this.form.id) {
updateCbht(this.form).then(response => {
@@ -293,6 +304,7 @@
cbqxz: null,
cbdkzs: null,
htzmjm: null,
yhtzmjm: null,
};
this.cbfsText = '家庭承包';
this.cbflxText = '农户';
@@ -359,7 +371,7 @@
}

/deep/ .van-field__label {
width: 225px;
width: 245px;
}

/deep/ .van-field--disabled .van-field__label {


+ 1
- 1
src/views/contracted/village/contractor/contractor.vue Dosyayı Görüntüle

@@ -186,7 +186,7 @@
},
deleteContractor(id, index) {
this.$dialog.confirm({
message: '是否确认删除此条承包方信息?',
message: '是否确认删除此条承包方信息以及与其相关联的家庭成员、承包合同、承包地块?',
}).then(() => {
// on confirm
deleteCbf(id).then(res => {


+ 113
- 2
src/views/contracted/village/contractor/contractorDetail.vue Dosyayı Görüntüle

@@ -70,7 +70,82 @@
<van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="100" />
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="6" />
<van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="15" />
<van-field v-model="form.cbfcysl" label="成员数量:" placeholder="请输入成员数量" required :rules="[{ required: true }]" :border="false" input-align="left" type="number" />
<van-field name="radio" label="是否有住房" :border="false" input-align="left">
<template #input>
<van-radio-group v-model="form.sfyzf" direction="horizontal">
<van-radio name="Y">是</van-radio>
<van-radio name="N">否</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field name="radio" label="是否在村居住" :border="false" input-align="left">
<template #input>
<van-radio-group v-model="form.sfzcjz" direction="horizontal">
<van-radio name="Y">是</van-radio>
<van-radio name="N">否</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
v-model="form.householdStatusText"
label="整户状态:"
placeholder="请选择整户状态"
:border="false"
input-align="left"
right-icon="arrow-down"
readonly
clickable
@click="showZhzt = true"
/>
<van-popup v-model="showZhzt" position="bottom">
<van-picker
show-toolbar
:columns="householdStatusOptions"
value-key="dictLabel"
@confirm="onConfirmHouseholdStatusOptions"
@cancel="showZhzt = false"
/>
</van-popup>
<van-field v-model="form.totalArea" label="总面积(亩):" placeholder="请输入总面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.qqArea" label="确权面积(亩):" placeholder="请输入确权面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.qtArea" label="其他面积(亩):" placeholder="请输入其他面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.dks" label="地块数(块):" placeholder="请输入地块数(块)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.zzjyArea" label="自主经营面积(亩):" placeholder="请输入自主经营面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.lzcArea" label="流转出面积(亩):" placeholder="请输入流转出面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.shArea" label="损毁面积(亩):" placeholder="请输入损毁面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.zzArea" label="征占面积(亩):" placeholder="请输入征占面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.cbfdcy" label="调查员:" placeholder="请输入调查员" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="50" />
<van-field v-model="form.cbfdcrq" label="调查日期:" placeholder="请选择调查日期" required :rules="[{ required: true }]"
:border="false" input-align="left" right-icon="arrow-down" readonly clickable @click="showDcrq = true" />
<van-popup v-model="showDcrq" position="bottom">
<van-datetime-picker
:value="form.cbfdcrq ? new Date(form.cbfdcrq) : new Date()"
type="date"
title="请选择调查日期"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmDcrq"
@cancel="showDcrq = false"
/>
</van-popup>
<van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="250" />
<van-field v-model="form.gsjsr" label="公示记事人:" placeholder="请输入公示记事人" :border="false" input-align="left" maxlength="50" />
<van-field v-model="form.gsjs" label="公示记事:" type="textarea" rows="3" placeholder="请输入公示记事" :border="false" input-align="left" maxlength="250" />
<van-field v-model="form.gsshr" label="公示审核人:" placeholder="请输入公示审核人" :border="false" input-align="left" maxlength="20" />
<van-field v-model="form.gsshrq" label="公示审核日期:" placeholder="请选择公示审核日期" :border="false" input-align="left" right-icon="arrow-down"
readonly clickable @click="showGsshrq = true" />
<van-popup v-model="showGsshrq" position="bottom">
<van-datetime-picker
:value="form.gsshrq ? new Date(form.gsshrq) : new Date()"
type="date"
title="请选择公示审核日期"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmGsshrq"
@cancel="showGsshrq = false"
/>
</van-popup>
</van-form>
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p>
</div>
@@ -81,17 +156,21 @@
<script>
import Cookies from "js-cookie";
import contractorHeader from "./contractorHeader";
import FieldRadio from "@/components/form/FieldRadio";
import { getCbf, updateCbf } from "@/api/contracted/cbf";

export default {
name: "contractedVillageContractor",
components: {
contractorHeader
contractorHeader,FieldRadio
},
data() {
return {
showType:false,
showZjType:false,
showZhzt:false,
showDcrq: false,
showGsshrq: false,
// 承包方信息表单
form: {},
// 承包方类型字典
@@ -100,6 +179,10 @@
credentialTypeOptions: [],
// 调查任务的完成状态:1表示已完成,2表示未完成
taskStatus: null,
// 整户状态类型字典
householdStatusOptions: [],
minDate: new Date(1978, 0, 1),
maxDate: new Date(2100, 11, 31),
};
},
created() {
@@ -110,6 +193,9 @@
this.getDicts("cert_type").then(response => {
this.credentialTypeOptions = response.data;
});
this.getDicts("household_status").then(response => {
this.householdStatusOptions = response.data;
});
},
mounted() {
setTimeout(() => {
@@ -122,6 +208,9 @@
this.form = response.data;
this.$set(this.form, 'cbflxText', this.selectDictLabel(this.contractorTypeOptions, response.data.cbflx));
this.$set(this.form, 'cbfzjlxText', this.selectDictLabel(this.credentialTypeOptions, response.data.cbfzjlx));
this.$set(this.form, 'householdStatusText', this.selectDictLabel(this.householdStatusOptions, response.data.householdStatus));
Cookies.set('householdStatus', this.form.householdStatus, { expires: 30 });
Cookies.set('householdStatusText', this.form.householdStatusText, { expires: 30 });
});
},
onConfirmTypeOptions(value){
@@ -134,6 +223,19 @@
this.form.cbfzjlxText = value.dictLabel;
this.showZjType = false;
},
onConfirmHouseholdStatusOptions(value){
this.form.householdStatus = value.dictValue;
this.form.householdStatusText = value.dictLabel;
this.showZhzt = false;
},
onConfirmDcrq(data) {
this.form.cbfdcrq = this.format(data, 'yyyy-MM-dd');
this.showDcrq = false;
},
onConfirmGsshrq(data) {
this.form.gsshrq = this.format(data, 'yyyy-MM-dd');
this.showGsshrq = false;
},
submitForm() {
this.$refs.formData.validate().then(() => {
updateCbf(this.form).then(response => {
@@ -178,7 +280,16 @@
padding: 0 4vw;
overflow: hidden;
}

/deep/ .van-field__label {
-webkit-box-flex: 0;
flex: none;
box-sizing: border-box;
width: 9em;
margin-right: 0.32rem;
color: #646566;
text-align: left;
word-wrap: break-word;
}
/deep/ .van-nav-bar{
background: transparent;
}


+ 133
- 3
src/views/contracted/village/contractor/contractorDetailAdd.vue Dosyayı Görüntüle

@@ -11,7 +11,7 @@

<div class="list_main">
<van-form ref="formData">
<van-field v-model="form.cbfbm" label="代码:" placeholder="<自动生成>" :border="false" input-align="left" maxlength="18">
<van-field v-model="form.cbfbm" label="代码:" placeholder="<自动生成>" :border="false" input-align="left" :disabled="true" maxlength="18">
<!-- <template #button>
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button>
</template> -->
@@ -66,7 +66,82 @@
<van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="100" />
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="6" />
<van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="15" />
<van-field v-model="form.cbfcysl" label="成员数量:" placeholder="请输入成员数量" required :rules="[{ required: true }]" :border="false" input-align="left" type="number" />
<van-field name="radio" label="是否有住房" :border="false" input-align="left">
<template #input>
<van-radio-group v-model="form.sfyzf" direction="horizontal">
<van-radio name="Y">是</van-radio>
<van-radio name="N">否</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field name="radio" label="是否在村居住" :border="false" input-align="left">
<template #input>
<van-radio-group v-model="form.sfzcjz" direction="horizontal">
<van-radio name="Y">是</van-radio>
<van-radio name="N">否</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
v-model="householdStatusText"
label="整户状态:"
placeholder="请选择整户状态"
:border="false"
input-align="left"
right-icon="arrow-down"
readonly
clickable
@click="showZhzt = true"
/>
<van-popup v-model="showZhzt" position="bottom">
<van-picker
show-toolbar
:columns="householdStatusOptions"
value-key="dictLabel"
@confirm="onConfirmHouseholdStatusOptions"
@cancel="showZhzt = false"
/>
</van-popup>
<van-field v-model="form.totalArea" label="总面积(亩):" placeholder="请输入总面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.qqArea" label="确权面积(亩):" placeholder="请输入确权面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.qtArea" label="其他面积(亩):" placeholder="请输入其他面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.dks" label="地块数(块):" placeholder="请输入地块数(块)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.zzjyArea" label="自主经营面积(亩):" placeholder="请输入自主经营面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.lzcArea" label="流转出面积(亩):" placeholder="请输入流转出面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.shArea" label="损毁面积(亩):" placeholder="请输入损毁面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.zzArea" label="征占面积(亩):" placeholder="请输入征占面积(亩)" :border="false" input-align="left" type="number"/>
<van-field v-model="form.cbfdcy" label="调查员:" placeholder="请输入调查员" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="50" />
<van-field v-model="form.cbfdcrq" label="调查日期:" placeholder="请选择调查日期" required :rules="[{ required: true }]"
:border="false" input-align="left" right-icon="arrow-down" readonly clickable @click="showDcrq = true" />
<van-popup v-model="showDcrq" position="bottom">
<van-datetime-picker
:value="new Date()"
type="date"
title="请选择调查日期"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmDcrq"
@cancel="showDcrq = false"
/>
</van-popup>
<van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="250" />
<van-field v-model="form.gsjsr" label="公示记事人:" placeholder="请输入公示记事人" :border="false" input-align="left" maxlength="50" />
<van-field v-model="form.gsjs" label="公示记事:" type="textarea" rows="3" placeholder="请输入公示记事" :border="false" input-align="left" maxlength="250" />
<van-field v-model="form.gsshr" label="公示审核人:" placeholder="请输入公示审核人" :border="false" input-align="left" maxlength="20" />
<van-field v-model="form.gsshrq" label="公示审核日期:" placeholder="请选择公示审核日期" :border="false" input-align="left" right-icon="arrow-down"
readonly clickable @click="showGsshrq = true" />
<van-popup v-model="showGsshrq" position="bottom">
<van-datetime-picker
:value="new Date()"
type="date"
title="请选择公示审核日期"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmGsshrq"
@cancel="showGsshrq = false"
/>
</van-popup>
</van-form>
<p class="btn" @click="submitForm">保存</p>
</div>
@@ -77,13 +152,21 @@
<script>
import Cookies from "js-cookie";
import { addCbf, generateContractorCode } from "@/api/contracted/cbf";
import FieldRadio from "@/components/form/FieldRadio";
import FieldSelect from "@/components/form/FieldSelect";

export default {
name: "contractedVillageContractorAdd",
components: {
FieldRadio,FieldSelect
},
data() {
return {
showType:false,
showZjType:false,
showZhzt:false,
showDcrq: false,
showGsshrq: false,
// 承包方信息表单
form: {
deptId: null,
@@ -96,16 +179,38 @@
yzbm: null,
lxdh: null,
cbfcysl: null,
cbfdcy: null,
cbfdcrq: null,
cbfdcjs: null,
gsjsr: null,
gsjs: null,
gsshr: null,
gsshrq: null,
sfyzf: 'Y',
sfzcjz: 'Y',
householdStatus: '1',
totalArea: null,
qqArea: null,
qtArea: null,
dks: null,
zzjyArea: null,
lzcArea: null,
shArea: null,
zzArea: null,
},
// 承包方类型(标签名)
cbflxText: '农户',
// 承包方证件类型(标签名)
cbfzjlxText: '居民身份证',
householdStatusText: "正常",
// 承包方类型字典
contractorTypeOptions: [],
// 承包方证件类型字典
credentialTypeOptions: [],
// 整户状态类型字典
householdStatusOptions: [],
minDate: new Date(1978, 0, 1),
maxDate: new Date(2100, 11, 31),
};
},
created() {
@@ -115,6 +220,9 @@
this.getDicts("cert_type").then(response => {
this.credentialTypeOptions = response.data;
});
this.getDicts("household_status").then(response => {
this.householdStatusOptions = response.data;
});
},
methods: {
onConfirmTypeOptions(value){
@@ -127,10 +235,23 @@
this.cbfzjlxText = value.dictLabel;
this.showZjType = false;
},
onConfirmHouseholdStatusOptions(value){
this.form.householdStatus = value.dictValue;
this.householdStatusText = value.dictLabel;
this.showZhzt = false;
},
onConfirmDcrq(data) {
this.form.cbfdcrq = this.format(data, 'yyyy-MM-dd');
this.showDcrq = false;
},
onConfirmGsshrq(data) {
this.form.gsshrq = this.format(data, 'yyyy-MM-dd');
this.showGsshrq = false;
},
submitForm() {
this.$refs.formData.validate().then(() => {
this.form.deptId = this.$route.params.deptId;
this.form.cbfcysl = 1;
// this.form.cbfcysl = 1;
addCbf(this.form).then(response => {
if (response.code == 200) {
this.$toast({
@@ -164,7 +285,16 @@
padding: 0 4vw;
overflow: hidden;
}

/deep/ .van-field__label {
-webkit-box-flex: 0;
flex: none;
box-sizing: border-box;
width: 9em;
margin-right: 0.32rem;
color: #646566;
text-align: left;
word-wrap: break-word;
}
/deep/ .van-nav-bar{
background: transparent;
}


+ 65
- 3
src/views/contracted/village/contractor/contractorFamily.vue Dosyayı Görüntüle

@@ -59,8 +59,8 @@
</div>
</template>
</van-swipe-cell>
<!-- getDetail不加(), 第一个参数默认传递的是event,getDetail加(), 需要手动传递$event -->
<p class="btn" @click="goDetail()" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">新增</p>
<!-- addMember不加(), 第一个参数默认传递的是event,addMember加(), 需要手动传递$event -->
<p class="btn" @click="addMember()" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">新增</p>
</div>
<van-popup v-model="showContractorPopup" position="bottom">
<van-search v-model="searchKeyword" placeholder="请输入姓名搜索" />
@@ -120,7 +120,7 @@
});
},
getContractorList() {
listCbf({deptId: this.$route.params.deptId}).then(response => {
listCbf({deptId: this.$route.params.deptId, householdStatus: '1'}).then(response => {
this.contractorList = response.rows;
});
},
@@ -135,6 +135,28 @@
}
});
},
addMember() {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能新增家庭成员信息';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
this.$router.push({
name: 'contractedVillageContractorFamilyDetail',
params: {
id: undefined,
deptId: this.$route.params.deptId,
cbfbm: this.$route.params.cbfbm,
cbfmc: this.$route.params.cbfmc,
surveyStatus: this.$route.params.surveyStatus
}
});
},
goDetail(id) {
this.$router.push({
name: 'contractedVillageContractorFamilyDetail',
@@ -148,6 +170,16 @@
});
},
deleteFamilyMember(id, index) {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能删除家庭成员信息';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
this.$dialog.confirm({
message: '是否确认删除此条家庭成员信息?',
}).then(() => {
@@ -163,6 +195,16 @@
});
},
householdDivision(item, index) {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能执行分户操作';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
if (item.yhzgx === '户主') {
this.$toast.fail('该成员身份为户主,不能分户');
return false;
@@ -188,6 +230,16 @@
});
},
householdTransfer(item) {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能执行移户操作';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
if (item.yhzgx === '户主') {
this.$toast.fail('该成员身份为户主,不能移户');
return false;
@@ -220,6 +272,16 @@
});
},
houseHolder(item) {
let householdStatus = Cookies.get('householdStatus');
if (householdStatus !== '1') {
let msg = '当前承包方已' + Cookies.get('householdStatusText') + ',不能执行设为户主操作';
this.$toast({
icon: 'fail', // 找到自己需要的图标
message: msg,
duration:"2000"
});
return;
}
if (item.yhzgx === '户主') {
this.$toast.fail('该成员身份为户主,无需设置');
return false;


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor

Yükleniyor…
İptal
Kaydet