数字化园区前端项目
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. <!-- 园区企业详情 -->
  2. <template>
  3. <div class="">
  4. <section class="nav_box">
  5. <Nav></Nav>
  6. <div class="second_nv">
  7. <div>
  8. <div class="position">
  9. <img src="" alt="" />
  10. <span>
  11. 当前位置:
  12. <span class="pointer">园区企业</span>
  13. <span style="margin:0 4px;">></span>
  14. <span class="current pointer">详情</span>
  15. </span>
  16. </div>
  17. </div>
  18. </div>
  19. <div class="detail_box">
  20. <section class="top_box">
  21. <div class="company_img_box">
  22. <img class="company_img" src="" alt="" />
  23. <div class="tip_img"></div>
  24. </div>
  25. <div class="right_box">
  26. <div class="top_row">
  27. <span>{{ companyInfo.companyName }}</span>
  28. <div>
  29. <span class="pointer">
  30. <img src="@assets/image/company/icon_save.png" alt="保存" />
  31. 保存
  32. </span>
  33. <span class="pointer">
  34. <img src="@assets/image/company/icon_cancel.png" alt="取消" />
  35. 取消
  36. </span>
  37. <span class="pointer">
  38. <img src="@assets/image/company/icon_edit.png" alt="编辑" />
  39. 编辑
  40. </span>
  41. <span class="pointer">
  42. <img src="@assets/image/company/icon_claim.png" alt="认领" />
  43. 认领
  44. </span>
  45. </div>
  46. </div>
  47. <div class="middle_row">
  48. <div class="company_type">
  49. <span>{{ companyInfo.enterpriseLabel }}</span>
  50. <span>科技型中小企业</span>
  51. <span>科技型中小企业</span>
  52. <span>科技型中小企业</span>
  53. </div>
  54. <div class="time">
  55. <img src="" alt="" />
  56. <span>
  57. 更新时间:{{
  58. companyInfo.modifiedOn | formatDate("YYYY-MM-DD")
  59. }}
  60. </span>
  61. </div>
  62. </div>
  63. <div class="company_info">
  64. <div>
  65. 法人代表:
  66. <span>{{ companyInfo.legalPerson }}</span>
  67. </div>
  68. <div>
  69. 统一社会信用代码:
  70. <span>{{ companyInfo.creditCode }}</span>
  71. </div>
  72. <div>
  73. 电话:
  74. <span>{{ companyInfo.companyMobilePhone }}</span>
  75. </div>
  76. <div>
  77. 法人代表:
  78. <span>www.hhrchina.com</span>
  79. </div>
  80. <div>
  81. 成立日期:
  82. <span>
  83. {{ companyInfo.establishOn | formatDate("YYYY-MM-DD") }}
  84. </span>
  85. </div>
  86. <div>
  87. 邮箱:
  88. <span>{{ companyInfo.email }}</span>
  89. </div>
  90. </div>
  91. </div>
  92. </section>
  93. <div class="tab_box">
  94. <span
  95. :class="['pointer', activeTab === item.value ? 'active' : '']"
  96. v-for="item in tabs"
  97. :key="item.value"
  98. @click="changeTab(item)"
  99. >
  100. {{ item.name }}
  101. </span>
  102. </div>
  103. </div>
  104. </section>
  105. <section class="content_box">
  106. <basic-info :companyInfo="companyInfo"></basic-info>
  107. <company-dev :companyInfo="companyInfo"></company-dev>
  108. <!-- <intellectual-property :companyInfo="companyInfo"></intellectual-property> -->
  109. <other-info :companyInfo="companyInfo"></other-info>
  110. </section>
  111. <Footer></Footer>
  112. <claim-dialog></claim-dialog>
  113. </div>
  114. </template>
  115. <script>
  116. //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  117. //例如:import 《组件名称》 from '《组件路径》';
  118. import Nav from "@components/Header.vue";
  119. import Footer from "@components/Footer.vue";
  120. import BasicInfo from "./components/BasicInfo.vue";
  121. import CompanyDev from "./components/CompanyDev.vue";
  122. // import IntellectualProperty from "./components/IntellectualProperty.vue";
  123. import OtherInfo from "./components/OtherInfo.vue";
  124. import ClaimDialog from "./components/ClaimDialog.vue";
  125. import { getCompanyById } from "@api/company";
  126. export default {
  127. //import引入的组件需要注入到对象中才能使用
  128. components: {
  129. Nav,
  130. Footer,
  131. BasicInfo,
  132. CompanyDev,
  133. // IntellectualProperty,
  134. OtherInfo,
  135. ClaimDialog,
  136. },
  137. data() {
  138. //这里存放数据
  139. return {
  140. companyId: "",
  141. tabs: [
  142. {
  143. name: "基本信息",
  144. value: 1,
  145. },
  146. {
  147. name: "企业发展",
  148. value: 2,
  149. },
  150. // {
  151. // name: "知识产权",
  152. // value: 3,
  153. // },
  154. {
  155. name: "其他信息(可编辑)",
  156. value: 4,
  157. },
  158. ],
  159. activeTab: 1,
  160. companyInfo: null,
  161. };
  162. },
  163. //监听属性 类似于data概念
  164. computed: {},
  165. //监控data中的数据变化
  166. watch: {},
  167. //方法集合
  168. methods: {
  169. changeTab(item) {
  170. this.activeTab = item.value;
  171. },
  172. getData() {
  173. let params = {
  174. companyId: this.companyId,
  175. };
  176. getCompanyById(params)
  177. .then(res => {
  178. console.log(res.data);
  179. if (res.data.status == 0) {
  180. this.companyInfo = res.data.data;
  181. } else {
  182. this.$message.error(`获取数据失败,请刷新重试!`);
  183. }
  184. this.pageLoading = false;
  185. })
  186. .catch(err => {
  187. this.$message.error(`获取数据失败,失败原因${err},请刷新重试!`);
  188. });
  189. },
  190. },
  191. //生命周期 - 创建完成(可以访问当前this实例)
  192. created() {
  193. this.companyId = this.$route.query.companyId;
  194. this.getData();
  195. },
  196. //生命周期 - 挂载完成(可以访问DOM元素)
  197. mounted() {},
  198. };
  199. </script>
  200. <style lang="scss" scoped>
  201. //@import url(); 引入公共css类
  202. .nav_box {
  203. background: url("~@assets/image/company/bg_company.png") no-repeat;
  204. position: relative;
  205. .second_nv {
  206. @include size(100%, 250px);
  207. > div {
  208. @include size($wrapWidth, 100%);
  209. margin: 0 auto;
  210. @include flex(column, flex-start, flex-start, null);
  211. position: relative;
  212. }
  213. .position {
  214. @include flex(row, flex-start, center, null);
  215. img {
  216. @include size(16px, 16px);
  217. background: #ffffff;
  218. margin-right: 6px;
  219. }
  220. padding-top: 10px;
  221. @include border-box;
  222. @include font(16px, #ffffff);
  223. .current {
  224. font-weight: 600;
  225. }
  226. }
  227. }
  228. }
  229. .detail_box {
  230. @include size($wrapWidth, 320px);
  231. padding: 30px 30px 10px;
  232. @include border-box;
  233. background-image: linear-gradient(0deg, #ffffff 0%, #cce7fa 100%);
  234. position: absolute;
  235. left: 50%;
  236. bottom: -50%;
  237. transform: translateX(-50%);
  238. @include flex(column, space-between, flex-start, nowrap);
  239. .tab_box {
  240. width: 100%;
  241. @include flex(row, flex-start, flex-start, null);
  242. border: solid 1px #bcd8e9;
  243. @include border-box;
  244. background: #ffffff;
  245. span {
  246. @include size(200px, 50px);
  247. @include font(16px, #637485);
  248. @include flex(row, center, center, null);
  249. border-right: solid 1px #bcd8e9;
  250. @include border-box;
  251. }
  252. .active {
  253. background-image: linear-gradient(0deg, #ffffff 0%, #cce7fa 100%);
  254. }
  255. }
  256. .top_box {
  257. @include flex(row, space-between, center, nowrap);
  258. .company_img_box {
  259. @include size(220px, 200px);
  260. position: relative;
  261. .company_img {
  262. background: pink;
  263. @include size(200px, 100%);
  264. }
  265. .tip_img {
  266. @include size(68px, 22px);
  267. background-image: linear-gradient(135deg, #4bbe8e 0%, #22a76f 100%);
  268. position: absolute;
  269. top: 20px;
  270. left: 0;
  271. }
  272. }
  273. .right_box {
  274. height: 200px;
  275. flex: 1;
  276. @include flex(column, space-between, flex-start, nowrap);
  277. .top_row {
  278. width: 100%;
  279. @include flex(row, space-between, center, null);
  280. > span {
  281. @include font(24px, #334a5f);
  282. font-weight: 600;
  283. }
  284. > div {
  285. @include flex(row, flex-start, center, null);
  286. @include font(16px, #ffffff);
  287. > span {
  288. img {
  289. @include size(20px, 20px);
  290. background: #fff;
  291. margin-right: 8px;
  292. }
  293. @include size(90px, 30px);
  294. background-image: linear-gradient(135deg, #42a6fe 0%, #0070d2 100%);
  295. border-radius: 15px;
  296. margin-left: 10px;
  297. @include flex(row, center, center, null);
  298. @include border-box;
  299. }
  300. }
  301. }
  302. .middle_row {
  303. width: 100%;
  304. @include flex(row, space-between, center, null);
  305. .company_type {
  306. > span {
  307. @include font(14px, #0086e7);
  308. padding: 2px 8px;
  309. border: solid 1px #0086e7;
  310. @include border-box;
  311. margin-right: 10px;
  312. }
  313. }
  314. .time {
  315. @include flex(row, center, center, null);
  316. img {
  317. @include size(20px, 20px);
  318. background: #fff;
  319. margin-right: 8px;
  320. }
  321. @include font(14px, #637485);
  322. }
  323. }
  324. .company_info {
  325. @include size(100%, 100px);
  326. @include font(14px, #637485);
  327. background-color: #f4fafe;
  328. @include flex(row, space-between, center, wrap);
  329. padding: 20px;
  330. @include border-box;
  331. > div {
  332. width: 30%;
  333. span {
  334. color: #334a5f;
  335. font-weight: 600;
  336. }
  337. }
  338. > div:nth-child(3n + 2) {
  339. width: 40%;
  340. }
  341. }
  342. }
  343. }
  344. }
  345. .content_box {
  346. width: $wrapWidth;
  347. margin: 0 auto;
  348. padding: 200px 0 30px 0;
  349. @include border-box;
  350. }
  351. </style>