contextedit.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. <template>
  2. <div id="contextfabu">
  3. <el-row>
  4. <el-col :span="24" class="contextfabu">
  5. <el-row class="demandForm">
  6. <el-col></el-col>
  7. <el-form ref="forms" :model="forms" label-width="120px">
  8. <el-form-item label="用户名称">
  9. <el-input v-model="forms.name" placeholder="请输入用户名称"></el-input>
  10. </el-form-item>
  11. <el-form-item label="登录密码">
  12. <el-input v-model="forms.password" placeholder="请输入登录密码" show-password></el-input>
  13. </el-form-item>
  14. <el-form-item label="身份证号">
  15. <el-input v-model="forms.cardnumber" placeholder="请输入身份证号" :minlength="18" :maxlength="18"></el-input>
  16. </el-form-item>
  17. <el-form-item label="手机号">
  18. <el-input v-model="forms.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11"></el-input>
  19. </el-form-item>
  20. <el-form-item label="邮箱">
  21. <el-input v-model="forms.email" placeholder="请输入邮箱"></el-input>
  22. </el-form-item>
  23. <el-form-item label="地址">
  24. <el-input v-model="forms.addr" placeholder="请输入地址"></el-input>
  25. </el-form-item>
  26. <el-form-item label="头像图片" prop="img_path">
  27. <upload :limit="1" :data="forms.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
  28. </el-form-item>
  29. <el-form-item label="用户类别">
  30. <!-- <el-radio v-model="forms.role" label="1">管理员</el-radio> -->
  31. <el-radio-group v-model="forms.role" @change="setIsQy">
  32. <el-radio label="2">个人</el-radio>
  33. <el-radio label="3">企业管理员</el-radio>
  34. </el-radio-group>
  35. </el-form-item>
  36. <el-form-item label="身份证正面">
  37. <upload :limit="1" :data="forms.cardfile_a" type="cardfile_a" :url="'/files/cardfilea/upload'" @upload="uploadSuccess"></upload>
  38. </el-form-item>
  39. <el-form-item label="身份证背面">
  40. <upload :limit="1" :data="forms.cardfile_b" type="cardfile_b" :url="'/files/cardfileb/upload'" @upload="uploadSuccess"></upload>
  41. </el-form-item>
  42. <el-form-item label="组织机构图片" v-if="forms.role == '3'">
  43. <upload :limit="1" :data="forms.img_qy" type="img_qy" :url="'/files/imgqy/upload'" @upload="uploadSuccess"></upload>
  44. </el-form-item>
  45. <el-form-item label="简介" placeholder="请输入简介">
  46. <el-input type="textarea" v-model="forms.resume"></el-input>
  47. </el-form-item>
  48. <el-form-item label="专业领域" placeholder="请输入专业领域">
  49. <el-input v-model="forms.major"></el-input>
  50. </el-form-item>
  51. <template v-if="forms.role == '3'">
  52. <el-form-item label="机构类型" placeholder="请输入机构类型">
  53. <el-input v-model="forms.institution_type"></el-input>
  54. </el-form-item>
  55. <el-form-item label="机构名称" placeholder="请输入机构名称">
  56. <el-input v-model="forms.institution_name"></el-input>
  57. </el-form-item>
  58. <el-form-item label="机构代码" placeholder="请输入机构代码">
  59. <el-input v-model="forms.institution_code"></el-input>
  60. </el-form-item>
  61. <el-form-item label="机构性质" placeholder="请输入机构性质">
  62. <el-input v-model="forms.institution_nature"></el-input>
  63. </el-form-item>
  64. </template>
  65. <el-form-item label="办公电话" placeholder="请输入办公电话">
  66. <el-input v-model="forms.office_phone"></el-input>
  67. </el-form-item>
  68. <el-form-item label="所属行业" placeholder="请输入所属行业">
  69. <el-input v-model="forms.profession"></el-input>
  70. </el-form-item>
  71. <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit">注册</el-button></el-col>
  72. <el-row class="demandBtn">
  73. <el-button type="primary" @click="demandBtn()">产品发布</el-button>
  74. </el-row>
  75. </el-form>
  76. </el-row>
  77. </el-col>
  78. </el-row>
  79. </div>
  80. </template>
  81. <script>
  82. import _ from 'lodash';
  83. import upload from '@/components/upload.vue';
  84. export default {
  85. name: 'contextfabu',
  86. props: {
  87. forms: null,
  88. columnList: null,
  89. totaltype: null,
  90. },
  91. components: {
  92. upload,
  93. },
  94. data: () => ({
  95. options: [
  96. {
  97. value: 'totaltype',
  98. label: '产品类型',
  99. disabled: true,
  100. },
  101. {
  102. value: 'name',
  103. label: '产品名称',
  104. disabled: true,
  105. },
  106. {
  107. value: 'contact_user',
  108. label: '联系人',
  109. disabled: true,
  110. },
  111. {
  112. value: 'contact_tel',
  113. label: '联系人电话',
  114. disabled: true,
  115. },
  116. {
  117. value: 'description',
  118. label: '产品描述',
  119. },
  120. {
  121. value: 'product_type_id',
  122. label: '类型',
  123. },
  124. {
  125. value: 'phase',
  126. label: '研发阶段',
  127. },
  128. {
  129. value: 'introduction',
  130. label: '产品简介',
  131. disabled: true,
  132. },
  133. {
  134. value: 'price',
  135. label: '产品单价',
  136. },
  137. {
  138. value: 'priceunit',
  139. label: '产品单位',
  140. },
  141. {
  142. value: 'image',
  143. label: '产品图片',
  144. },
  145. {
  146. value: 'product_args',
  147. label: '产品参数',
  148. },
  149. {
  150. value: 'field',
  151. label: '应用领域',
  152. },
  153. {
  154. value: 'prospect',
  155. label: '市场前景',
  156. },
  157. {
  158. value: 'contract',
  159. label: '电子合同',
  160. },
  161. {
  162. value: 'gxtype',
  163. label: '供给类型',
  164. },
  165. {
  166. value: 'scope',
  167. label: '服务范围',
  168. },
  169. {
  170. value: 'property',
  171. label: '知识产权',
  172. },
  173. {
  174. value: 'business',
  175. label: '交易方式',
  176. },
  177. ],
  178. option2: [
  179. {
  180. value: 'totaltype',
  181. label: '产品类型',
  182. disabled: true,
  183. },
  184. {
  185. value: 'name',
  186. label: '产品名称',
  187. disabled: true,
  188. },
  189. {
  190. value: 'contact_user',
  191. label: '联系人',
  192. disabled: true,
  193. },
  194. {
  195. value: 'contact_tel',
  196. label: '联系人电话',
  197. disabled: true,
  198. },
  199. {
  200. value: 'description',
  201. label: '产品描述',
  202. },
  203. {
  204. value: 'product_type_id',
  205. label: '类型',
  206. },
  207. {
  208. value: 'introduction',
  209. label: '产品简介',
  210. disabled: true,
  211. },
  212. {
  213. value: 'price',
  214. label: '产品单价',
  215. },
  216. {
  217. value: 'priceunit',
  218. label: '产品单位',
  219. },
  220. {
  221. value: 'image',
  222. label: '产品图片',
  223. },
  224. {
  225. value: 'product_args',
  226. label: '产品参数',
  227. },
  228. {
  229. value: 'contract',
  230. label: '电子合同',
  231. },
  232. {
  233. value: 'gxtype',
  234. label: '供给类型',
  235. },
  236. {
  237. value: 'scope',
  238. label: '服务范围',
  239. },
  240. {
  241. value: 'property',
  242. label: '知识产权',
  243. },
  244. {
  245. value: 'business',
  246. label: '交易方式',
  247. },
  248. ],
  249. option3: [
  250. {
  251. value: 'totaltype',
  252. label: '产品类型',
  253. disabled: true,
  254. },
  255. {
  256. value: 'name',
  257. label: '产品名称',
  258. disabled: true,
  259. },
  260. {
  261. value: 'contact_user',
  262. label: '联系人',
  263. disabled: true,
  264. },
  265. {
  266. value: 'contact_tel',
  267. label: '联系人电话',
  268. disabled: true,
  269. },
  270. {
  271. value: 'description',
  272. label: '产品描述',
  273. },
  274. {
  275. value: 'product_type_id',
  276. label: '类型',
  277. },
  278. {
  279. value: 'introduction',
  280. label: '产品简介',
  281. disabled: true,
  282. },
  283. {
  284. value: 'price',
  285. label: '产品单价',
  286. },
  287. {
  288. value: 'priceunit',
  289. label: '产品单位',
  290. },
  291. {
  292. value: 'image',
  293. label: '产品图片',
  294. },
  295. {
  296. value: 'field',
  297. label: '应用领域',
  298. },
  299. {
  300. value: 'prospect',
  301. label: '市场前景',
  302. },
  303. {
  304. value: 'contract',
  305. label: '电子合同',
  306. },
  307. {
  308. value: 'gxtype',
  309. label: '供给类型',
  310. },
  311. {
  312. value: 'scope',
  313. label: '服务范围',
  314. },
  315. {
  316. value: 'property',
  317. label: '知识产权',
  318. },
  319. {
  320. value: 'business',
  321. label: '交易方式',
  322. },
  323. ],
  324. is_display: [],
  325. value1: [],
  326. value2: [],
  327. activeName: 'first',
  328. priceunit_list: [
  329. {
  330. name: '公斤',
  331. },
  332. {
  333. name: '套',
  334. },
  335. {
  336. name: '件',
  337. },
  338. ],
  339. product_args: [],
  340. selectlistRow: [],
  341. rowNum: 1,
  342. totaltype_list: [
  343. { name: '技术', value: '0' },
  344. { name: '产品', value: '1' },
  345. { name: '服务', value: '2' },
  346. ],
  347. }),
  348. created() {},
  349. computed: {},
  350. methods: {
  351. handleClick(tab, event) {
  352. console.log(tab, event);
  353. },
  354. demandBtn() {
  355. console.log(this.demandForm);
  356. this.$emit('demandSubmit', { data: this.demandForm, id: this.demandForm.id });
  357. },
  358. selectChild(product_type_id) {
  359. let res = this.columnList.filter(fil => fil.id === product_type_id);
  360. if (res.length > 0) {
  361. console.log(res[0].name);
  362. this.$set(this.demandForm, `product_type_name`, res[0].name);
  363. }
  364. this.$forceUpdate();
  365. },
  366. uploadSuccess({ type, data }) {
  367. let arr = _.get(this.demandForm, type);
  368. if (_.isArray(arr)) {
  369. let datas = { name: data.name, url: data.uri };
  370. this.demandForm[type].push({ name: data.name, url: data.uri });
  371. } else {
  372. let newArr = [{ name: data.name, url: data.uri }];
  373. this.$set(this.demandForm, `${type}`, newArr);
  374. }
  375. },
  376. // 获取表格选中时的数据
  377. selectRow(val) {
  378. this.selectlistRow = val;
  379. },
  380. addRow() {
  381. var list = {
  382. rowNum: this.rowNum,
  383. };
  384. // let tableData = this.emandForm.product_args;
  385. this.product_args.unshift(list);
  386. this.rowNum += 1;
  387. },
  388. uploadDelete(index) {
  389. console.log(index);
  390. this.demandForm.image.splice(index, 1);
  391. },
  392. selectType(item) {
  393. this.$emit('changeType', item);
  394. // this.$set(this, `totaltype`, item);
  395. console.log(item);
  396. },
  397. },
  398. };
  399. </script>
  400. <style lang="less" scoped>
  401. /deep/.el-tabs--card > .el-tabs__header {
  402. border-bottom: 1px solid #215299;
  403. }
  404. /deep/.el-tabs__item {
  405. height: 50px;
  406. line-height: 50px;
  407. font-size: 16px;
  408. }
  409. /deep/.el-tabs__item.is-active {
  410. color: #ffff;
  411. background: #215299;
  412. }
  413. .demandForm {
  414. padding: 0 20px;
  415. }
  416. .demandBtn {
  417. text-align: center;
  418. }
  419. /deep/.demandBtn .el-button {
  420. background-color: #ff7814;
  421. border: none;
  422. }
  423. /deep/.el-table td {
  424. padding: 0;
  425. }
  426. /deep/.el-table th {
  427. padding: 0;
  428. background-color: #f3f3f3;
  429. }
  430. </style>