数字化园区前端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Business.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <template>
  2. <div class="business" data-1664518006392 v-loading="pageLoading" element-loading-text="数据加载中...">
  3. <div class="business-header" :class="{'is-claimed':isClaimed}">
  4. <Nav />
  5. <div class="header-container">
  6. <div class="company-name">
  7. <div class="company-span fl">
  8. 用户名:{{ currentAccount ? currentAccount.accountName : ''}}
  9. </div>
  10. <span class="logout fl" @click="logout">退出登录</span>
  11. <!-- 未认领,未入驻园区 -->
  12. <div class="company-btn fr" v-if="!isClaimed">
  13. 我是企业,<span class="btn-span" @click="openApplyForAdmission">我要入驻园区</span>
  14. <img src="~@assets/image/myRelated/companyBtnIcon.png" alt="icon"></img>
  15. </div>
  16. <!-- 未认领 -->
  17. <!-- <div class="company-btn fr" v-if="!isClaimed">
  18. <span class="btn-span" @click="showClaimDialog = true">认领企业</span>
  19. <img src="~@assets/image/myRelated/companyBtnIcon.png" alt="icon">
  20. </div> -->
  21. </div>
  22. <div class="comany-info-box" v-if="isClaimed">
  23. <div class="main-img-box fl">
  24. 主图
  25. </div>
  26. <div class="main-info fl">
  27. <div class="main-title-box">
  28. <div class="main-title fl">
  29. 上海禾获仁网络科技有限公司上海禾获仁网络科技有限公司上海禾获仁网络科技有限公司上海禾获仁网络科技有限公司上海禾获仁网络科技有限公司
  30. </div>
  31. <div class="main-icon fl">
  32. <img src="~@assets/image/myRelated/isClaimedIcon.png" alt="">
  33. 已认领
  34. </div>
  35. </div>
  36. <div class="main-tag-box">
  37. <span v-for="(tag,inx) of comanyTags" :key="inx" class="tag-span fl">
  38. {{ tag }}
  39. </span>
  40. </div>
  41. <div class="main-other-info">
  42. <el-row :gutter="20">
  43. <el-col :span="info.span" v-for="(info,inx) of mainOtherInfo" :key="inx" class="info-col">
  44. <span class="label-span">{{ info.label }}:</span>
  45. <span class="value-span">{{ companyDetail[info.value] }}</span>
  46. </el-col>
  47. </el-row>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="body-container">
  54. <div class="my-message-box">
  55. <div class="title">
  56. <span class="title-span">我的消息</span>
  57. <span class="num-msg" v-if="notRead > 0">(您有{{ notRead }}条未读通知)</span>
  58. <div class="more-icon fr" @click="goPath('/my-message')">
  59. <img src="~@assets/image/index/icon_more.png" alt="more" />
  60. </div>
  61. </div>
  62. <div class="msg-list">
  63. <div class="msg-list-item" v-for="(item,inx) of myMsgList" :key="inx" @click="openDetail(item)">
  64. <div class="icon fl"></div>
  65. <div class="msg-text fl">{{ item.title }}</div>
  66. <div class="msg-time fr">{{ item.createdOn | formatDate("YYYY-MM-DD HH:mm") }}</div>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="tax-query-box my-message-box">
  71. <div class="title">
  72. <span class="title-span">税收查询</span>
  73. <div class="more-icon fr" @click="goPath('/tax-inquiry')">
  74. <img src="~@assets/image/index/icon_more.png" alt="more" />
  75. </div>
  76. </div>
  77. <!-- 没授权 -->
  78. <div class="tax-content" v-if="!isAuthorize">
  79. <div class="tax-btn">
  80. <el-button type="primary">企业授权</el-button>
  81. </div>
  82. <div class="tax-info">
  83. 企业授权后即可进行税收查询
  84. </div>
  85. </div>
  86. <!-- 已授权 -->
  87. <div class="tax-content" v-else>
  88. <div class="tax-content-title">
  89. <div class="fl tax-item" v-for="(item,inx) of taxComanyInfo" :key="inx" :style="{'width': item.width + '%'}">
  90. <div class="tax-info-box">
  91. <div class="fl tax-icon-box">
  92. <img :src="require('@assets/image/myRelated/' + item.icon + '.png')" alt="icon">
  93. </div>
  94. <div class="fl tax-right-content">
  95. <div class="tax-right-title" :title="item.label">{{ item.label }}</div>
  96. <div class="tax-right-value" :title="item.value">{{ item.value }}</div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <el-table class="tax-tabel" :border="true" :data="taxTableData">
  102. <el-table-column prop="v1" label="申报类型" />
  103. <el-table-column prop="v2" label="申报日期" />
  104. <el-table-column prop="v3" label="开始日期" />
  105. <el-table-column prop="v4" label="结束日期" />
  106. <el-table-column prop="v5" label="金额" />
  107. </el-table>
  108. </div>
  109. </div>
  110. </div>
  111. <Footer />
  112. <!-- 入驻园区 -->
  113. <ApplyForAdmission ref="ApplyForAdmission"/>
  114. <!-- 消息详情 -->
  115. <MessageDetailDialog ref="MessageDetailDialog" @close="initData"/>
  116. </div>
  117. </template>
  118. <script>
  119. import "./Business.scss";
  120. import Nav from "@components/Header.vue";
  121. import Footer from "@components/Footer.vue";
  122. import { logout } from '@api/login';
  123. import { getCompanyById } from '@api/company';
  124. import { routerOpenInNewWindow } from "@/utils/common.js";
  125. import { mapGetters } from "vuex";
  126. import ApplyForAdmission from "@/views/index/ApplyForAdmission.vue";
  127. import MessageDetailDialog from "../mseeage/components/MessageDetailDialog/index.vue";
  128. import { getMessageNoticeList,markReadMessage } from "@api/my-related";
  129. export default {
  130. components: { Nav, Footer,ApplyForAdmission,MessageDetailDialog },
  131. computed: {
  132. ...mapGetters({
  133. currentAccount: "currentAccount",
  134. }),
  135. },
  136. data() {
  137. return {
  138. pageLoading:false,
  139. companyDetail:{},
  140. // 是否认领企业
  141. isClaimed: false,
  142. // 认领企业弹框
  143. showClaimDialog: false,
  144. // 是否入驻园区
  145. isSettleParl: false,
  146. // 公司标签
  147. comanyTags:["科技型中小企业1","科技型中小企业2","科技型中小企业3","科技型中小企业4","科技型中小企业5","科技型中小企业科技型中小企业科技型中小企业科技型中小企业科技型中小企业6","科技型中小企业7","科技型中小企业","科技型中小企业科技型中小企业",],
  148. // 公司信息
  149. mainOtherInfo:[
  150. {
  151. label:"法人代表",
  152. value:"legalPerson",
  153. span:7
  154. },
  155. {
  156. label:"统一社会信用代码",
  157. value:"creditCode",
  158. span:10
  159. },
  160. {
  161. label:"电话",
  162. value:"companyMobilePhone",
  163. span:7
  164. },
  165. {
  166. label:"网站",
  167. value:"www.hhrchina.com",
  168. span:7
  169. },
  170. {
  171. label:"成立日期",
  172. value:"establishOn",
  173. span:10
  174. },
  175. {
  176. label:"邮箱",
  177. value:"email",
  178. span:7
  179. },
  180. ],
  181. // 我的消息
  182. myMsgList:[],
  183. // 未读条数
  184. notRead:0,
  185. // 是否授权
  186. isAuthorize:true,
  187. // 税收查询公司信息
  188. taxComanyInfo:[
  189. {
  190. label:"公司名称",
  191. value:"上海禾获仁网络科技有限公司",
  192. icon:'tax-1',
  193. width:29
  194. },
  195. {
  196. label:"纳税人识别号",
  197. value:"91310115MA1H71QG17",
  198. icon:'tax-2',
  199. width:29
  200. },
  201. {
  202. label:"税务征信等级",
  203. value:"SSS",
  204. icon:'tax-3',
  205. width:20
  206. },
  207. {
  208. label:"评价得分(大查柜)",
  209. value:"98(2015)",
  210. icon:'tax-4',
  211. width:22
  212. },
  213. ],
  214. taxTableData:[
  215. {
  216. v1:"企业所得税",
  217. v2:"2022-12-23",
  218. v3:"2022-12-23",
  219. v4:"2022-12-23",
  220. v5:"50066.25",
  221. },
  222. {
  223. v1:"企业所得税",
  224. v2:"2022-12-23",
  225. v3:"2022-12-23",
  226. v4:"2022-12-23",
  227. v5:"50066.25",
  228. },
  229. ],
  230. };
  231. },
  232. mounted(){
  233. this.initData();
  234. },
  235. methods: {
  236. // 初始化加载数据
  237. initData(){
  238. console.log(this.$cloneDeep(this.currentAccount),'登录信息');
  239. this.pageLoading = true;
  240. Promise.all([
  241. // 获取企业信息
  242. this.getCompanyById(),
  243. // 获取我的消息
  244. this.getMessageNoticeList()
  245. ]).then(()=>{
  246. this.pageLoading = false;
  247. })
  248. },
  249. // 获取企业信息
  250. getCompanyById(){
  251. return new Promise( (resolve, reject) => {
  252. getCompanyById({companyId:this.currentAccount.accountId}).then(res => {
  253. if(res.data.status == 0){
  254. this.companyDetail = res.data.data;
  255. // 测试代码,让企业已认领
  256. this.isClaimed = this.companyDetail.claimState;
  257. console.log(this.$cloneDeep(this.companyDetail),'企业信息')
  258. }else if(res.data.status == 102){
  259. this.$router.push('/login')
  260. }else {
  261. this.$message.error(res.data.msg);
  262. }
  263. resolve();
  264. }).catch(err => {
  265. console.log(err);
  266. resolve();
  267. })
  268. })
  269. },
  270. // 我的消息
  271. getMessageNoticeList(){
  272. let param = {
  273. page:1,
  274. pageSize:10
  275. };
  276. getMessageNoticeList(param).then(res => {
  277. if(res.data.status == 0){
  278. const data = res.data.data;
  279. let { resultData } = data;
  280. this.myMsgList = resultData.list;
  281. this.notRead = resultData.total - data.readCount;
  282. this.notRead = this.notRead < 0 ? 0 : this.notRead;
  283. }else if(res.data.status == 102){
  284. this.$router.push('/login')
  285. }else {
  286. this.$message.error(res.data.msg);
  287. }
  288. }).catch(err => {
  289. console.log(err);
  290. resolve();
  291. })
  292. },
  293. markReadMessage(list) {
  294. markReadMessage(list).then(() => {}).catch((err) => {});
  295. },
  296. // 跳转路由
  297. goPath(path){
  298. console.log(1);
  299. routerOpenInNewWindow({
  300. path,
  301. });
  302. },
  303. // 获取公司名称
  304. getCompanyName() {
  305. let companyName = "未认领企业";
  306. // 如果已认领但是未入驻园区
  307. if (this.isClaimed) {
  308. companyName = "上海禾获仁网络科技有限公司";
  309. }
  310. return companyName;
  311. },
  312. // 打开详情
  313. openDetail(row){
  314. this.$refs.MessageDetailDialog.openDialog(row)
  315. if(!row.isRead){
  316. row.isRead = true;
  317. this.markReadMessage([row.messageNoticeId]);
  318. }
  319. },
  320. // 入驻园区
  321. openApplyForAdmission(){
  322. this.$refs.ApplyForAdmission.showDialog();
  323. },
  324. // 退出登录
  325. logout(){
  326. this.$confirm('确认是否退出登录', '提示', {
  327. confirmButtonText: '确定',
  328. cancelButtonText: '取消',
  329. type: 'warning'
  330. }).then(() => {
  331. logout().then(()=>{
  332. this.$store.dispatch('getUserInfo').then(()=>{
  333. this.$router.push('/login');
  334. this.$message.info("已退出登录")
  335. })
  336. })
  337. }).catch(() => {});
  338. },
  339. },
  340. };
  341. </script>
  342. <style>
  343. </style>