index.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  1. <template>
  2. <div class="app-container">
  3. <!-- <div class="header">
  4. <span>
  5. 项目详情 >
  6. </span>
  7. </div> -->
  8. <div style="height: 15px"></div>
  9. <div class="naue">
  10. <!-- //步骤条 -->
  11. <div class="nuae_wtu">
  12. <div class="naue_one">
  13. <p class="naue_name">项目名称:{{oekjg.name == null ? '' : oekjg.name}}</p>
  14. <p>返乡创业:{{oekjg.isBackbussiness == "Y"? '是' : '否'}}</p>
  15. <p>所属行业:{{oekjg.industry == null ? '' : oekjg.industry}}</p>
  16. </div>
  17. <div class="naue_two">
  18. <el-steps :active="naueactive" align-center finish-status="success">
  19. <el-step
  20. v-for="(item, index) in configList"
  21. :key="index"
  22. :title="item.dictLabel"
  23. ></el-step>
  24. <!-- <el-step title="线索审核成功"></el-step>
  25. <el-step title="签约审核成功"></el-step>
  26. <el-step title="在建审核成功"></el-step>
  27. <el-step title="结束"></el-step> -->
  28. </el-steps>
  29. </div>
  30. </div>
  31. <!-- //tab栏 -->
  32. <!-- <div class="naue_tab">
  33. <p @click="tabClid(index)" v-for="(item,index) in tabNume" :key="index" :class="[tab == index? 'p' : '']">{{item}}</p>
  34. </div> -->
  35. <my-tabs :tabList="tabList" :tabIndex="tabIndex" @changeTab="changeTab">
  36. <keep-alive>
  37. <component :is="currentContent"> </component>
  38. </keep-alive>
  39. </my-tabs>
  40. <!-- 内容的显示隐藏 -->
  41. <!-- 在建项目 -->
  42. </div>
  43. <!-- 添加或修改参数配置对话框 -->
  44. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="800px" append-to-body>
  45. <el-form ref="form" :model="form" :rules="rules" label-width="150px">
  46. <el-form-item label="企业名称" prop="configName">
  47. <el-input v-model="form.configName" placeholder="请输入企业名称" />
  48. </el-form-item>
  49. <el-form-item label="企业所在地" prop="configKey">
  50. <el-input v-model="form.configKey" placeholder="请输入参数键名" />
  51. </el-form-item>
  52. <el-form-item label="法人代表姓名" prop="configValue">
  53. <el-input v-model="form.configValue" placeholder="请输入参数键值" />
  54. </el-form-item>
  55. <el-form-item label="系统内置" prop="configType">
  56. <el-radio-group v-model="form.configType">
  57. <el-radio
  58. v-for="dict in typeOptions"
  59. :key="dict.dictValue"
  60. :label="dict.dictValue"
  61. >{{ dict.dictLabel }}</el-radio
  62. >
  63. </el-radio-group>
  64. </el-form-item>
  65. <el-form-item label="统一社会信用代码" prop="remark">
  66. <el-input
  67. v-model="form.remark"
  68. placeholder="请输入统一社会信用代码"
  69. />
  70. </el-form-item>
  71. <el-form-item label="联系方式" prop="remark">
  72. <el-input v-model="form.remark" placeholder="请输入联系方式" />
  73. </el-form-item>
  74. </el-form>
  75. <div slot="footer" class="dialog-footer">
  76. <el-button type="primary" @click="submitForm">确 定</el-button>
  77. <el-button @click="cancel">取 消</el-button>
  78. </div>
  79. </el-dialog>
  80. </div>
  81. </template>
  82. <script>
  83. import {
  84. listConfig,
  85. listConfigther,
  86. listConfigtheroie,
  87. getConfig,
  88. delConfig,
  89. addConfig,
  90. updateConfig,
  91. exportConfig,
  92. clearCache,
  93. } from "@/api/system/config";
  94. import myTabs from "../../tab/index.vue";
  95. import One from "../../under/index.vue";
  96. import Two from "../nstruction/index.vue";
  97. import Three from "../roduction/index.vue";
  98. import Four from "../../../components/ProjectDec/SignContract.vue";
  99. export default {
  100. name: "Config",
  101. components: {
  102. myTabs,
  103. one: One,
  104. two: Two,
  105. three: Three,
  106. four: Four,
  107. },
  108. data() {
  109. return {
  110. tabIndex: 0,
  111. currentContent: "one",
  112. tabList: [
  113. {
  114. index: 0,
  115. name: "线索信息",
  116. component: "one",
  117. },
  118. {
  119. index: 2,
  120. name: "签约信息",
  121. component: "four",
  122. },
  123. {
  124. index: 3,
  125. name: "在建信息",
  126. component: "two",
  127. },
  128. {
  129. index: 4,
  130. name: "投产信息",
  131. component: "three",
  132. },
  133. ],
  134. // 遮罩层
  135. loading: true,
  136. //步骤条
  137. naueactive: 0,
  138. tab: 1,
  139. tabNume: ["线索信息", "签约信息", "在建信息", "投产信息"],
  140. // 选中数组
  141. ids: [],
  142. // 非单个禁用
  143. single: true,
  144. // 非多个禁用
  145. multiple: true,
  146. // 显示搜索条件
  147. showSearch: true,
  148. // 总条数
  149. total: 0,
  150. // 参数表格数据
  151. configList: [],
  152. // 弹出层标题
  153. title: "",
  154. // 是否显示弹出层
  155. open: false,
  156. // 类型数据字典
  157. typeOptions: [],
  158. // 日期范围
  159. dateRange: [],
  160. // 查询参数
  161. queryParams: {
  162. // pageNum: 1,
  163. // pageSize: 10,
  164. // configName: undefined,
  165. // configKey: undefined,
  166. // configType: undefined
  167. },
  168. // 表单参数
  169. form: {},
  170. // 表单校验
  171. rules: {
  172. configName: [
  173. { required: true, message: "参数名称不能为空", trigger: "blur" },
  174. ],
  175. configKey: [
  176. { required: true, message: "参数键名不能为空", trigger: "blur" },
  177. ],
  178. configValue: [
  179. { required: true, message: "参数键值不能为空", trigger: "blur" },
  180. ],
  181. },
  182. bmProjectId:0,
  183. oekjg:{}
  184. };
  185. },
  186. created() {
  187. if (this.$route.query.setrd == 0) {
  188. this.naueactive = this.$route.query.setrd - 0;
  189. } else {
  190. this.naueactive = this.$route.query.setrd - 0 - 1;
  191. }
  192. this.tabIndex = this.$route.query.tabIndex-0 || 0
  193. if(this.tabIndex==0){
  194. this.currentContent = 'one'
  195. }else if(this.tabIndex==2){
  196. this.currentContent = 'four'
  197. }else if(this.tabIndex==3){
  198. this.currentContent = 'two'
  199. }else if(this.tabIndex==4){
  200. this.currentContent = 'three'
  201. }
  202. this.bmProjectId = this.$route.query.setid
  203. this.getList();
  204. this.getListList(this.bmProjectId );
  205. this.getDicts("sys_yes_no").then((response) => {
  206. this.typeOptions = response.data;
  207. });
  208. },
  209. methods: {
  210. /** 查询参数列表 */
  211. getList() {
  212. this.loading = true;
  213. listConfigther().then((response) => {
  214. console.log(response);
  215. this.configList = response.data;
  216. // this.total = response.total;
  217. this.loading = false;
  218. });
  219. },
  220. getListList(index) {
  221. this.loading = true;
  222. listConfigtheroie(index).then((response) => {
  223. console.log(response);
  224. this.oekjg = response.data
  225. // this.configList = response.data;
  226. // this.total = response.total;
  227. this.loading = false;
  228. });
  229. },
  230. // 参数系统内置字典翻译
  231. typeFormat(row, column) {
  232. return this.selectDictLabel(this.typeOptions, row.configType);
  233. },
  234. // 取消按钮
  235. cancel() {
  236. this.open = false;
  237. this.reset();
  238. },
  239. // 表单重置
  240. reset() {
  241. this.form = {
  242. configId: undefined,
  243. configName: undefined,
  244. configKey: undefined,
  245. configValue: undefined,
  246. configType: "Y",
  247. remark: undefined,
  248. };
  249. this.resetForm("form");
  250. },
  251. /** 搜索按钮操作 */
  252. handleQuery() {
  253. this.queryParams.pageNum = 1;
  254. this.getList();
  255. },
  256. /** 重置按钮操作 */
  257. resetQuery() {
  258. this.dateRange = [];
  259. this.resetForm("queryForm");
  260. this.handleQuery();
  261. },
  262. /** 新增按钮操作 */
  263. handleAdd() {
  264. console.log(this.queryParams);
  265. // this.reset();
  266. // this.open = true;
  267. // this.title = "添加参数";
  268. },
  269. // 多选框选中数据
  270. handleSelectionChange(selection) {
  271. this.ids = selection.map((item) => item.configId);
  272. this.single = selection.length != 1;
  273. this.multiple = !selection.length;
  274. },
  275. /** 修改按钮操作 */
  276. handleUpdate(row) {
  277. this.reset();
  278. const configId = row.configId || this.ids;
  279. getConfig(configId).then((response) => {
  280. this.form = response.data;
  281. this.open = true;
  282. this.title = "修改参数";
  283. });
  284. },
  285. /** 提交按钮 */
  286. submitForm: function () {
  287. this.$refs["form"].validate((valid) => {
  288. if (valid) {
  289. if (this.form.configId != undefined) {
  290. updateConfig(this.form).then((response) => {
  291. this.msgSuccess("修改成功");
  292. this.open = false;
  293. this.getList();
  294. });
  295. } else {
  296. addConfig(this.form).then((response) => {
  297. this.msgSuccess("新增成功");
  298. this.open = false;
  299. this.getList();
  300. });
  301. }
  302. }
  303. });
  304. },
  305. /** 删除按钮操作 */
  306. handleDelete(row) {
  307. const configIds = row.configId || this.ids;
  308. this.$confirm(
  309. '是否确认删除参数编号为"' + configIds + '"的数据项?',
  310. "警告",
  311. {
  312. confirmButtonText: "确定",
  313. cancelButtonText: "取消",
  314. type: "warning",
  315. }
  316. )
  317. .then(function () {
  318. return delConfig(configIds);
  319. })
  320. .then(() => {
  321. this.getList();
  322. this.msgSuccess("删除成功");
  323. });
  324. },
  325. /** 导出按钮操作 */
  326. handleExport() {
  327. const queryParams = this.queryParams;
  328. this.$confirm("是否确认导出所有参数数据项?", "警告", {
  329. confirmButtonText: "确定",
  330. cancelButtonText: "取消",
  331. type: "warning",
  332. })
  333. .then(function () {
  334. return exportConfig(queryParams);
  335. })
  336. .then((response) => {
  337. this.download(response.msg);
  338. });
  339. },
  340. /** 清理缓存按钮操作 */
  341. handleClearCache() {
  342. clearCache().then((response) => {
  343. this.msgSuccess("清理成功");
  344. });
  345. },
  346. //tab
  347. changeTab(index) {
  348. console.log(34);
  349. this.tabIndex = index.index;
  350. this.currentContent = index.component;
  351. // this.$router.push('/tab');
  352. },
  353. },
  354. };
  355. </script>
  356. <style >
  357. .text-color {
  358. color: white;
  359. }
  360. .el-input.is-disabled .el-input__inner{
  361. color: #666 !important;
  362. }
  363. input::-webkit-input-placeholder{
  364. color:#666 !important;
  365. }
  366. input::-moz-placeholder{
  367. color:#666 !important;
  368. }
  369. input:-moz-placeholder{
  370. color:#666 !important;
  371. }
  372. input:-ms-input-placeholder{
  373. color:#666 !important;
  374. }
  375. /*步骤条样式修改------------start----------*/
  376. /*is-finish 圆圈颜色*/
  377. .el-steps--horizontal .is-horizontal .is-finish {
  378. color: red !important;
  379. border-color: red !important;
  380. }
  381. /*is-process 圆圈颜色*/
  382. .el-steps--horizontal.is-horizontal .is-process {
  383. color: red !important;
  384. border-color: red !important;
  385. }
  386. .el-step__title.is-process{
  387. color: red !important;
  388. }
  389. /*is-wait 圆圈颜色*/
  390. .el-steps--horizontal .is-horizontal .is-wait {
  391. /* color: red !important;
  392. color: red !important; */
  393. }
  394. /*is-finish title 颜色*/
  395. .el-steps--horizontal .is-horizontal .el-step__title{
  396. /* color: red !important;
  397. color: red !important; */
  398. font-weight: 700;
  399. /* color: red !important; */
  400. }
  401. /*is-process title 颜色*/
  402. .el-steps--horizontal[data-v-9ebad220] .is-horizontal .is-process {
  403. font-weight: 700;
  404. color: red !important;
  405. }
  406. /*description 颜色*/
  407. .el-steps--horizontal .is-horizontal .el-step__description {
  408. color: red !important;
  409. /* color: red !important; */
  410. }
  411. /*is-finish 进程结束,is-process 状态颜色非加粗*/
  412. .el-steps--horizontal .is-horizontal .el-step__title {
  413. font-weight: 700;
  414. /* color: red !important; */
  415. }
  416. /* is-finish line连线粗细*/
  417. .el-steps.el-steps--horizontal /deep/ .el-step.is-horizontal.is-center /deep/ .el-step__head.is-finish /deep/ .el-step__line {
  418. position: absolute;
  419. border-color: inherit;
  420. background-color: $is-finish-background;
  421. margin-top: $el-step-icon-margin;
  422. border: $border-sizes solid;
  423. }
  424. /* is-process line连线粗细*/
  425. .el-steps.el-steps--horizontal /deep/ .el-step.is-horizontal.is-center /deep/ .el-step__head.is-process /deep/ .el-step__line {
  426. border-color: inherit;
  427. background-color: $background_color;
  428. margin-top: $el-step-icon-margin;
  429. border: $border-sizes solid;
  430. }
  431. /* is-wait line连线粗细*/
  432. .el-steps.el-steps--horizontal /deep/ .el-step.is-horizontal.is-center /deep/ .el-step__head.is-wait /deep/ .el-step__line {
  433. border-color: inherit;
  434. background-color: $background_color;
  435. margin-top: $el-step-icon-margin;
  436. border: $border-sizes solid;
  437. }
  438. /* 已完成 圆圈大小修改*/
  439. .el-steps.el-steps--horizontal /deep/ .el-step.is-horizontal.is-center /deep/ .el-step__head.is-finish /deep/ .el-step__icon {
  440. z-index: 1;
  441. width: $el-step-icon-width;
  442. height: $el-step-icon-height;
  443. font-size: $el-step-icon-font-size;
  444. border: $border-sizes solid;
  445. background: $el-step-icon-background;
  446. }
  447. /* 过度点 圆圈大小修改*/
  448. .el-steps--horizontal .is-horizontal .is-process .el-step__icon {
  449. z-index: 1;
  450. width: $el-step-icon-width;
  451. height: $el-step-icon-height;
  452. border: $border-sizes solid;
  453. font-size: $el-step-icon-font-size;
  454. background:$el-step-icon-background;
  455. color: red!important;
  456. border-color: red !important;
  457. }
  458. /* 未完成 圆圈大小修改*/
  459. .el-steps.el-steps--horizontal /deep/ .el-step.is-horizontal.is-center /deep/ .el-step__head.is-wait /deep/ .el-step__icon {
  460. z-index: 1;
  461. width: $el-step-icon-width;
  462. height: $el-step-icon-height;
  463. font-size: $el-step-icon-font-size;
  464. border: $border-sizes solid;
  465. background:$el-step-icon-background;
  466. }
  467. </style>
  468. <style rel="stylesheet/scss" lang="scss" scoped>
  469. .manager_form {
  470. .manager_lab {
  471. .el-form-item__label {
  472. width: 145px !important;
  473. }
  474. }
  475. .maneg_lar {
  476. position: relative;
  477. .el-form-item__label {
  478. width: 134px !important;
  479. }
  480. span {
  481. position: absolute;
  482. left: -95%;
  483. }
  484. }
  485. .manager_labtwo {
  486. .el-form-item__label {
  487. width: 244px !important;
  488. }
  489. }
  490. // .manager_labthre {
  491. // // .el-form-item{
  492. // .el-form-item__label {
  493. // width: 130px !important;
  494. // }
  495. // margin-right: 40px !important;
  496. // // }
  497. // }
  498. .ieuyr {
  499. .el-textarea__inner {
  500. height: 80px !important;
  501. }
  502. }
  503. // .mage_ter {
  504. // .el-form-item__label {
  505. // width: 543px !important;
  506. // }
  507. // }
  508. .maget_ty {
  509. .el-form-item__label {
  510. width: 135px !important;
  511. }
  512. }
  513. .forieu {
  514. border: 1px solid #dcdfe6;
  515. border-radius: 4px;
  516. width: 480px;
  517. height: 90px;
  518. position: relative;
  519. .bure {
  520. position: absolute;
  521. right: 20px;
  522. top: 50%;
  523. transform: translateY(-50%);
  524. }
  525. }
  526. }
  527. .lage_div {
  528. padding-left: 15px;
  529. display: flex;
  530. align-items: center;
  531. margin-bottom: 22px;
  532. .el-form-item {
  533. margin-bottom: 0 !important;
  534. }
  535. }
  536. .app-container {
  537. height: calc(100vh - 84px);
  538. overflow-y: auto;
  539. padding: 0 20px 20px;
  540. .header {
  541. padding-top: 20px;
  542. padding-bottom: 90px;
  543. position: fixed;
  544. z-index: 99;
  545. width: calc(100% - 240px);
  546. background-color: #fff;
  547. span {
  548. display: block;
  549. line-height: 45px;
  550. padding-left: 22px;
  551. color: #343434;
  552. font-size: 18px;
  553. background-color: #f1f1f1;
  554. }
  555. }
  556. .naue {
  557. border: 1px solid #dadada;
  558. padding: 20px;
  559. margin-top: 40px;
  560. .nuae_wtu {
  561. display: flex;
  562. justify-content: center;
  563. align-content: center;
  564. .naue_one {
  565. width: 30%;
  566. p {
  567. font-size: 12px;
  568. font-family: PingFang SC;
  569. font-weight: 400;
  570. color: #343434;
  571. }
  572. .naue_name {
  573. font-size: 14px;
  574. font-family: PingFang SC;
  575. font-weight: bold;
  576. color: #0669b2;
  577. margin-bottom: 30px;
  578. }
  579. }
  580. .naue_two {
  581. flex: 1;
  582. padding-top: 20px;
  583. // display: flex;
  584. // align-items: center;
  585. // justify-content: center;
  586. }
  587. }
  588. //tab
  589. .naue_tab {
  590. border-bottom: 1px solid #cdcdcd;
  591. display: flex;
  592. margin-top: 30px;
  593. padding: 0 10px;
  594. margin-bottom: 30px;
  595. p {
  596. font-size: 12px;
  597. font-family: PingFang SC;
  598. font-weight: 400;
  599. color: #343434;
  600. padding: 11px 15px;
  601. margin: 0;
  602. }
  603. .p {
  604. border-bottom: 2px solid #1c84c6;
  605. margin-bottom: -1px;
  606. }
  607. }
  608. .mation {
  609. .enterprise {
  610. font-size: 14px;
  611. font-family: PingFang SC;
  612. font-weight: bold;
  613. color: #1c84c6;
  614. margin-top: 25px;
  615. margin-bottom: 20px;
  616. }
  617. .enterprise_tw {
  618. i {
  619. margin-right: 5px;
  620. }
  621. font-size: 14px;
  622. font-family: PingFang SC;
  623. font-weight: 600;
  624. color: #666666;
  625. }
  626. }
  627. }
  628. .nvestor {
  629. margin-bottom: 10px;
  630. p {
  631. margin: 0;
  632. font-size: 14px;
  633. font-family: PingFang SC;
  634. font-weight: bold;
  635. color: #343434;
  636. height: 24px;
  637. line-height: 24px;
  638. border-left: 3px solid #1c84c6;
  639. padding-left: 13px;
  640. i {
  641. color: red;
  642. }
  643. }
  644. }
  645. .souu {
  646. font-size: 14px;
  647. font-family: PingFang SC;
  648. font-weight: 400;
  649. color: #343434;
  650. margin-left: 5px;
  651. }
  652. }
  653. //在建项目
  654. .nstruction {
  655. display: flex;
  656. align-items: center;
  657. .nstruction_nav {
  658. display: flex;
  659. align-items: center;
  660. p:nth-child(1) {
  661. margin-right: 10px;
  662. span {
  663. font-size: 14px;
  664. font-family: PingFang SC;
  665. font-weight: bold;
  666. color: #343434;
  667. }
  668. span:nth-child(1) {
  669. color: #df0024;
  670. }
  671. }
  672. p:nth-child(2) {
  673. width: 233px;
  674. height: 30px;
  675. line-height: 30px;
  676. border: 1px solid #cdcdcd;
  677. border-radius: 3px;
  678. padding-left: 14px;
  679. }
  680. }
  681. .nstruction_navne {
  682. margin-left: 50px;
  683. display: flex;
  684. align-items: center;
  685. p:nth-child(1) {
  686. margin-right: 10px;
  687. span {
  688. font-size: 14px;
  689. font-family: PingFang SC;
  690. font-weight: bold;
  691. color: #343434;
  692. }
  693. span:nth-child(1) {
  694. color: #df0024;
  695. }
  696. }
  697. p:nth-child(2) {
  698. width: 233px;
  699. height: 30px;
  700. line-height: 30px;
  701. border: 1px solid #cdcdcd;
  702. border-radius: 3px;
  703. padding-left: 14px;
  704. }
  705. }
  706. }
  707. .kaieu {
  708. padding-left: 60px;
  709. font-size: 14px;
  710. font-family: PingFang SC;
  711. font-weight: 800;
  712. color: #343434;
  713. }
  714. .kaieu_tw {
  715. padding-left: 60px;
  716. font-size: 14px;
  717. font-family: PingFang SC;
  718. font-weight: 500;
  719. color: #666666;
  720. }
  721. </style>