mymechantsdetails.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251
  1. <template>
  2. <div class="addintention">
  3. <div class="form">
  4. <uni-forms label-width="100%">
  5. <uni-forms-item label="企业名称:">
  6. <!-- v-model="form.saleCpName" -->
  7. <input
  8. type="text"
  9. v-model="form.saleCpName"
  10. class="inputstyle"
  11. placeholder="请输入"
  12. />
  13. </uni-forms-item>
  14. <uni-forms-item label="关联企业">
  15. <input
  16. type="text"
  17. v-model="form.companyId"
  18. class="inputstyle"
  19. placeholder="请输入"
  20. />
  21. </uni-forms-item>
  22. <uni-forms-item label="企业联系人">
  23. <input
  24. v-model="form.projectManager"
  25. class="inputstyle"
  26. placeholder="请输入"
  27. />
  28. </uni-forms-item>
  29. <uni-forms-item label="联系电话:">
  30. <input
  31. v-model="form.managerPhone"
  32. class="inputstyle"
  33. placeholder="请输入"
  34. />
  35. </uni-forms-item>
  36. <uni-forms-item label="总计划投资">
  37. <input
  38. v-model="form.totalInvestment"
  39. class="inputstyle"
  40. placeholder="请输入"
  41. />
  42. </uni-forms-item>
  43. <uni-forms-item label="拟使用载体/地块(m²)">
  44. <input
  45. v-model="form.landArea"
  46. class="inputstyle"
  47. placeholder="请输入"
  48. />
  49. </uni-forms-item>
  50. </uni-forms>
  51. </div>
  52. <div class="form">
  53. <uni-forms label-width="100%">
  54. <uni-forms-item label="信息来源部门:">
  55. <picker
  56. class="pickerstyle"
  57. immediate-change="true"
  58. range-key="text"
  59. @change="getMessageSourceDept"
  60. :range="MESSAGE_SOURCE_DEPT"
  61. >
  62. <view class="picklabel">
  63. {{
  64. !form.messageSourceDeptName
  65. ? "请选择"
  66. : form.messageSourceDeptName
  67. }}
  68. </view>
  69. </picker>
  70. <!-- <uni-data-select
  71. v-model="messageSourceDept"
  72. :localdata="MESSAGE_SOURCE_DEPT"
  73. @change="getMessageSourceDept"
  74. ></uni-data-select> -->
  75. </uni-forms-item>
  76. <uni-forms-item label="信息来源人:">
  77. <input
  78. v-model="form.messageSourcePeople"
  79. class="inputstyle"
  80. placeholder="请输入"
  81. />
  82. </uni-forms-item>
  83. <uni-forms-item label="跟踪人">
  84. <input
  85. v-model="form.manageTrackingUserId"
  86. class="inputstyle"
  87. placeholder="请输入"
  88. />
  89. <!-- <uni-data-select
  90. v-model="form.manageTrackingUserId"
  91. :localdata="trackUserList"
  92. @change="getManageTrackingUserId"
  93. ></uni-data-select> -->
  94. </uni-forms-item>
  95. <uni-forms-item label="相关部门">
  96. <picker
  97. class="pickerstyle"
  98. range-key="text"
  99. @change="getRelevantDepId"
  100. :range="aboutDept"
  101. >
  102. <view class="picklabel">
  103. {{ !form.relevantDepIdName ? "请选择" : form.relevantDepIdName }}
  104. </view>
  105. </picker>
  106. <!-- <uni-data-select
  107. v-model="form.industryCategory"
  108. :localdata="aboutDept"
  109. ></uni-data-select> -->
  110. </uni-forms-item>
  111. </uni-forms>
  112. </div>
  113. <div class="list">
  114. <div class="project-column pdt32 pdl32 pdr32 border_bottom_ccc">
  115. <div
  116. class="pdb16 height50rpx chuzuborder lh50rpx disflex align_items_center"
  117. >
  118. <div class="lh50rpx">关联房源</div>
  119. <van-icon
  120. name="add"
  121. class="ml16"
  122. size="50rpx"
  123. color="#2527AA"
  124. @click="jumpChosseHouse('房源')"
  125. />
  126. </div>
  127. </div>
  128. <div
  129. class="list-row"
  130. v-if="fangyuanList.length != 0"
  131. v-for="(item, index) in fangyuanList"
  132. :key="item.id"
  133. >
  134. <div class="cell_1">
  135. <div class="width100 height50rpx mgb20">
  136. <div class="first_title width80 float_left">
  137. {{ item.roomString }}
  138. </div>
  139. <div
  140. class="status_label txt_center width20 float_left"
  141. v-if="item.reservationStatus == 1"
  142. >
  143. 意向
  144. </div>
  145. <div
  146. class="status_label txt_center width20 float_left"
  147. v-if="item.reservationStatus == 2"
  148. >
  149. 锁定
  150. </div>
  151. <div
  152. class="status_label txt_center width20 float_left"
  153. v-if="item.reservationStatus == 3"
  154. >
  155. 预约
  156. </div>
  157. <div
  158. class="status_label txt_center width20 float_left"
  159. v-if="item.reservationStatus == 4"
  160. >
  161. 预约到期
  162. </div>
  163. <div
  164. class="status_label txt_center width20 float_left"
  165. v-if="item.reservationStatus == 5"
  166. >
  167. 签约
  168. </div>
  169. <div
  170. class="status_label txt_center width20 float_left"
  171. v-if="item.reservationStatus == 6"
  172. >
  173. 签约合同
  174. </div>
  175. <div
  176. class="status_label txt_center width20 float_left"
  177. v-if="item.reservationStatus == 7"
  178. >
  179. 锁定到期
  180. </div>
  181. </div>
  182. <div class="width100 height40rpx pdb16 border_bottom_ccc">
  183. <div class="second_title height40rpx">
  184. 到期日期:{{ !item.endTime ? "暂无" : item.endTime }}
  185. </div>
  186. </div>
  187. <div class="button_list pdb20 pdt20">
  188. <div class="bottom_cell">
  189. <div class="button_row" @click="fangyuanListSplice(index)">
  190. 解绑
  191. </div>
  192. <div class="button_row" @click="yuyueChooseTime(index, 2)">
  193. <picker
  194. mode="date"
  195. :value="date"
  196. @change="getChooseTime($event, index, 2)"
  197. >
  198. 锁定
  199. </picker>
  200. </div>
  201. <div class="button_row">
  202. <picker
  203. mode="date"
  204. :value="date"
  205. @change="getChooseTime($event, index, 3)"
  206. >
  207. 预约
  208. </picker>
  209. </div>
  210. <div class="button_row" @click="signing(index)">签约</div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. <div class="form">
  217. <uni-forms label-width="100%">
  218. <uni-forms-item label="项目名称:">
  219. <input
  220. v-model="form.projectName"
  221. class="inputstyle"
  222. placeholder="请输入"
  223. />
  224. </uni-forms-item>
  225. <uni-forms-item label="产业类别">
  226. <!-- <uni-data-select
  227. v-model="form.industryCategory"
  228. :localdata="INDUSTRY_CATEGORY"
  229. ></uni-data-select> -->
  230. <picker
  231. class="pickerstyle"
  232. range-key="text"
  233. @change="getIndustryCategory"
  234. :range="INDUSTRY_CATEGORY"
  235. >
  236. <view class="picklabel">
  237. {{
  238. !form.industryCategoryName
  239. ? "请选择"
  240. : form.industryCategoryName
  241. }}
  242. </view>
  243. </picker>
  244. </uni-forms-item>
  245. <uni-forms-item label="项目类型">
  246. <picker
  247. class="pickerstyle"
  248. range-key="text"
  249. @change="getProjectType"
  250. :range="PROJECT_TYPE"
  251. >
  252. <view class="picklabel">
  253. {{ !form.projectTypeName ? "请选择" : form.projectTypeName }}
  254. </view>
  255. </picker>
  256. </uni-forms-item>
  257. <uni-forms-item label="项目简介:">
  258. <uni-easyinput
  259. type="textarea"
  260. class="bgcF9F9F9 height218rpx"
  261. v-model="form.projectInfo"
  262. placeholder="请输入"
  263. />
  264. </uni-forms-item>
  265. <uni-forms-item label="租赁需求:">
  266. <uni-easyinput
  267. type="textarea"
  268. class="bgcF9F9F9 height218rpx"
  269. v-model="form.leaseRequirements"
  270. placeholder="请输入"
  271. />
  272. </uni-forms-item>
  273. </uni-forms>
  274. </div>
  275. <div class="form" style="padding-bottom: 192rpx">
  276. <uni-forms ref="baseForm" :modelValue="form" label-width="100%">
  277. <uni-forms-item label="目前阶段:">
  278. <uni-data-checkbox
  279. style="padding: 8rpx 0 8rpx 0"
  280. v-model="form.projectStatus"
  281. mode="tag"
  282. :localdata="muqianjieduan"
  283. selectedTextColor="#1D18BC"
  284. selectedColor="rgba(29,24,188,0.05);"
  285. @change="getjieduan"
  286. />
  287. </uni-forms-item>
  288. <uni-forms-item label="备注:">
  289. <uni-easyinput
  290. type="textarea"
  291. class="bgcF9F9F9 height218rpx"
  292. v-model="form.projectRemark"
  293. placeholder="请输入"
  294. />
  295. </uni-forms-item>
  296. <uni-forms-item
  297. label="签约载体:"
  298. required
  299. v-if="form.projectStatus == 3"
  300. >
  301. <van-icon
  302. @click="jumpChosseHouse('载体')"
  303. name="add"
  304. class="marginl8"
  305. size="40rpx"
  306. color="#2527AA"
  307. style="position: absolute; top: -28px; left: 68px"
  308. />
  309. <div class="zaiti_list">
  310. <div
  311. v-for="(item, index) in zaitiList"
  312. :key="index"
  313. style="display: flex"
  314. >
  315. <div class="pdb8 zaiti ml16 float_left">
  316. {{ item.roomString ? item.roomString : item.remark }}#
  317. </div>
  318. </div>
  319. </div>
  320. </uni-forms-item>
  321. </uni-forms>
  322. </div>
  323. <view class="‘btn-view‘">
  324. <div class="btn" @click="editSave()">修改</div>
  325. </view>
  326. </div>
  327. </template>
  328. <script>
  329. import tkiTree from "../../../subPackages/components/tkitree/tkitree.vue";
  330. import selectDengjiyuan from "../../../subPackages/components/select_dengjiyuan/tkitree.vue";
  331. import selectDengjiren from "../../../subPackages/components/select_dengjiren/tkitree.vue";
  332. import selectGenzongdep from "../../../subPackages/components/selectGenzongDep/tkitree.vue";
  333. import selectXiangguandep from "../../../subPackages/components/selectXiangguanDep/tkitree.vue";
  334. import tools from "../../../subPackages/components/tkitree/tools.js";
  335. import vantUploader from "../../../../wxcomponents/weapp/dist/uploader";
  336. import chooseTime from "./chooseTime.vue";
  337. import multipleSelect from "../../../subPackages/components/momo-multipleSelect/momo-multipleSelect";
  338. import {
  339. getSelectUserTwo,
  340. getSelectDeptTwo,
  341. findRoomInfoListByIds,
  342. findCompanyList,
  343. editSave,
  344. findDeptList,
  345. saleControllerGetById,
  346. findTrackUserList,
  347. getByCodes,
  348. findListBySaleManagementId,
  349. findSuccessListBySaleManagementId,
  350. } from "@/js_sdk/http";
  351. import vanPicker from "../../../../wxcomponents/weapp/dist/picker";
  352. export default {
  353. name: "addintention",
  354. components: {
  355. tkiTree,
  356. multipleSelect,
  357. chooseTime,
  358. selectDengjiyuan,
  359. selectDengjiren,
  360. vantUploader,
  361. vanPicker,
  362. selectGenzongdep,
  363. selectXiangguandep,
  364. },
  365. data() {
  366. return {
  367. INDUSTRY_CATEGORY: [],
  368. PROJECT_TYPE: [],
  369. MESSAGE_SOURCE_DEPT: [],
  370. trackUserList: [],
  371. dic_key: [
  372. "PROJECT_TYPE",
  373. "INDUSTRY_CATEGORY",
  374. "MESSAGE_SOURCE_DEPT",
  375. "project_status",
  376. ],
  377. dic_SelectList: {},
  378. detail: {},
  379. show: false,
  380. aboutDept: [],
  381. defaultSelected: [],
  382. companyList_index: 0,
  383. companyList: [],
  384. range: [],
  385. fileList: [],
  386. fangyuanList: [],
  387. zaitiList: [],
  388. form: {
  389. createdBy: "",
  390. projectType: 1,
  391. successTime: "",
  392. companyId: null,
  393. xiangguanren: "",
  394. xinxidengji: "",
  395. xiangmudengji: "",
  396. relevantUserId: "",
  397. manageMessengerId: "",
  398. xiangmudengjiIds: "",
  399. genzongbumen: "",
  400. manageTrackingDepId: "",
  401. xiangguanbumen: "",
  402. relevantDepId: "",
  403. fangyuanListIds: "",
  404. successSaleRoomList: "",
  405. projectManager: "",
  406. managerPhone: "",
  407. projectName: "",
  408. projectInfo: "",
  409. leaseRequirements: "",
  410. },
  411. currentDate: new Date().getTime(),
  412. minDate: new Date().getTime(),
  413. formatter(type, value) {
  414. if (type === "year") {
  415. return `${value}年`;
  416. }
  417. if (type === "month") {
  418. return `${value}月`;
  419. }
  420. return value;
  421. },
  422. value: null,
  423. rules: {
  424. // 对name字段进行必填验证
  425. name: {
  426. rules: [
  427. {
  428. required: true,
  429. errorMessage: "请输入",
  430. },
  431. {
  432. minLength: 3,
  433. maxLength: 5,
  434. errorMessage: "姓名长度在 {minLength} 到 {maxLength} 个字符",
  435. },
  436. ],
  437. },
  438. // 对email字段进行必填验证
  439. email: {
  440. rules: [
  441. {
  442. format: "email",
  443. errorMessage: "请输入正确的邮箱地址",
  444. },
  445. ],
  446. },
  447. },
  448. id: "",
  449. muqianjieduan: [],
  450. };
  451. },
  452. onLoad(option) {
  453. let that = this;
  454. that.id = option.id;
  455. that.getByCodes();
  456. that.findTrackUserList();
  457. that.findDeptList();
  458. uni.$on("getuser", function (e) {
  459. findRoomInfoListByIds(e.result.join(",")).then((data) => {
  460. if (e.type == "房源") {
  461. let fangyuanList = [...that.fangyuanList, ...data];
  462. for (let i = 0; i < fangyuanList.sort().length; i++) {
  463. for (let j = 1; j < fangyuanList.sort().length; j++) {
  464. console.log(i, j);
  465. if (i != j && fangyuanList[i].id === fangyuanList[j].id) {
  466. console.log(i);
  467. fangyuanList.splice(i, 1);
  468. j--;
  469. }
  470. }
  471. }
  472. that.fangyuanList = [];
  473. that.fangyuanList = fangyuanList;
  474. that.form.fangyuanListIds = "";
  475. that.form.fangyuanListIds = e.result.join(",");
  476. }
  477. if (e.type == "载体") {
  478. let all = [...that.zaitiList, ...data];
  479. console.log(all);
  480. // for (let i = 0; i < all.length; i++) {
  481. // for (let j = 1; j < all.length; j++) {
  482. // if (all[i] == all[j]) {
  483. // all.splice(i, 1);
  484. // }
  485. // }
  486. // }
  487. for (let i = 0; i < all.sort().length; i++) {
  488. for (let j = i + 1; j < all.sort().length; j++) {
  489. console.log(all[i].id == all[j].id);
  490. if (all[i].id == all[j].id) {
  491. all.splice(i, 1);
  492. j--;
  493. }
  494. }
  495. }
  496. that.zaitiList = all;
  497. // that.form.successSaleRoomList = "";
  498. // that.form.successSaleRoomList = e.result.join(",");
  499. }
  500. });
  501. });
  502. // /wx/SaleController/getById
  503. // SaleControllerGetById
  504. },
  505. onShow() {
  506. let that = this;
  507. },
  508. methods: {
  509. getChooseTime(event, i, type) {
  510. console.log({ event, i, type });
  511. this.fangyuanList[i].endTime = "";
  512. this.fangyuanList[i].reservationStatus = "";
  513. this.fangyuanList[i].reservationStatus = type;
  514. this.fangyuanList[i].endTime = event.detail.value;
  515. this.$forceUpdate();
  516. },
  517. async findListBySaleManagementId() {
  518. let data = await findListBySaleManagementId({ id: this.id });
  519. this.fangyuanList = data.map((e) => {
  520. return {
  521. roomString: e.remark,
  522. reservationStatus: e.reservationStatus,
  523. id: e.id,
  524. endTime: e.endTime ? this.$common.transServDay(e.endTime) : "",
  525. successStatus: null,
  526. };
  527. });
  528. console.log(data);
  529. },
  530. async findSuccessListBySaleManagementId() {
  531. let data = await findSuccessListBySaleManagementId({ id: this.id });
  532. this.zaitiList = data;
  533. console.log(data);
  534. },
  535. getMessageSourceDept(e) {
  536. console.log("MESSAGE_SOURCE_DEPT", this.MESSAGE_SOURCE_DEPT);
  537. let { detail } = e;
  538. let text = this.MESSAGE_SOURCE_DEPT[detail.value].text;
  539. let value = this.MESSAGE_SOURCE_DEPT[detail.value].value;
  540. this.form.messageSourceDept = value;
  541. this.form.messageSourceDeptName = text;
  542. this.$forceUpdate();
  543. },
  544. getIndustryCategory(e) {
  545. // 产业类别
  546. let { detail } = e;
  547. let text = this.INDUSTRY_CATEGORY[detail.value].text;
  548. let value = this.INDUSTRY_CATEGORY[detail.value].value;
  549. this.form.industryCategory = value;
  550. this.form.industryCategoryName = text;
  551. this.$forceUpdate();
  552. },
  553. getManageTrackingUserId(e) {
  554. let { detail } = e;
  555. console.log(
  556. "this.trackUserList[detail.value]",
  557. this.trackUserList[detail.value]
  558. );
  559. let text = this.trackUserList[detail.value].text;
  560. let value = this.trackUserList[detail.value].value;
  561. this.form.manageTrackingUserId = value;
  562. this.form.manageTrackingUserId = text;
  563. this.$forceUpdate();
  564. },
  565. getRelevantDepId(e) {
  566. let { detail } = e;
  567. let text = this.aboutDept[detail.value].text;
  568. let value = this.aboutDept[detail.value].value;
  569. console.log("valuevaluevalue", value);
  570. this.form.relevantDepId = value;
  571. this.form.relevantDepIdName = text;
  572. this.$forceUpdate();
  573. },
  574. getProjectType(e) {
  575. let { detail } = e;
  576. let text = this.PROJECT_TYPE[detail.value].text;
  577. let value = this.PROJECT_TYPE[detail.value].value;
  578. this.form.projectType = value;
  579. this.form.projectTypeName = text;
  580. this.$forceUpdate();
  581. },
  582. async findTrackUserList() {
  583. let data = await findTrackUserList();
  584. this.trackUserList = data.map((e) => {
  585. return {
  586. text: e.truename,
  587. value: e.id,
  588. };
  589. });
  590. console.log(this.trackUserList);
  591. console.log("跟踪部门列表", this.trackUserList);
  592. },
  593. async getByCodes() {
  594. let data = await getByCodes(JSON.stringify(this.dic_key));
  595. console.log(data);
  596. this.dic_SelectList = this.$common.handleDicList(data);
  597. this.INDUSTRY_CATEGORY = this.dic_SelectList.INDUSTRY_CATEGORY.map(
  598. (e) => {
  599. return {
  600. text: e.label,
  601. value: e.value,
  602. };
  603. }
  604. );
  605. this.PROJECT_TYPE = this.dic_SelectList.PROJECT_TYPE.map((e) => {
  606. return {
  607. text: e.label,
  608. value: e.value,
  609. };
  610. });
  611. this.muqianjieduan = this.dic_SelectList.project_status.map((e) => {
  612. return {
  613. text: e.label,
  614. value: e.value,
  615. };
  616. });
  617. this.MESSAGE_SOURCE_DEPT = this.dic_SelectList.MESSAGE_SOURCE_DEPT.map(
  618. (e) => {
  619. return {
  620. text: e.label,
  621. value: e.value,
  622. };
  623. }
  624. );
  625. this.saleControllerGetById(this.id);
  626. console.log(this.dic_SelectList);
  627. },
  628. async saleControllerGetById(id) {
  629. let data = await saleControllerGetById(id);
  630. this.form = data;
  631. this.form.xiangguanbumen = data.relevantDepId;
  632. this.form.companyId = data.companyId == "null" ? "" : data.companyId;
  633. this.form.manageTrackingUserId =
  634. data.manageTrackingUserId == "null" ? "" : data.manageTrackingUserId;
  635. this.form.projectStatus = this.form.projectStatus + "";
  636. this.form.xiangguanren = data.relevantUserId;
  637. this.form.xinxidengji = data.manageMessengerIdName;
  638. this.form.genzongbumen = data.manageTrackingDepIdName;
  639. this.form.relevantDepIdName = data.relevantDepIdName;
  640. console.log("this.MESSAGE_SOURCE_DEPT", this.MESSAGE_SOURCE_DEPT);
  641. console.log("data.messageSourceDept", data.messageSourceDept);
  642. this.form.messageSourceDeptName =
  643. (data.messageSourceDept != "null" && data.messageSourceDept) ||
  644. data.messageSourceDept === 0
  645. ? this.MESSAGE_SOURCE_DEPT[data.messageSourceDept - 1].text
  646. : "";
  647. console.log("给我看看详情", data);
  648. this.findSuccessListBySaleManagementId();
  649. this.findListBySaleManagementId();
  650. if (data.successPictureAddress) {
  651. this.fileList = JSON.parse(data.successPictureAddress).map((e) => {
  652. console.log(e);
  653. return {
  654. name: e.name,
  655. size: e.size,
  656. url: e.url,
  657. isImage: true,
  658. };
  659. });
  660. } else {
  661. this.fileList = [];
  662. }
  663. this.$forceUpdate();
  664. console.log(this.fileList);
  665. },
  666. async findDeptList() {
  667. let aboutDept = await findDeptList();
  668. this.aboutDept = aboutDept.map((e) => {
  669. return {
  670. text: e.deptName,
  671. label: e.deptName,
  672. value: e.id,
  673. };
  674. });
  675. this.aboutDept = [
  676. ...this.aboutDept,
  677. {
  678. text: "红沙湾服务中心",
  679. label: "红沙湾服务中心",
  680. value: "红沙湾服务中心",
  681. },
  682. { text: "经济发展局", label: "经济发展局", value: "经济发展局" },
  683. { text: "产业集团", label: "产业集团", value: "产业集团" },
  684. { text: "招商局", label: "招商局", value: "招商局" },
  685. ];
  686. console.log("aboutDept", this.aboutDept);
  687. },
  688. confirm(e) {
  689. var xiangguanbumen = [];
  690. var relevantDepId = [];
  691. for (var p in e) {
  692. xiangguanbumen.push(e[p].label);
  693. relevantDepId.push(e[p].value);
  694. }
  695. this.form.xiangguanbumen = xiangguanbumen.join(",");
  696. this.form.relevantDepId = relevantDepId.join(",");
  697. },
  698. chosseAboutCompany() {
  699. this.show = true;
  700. },
  701. signing(i) {
  702. let that = this;
  703. if (that.zaitiList.length > 0) {
  704. let isReport = false;
  705. for (let index = 0; index < that.zaitiList.length; index++) {
  706. if (that.zaitiList[index].id === that.fangyuanList[i].id) {
  707. that.$showToast("该载体已存在与签约载体列表内");
  708. isReport = true;
  709. return;
  710. }
  711. }
  712. if (!isReport) {
  713. that.zaitiList.push(this.fangyuanList[i]);
  714. }
  715. } else {
  716. that.zaitiList.push(this.fangyuanList[i]);
  717. }
  718. },
  719. getEndTime(i, time, type) {
  720. console.log(i, time);
  721. console.log(this.fangyuanList[i]);
  722. this.fangyuanList[i].endTime = "";
  723. this.fangyuanList[i].reservationStatus = "";
  724. this.fangyuanList[i].reservationStatus = type;
  725. this.fangyuanList[i].endTime = time;
  726. this.$forceUpdate();
  727. },
  728. yuyueChooseTime(i, type) {
  729. this.$refs.chooseTime.onOpen(i, type);
  730. },
  731. fangyuanListSplice(i) {
  732. let that = this;
  733. uni.showModal({
  734. title: "提示",
  735. content: "解绑后该房源将从项目绑定记录中删除,是否确认?",
  736. cancelText: "取消", // 取消按钮的文字
  737. confirmText: "确认", // 确认按钮的文字
  738. showCancel: true, // 是否显示取消按钮,默认为 true
  739. success: (res) => {
  740. if (res.confirm) {
  741. console.log("comfirm"); //点击确定之后执行的代码
  742. that.fangyuanList.splice(i, 1);
  743. this.$showToast("已删除");
  744. } else {
  745. console.log("cancel"); //点击取消之后执行的代码
  746. }
  747. },
  748. });
  749. },
  750. getjieduan(e) {
  751. console.log(this.form.projectStatus);
  752. },
  753. deleteFileList(event) {
  754. this.fileList.splice(event.detail.index, 1);
  755. },
  756. async editSave() {
  757. let that = this;
  758. let saleRoomList = [];
  759. if (that.fangyuanList && that.fangyuanList.length > 0) {
  760. saleRoomList = that.fangyuanList.map((e) => {
  761. return {
  762. remark: !e.roomString ? null : e.roomString,
  763. reservationStatus: !e.reservationStatus ? 1 : e.reservationStatus,
  764. parkRoomId: e.id,
  765. endTime: !e.endTime ? null : e.endTime,
  766. successStatus: null,
  767. };
  768. });
  769. }
  770. let successSaleRoomList = [];
  771. if (that.zaitiList && that.zaitiList.length > 0) {
  772. successSaleRoomList = that.zaitiList.map((e) => {
  773. return {
  774. remark: !e.roomString ? "" : e.roomString,
  775. reservationStatus: !e.reservationStatus ? 1 : e.reservationStatus,
  776. parkRoomId: e.id,
  777. endTime: !e.endTime ? null : e.endTime,
  778. successStatus: null,
  779. };
  780. });
  781. }
  782. let successPictureAddress = [];
  783. if (that.fileList.length > 0) {
  784. successPictureAddress = that.fileList.map((e) => {
  785. console.log("successPictureAddress", e);
  786. return {
  787. name: e.name,
  788. size: e.size,
  789. url: e.url,
  790. };
  791. });
  792. }
  793. for (const key in that.form) {
  794. // if(that.form[key])
  795. console.log(that.form[key]);
  796. that.form[key] = that.form[key] == null ? "" : that.form[key];
  797. }
  798. // delete that.form.warningStatus
  799. let data = await editSave({
  800. ...that.form,
  801. saleRoomList: JSON.stringify(saleRoomList),
  802. successPictureAddress: JSON.stringify(successPictureAddress),
  803. successSaleRoomList: JSON.stringify(successSaleRoomList),
  804. userId: JSON.parse(uni.getStorageSync("laocui_user_info")).user.id,
  805. successRoom: this.zaitiList
  806. .map((e) => {
  807. return e.roomString;
  808. })
  809. .join(","),
  810. });
  811. if (data.code == 200) {
  812. uni.navigateBack({});
  813. } else {
  814. that.$showToast(data.msg);
  815. }
  816. },
  817. getQymc(index) {
  818. let that = this;
  819. console.log(that.companyList[index]);
  820. that.form.companyId = that.companyList[index].id;
  821. return that.companyList[index].qymc;
  822. },
  823. bindPickerChange(e) {
  824. let that = this;
  825. that.companyList_index = e.detail.value;
  826. },
  827. async findCompanyList() {
  828. let data = await findCompanyList();
  829. this.companyList = data;
  830. this.companyList[0].id;
  831. },
  832. zaitiListSplice(index) {
  833. this.zaitiList.splice(index, 1);
  834. },
  835. // /wx/SaleController/findRoomInfoListByIds
  836. async findRoomInfoListByIds() {
  837. let data = await findRoomInfoListByIds(ids);
  838. return data;
  839. },
  840. xiangmudengji(e) {
  841. var names = [];
  842. var ids = [];
  843. for (var p in e) {
  844. if (e[p].type == "u") {
  845. names.push(e[p].name);
  846. ids.push(e[p].id);
  847. }
  848. }
  849. this.form.xiangmudengji = names.join(",");
  850. this.form.xiangmudengjiIds = ids.join(",");
  851. },
  852. selectGenzongDep(e) {
  853. console.log(e);
  854. var names = [];
  855. var ids = [];
  856. for (var p in e) {
  857. names.push(e[p].name);
  858. ids.push(e[p].id);
  859. }
  860. this.form.manageTrackingDepIdName = names[names.length - 1];
  861. this.form.manageTrackingDepId = ids[ids.length - 1];
  862. },
  863. selectXiangguanDep(e) {
  864. var names = [];
  865. var ids = [];
  866. for (var p in e) {
  867. names.push(e[p].name);
  868. ids.push(e[p].id);
  869. }
  870. this.form.xiangguanbumen = names.join(",");
  871. this.form.relevantDepId = ids.join(",");
  872. },
  873. selectDengjiyuan(e) {
  874. var names = [];
  875. var ids = [];
  876. for (var p in e) {
  877. if (e[p].type == "u") {
  878. names.push(e[p].name);
  879. ids.push(e[p].id);
  880. }
  881. }
  882. this.form.xinxidengji = names.join(",");
  883. this.form.manageMessengerId = ids.join(",");
  884. },
  885. userSelectorConfirm(e) {
  886. var names = [];
  887. var ids = [];
  888. for (var p in e) {
  889. if (e[p].type == "u") {
  890. names.push(e[p].name);
  891. ids.push(e[p].id);
  892. }
  893. }
  894. this.form.xiangguanren = names.join(",");
  895. this.form.relevantUserId = ids.join(",");
  896. },
  897. // 取消回调事件
  898. treeCancel(e) {},
  899. async getSelectUserTwo(key) {
  900. let that = this;
  901. let departmentList = await getSelectUserTwo("");
  902. that.range = tools.transData(
  903. departmentList.data,
  904. "id",
  905. "parentid",
  906. "children"
  907. );
  908. that.$refs[key]._show();
  909. },
  910. async getSelectDeptTwo(key) {
  911. let that = this;
  912. let departmentList = await getSelectDeptTwo("");
  913. that.range = tools.transData(
  914. departmentList.data,
  915. "id",
  916. "parentid",
  917. "children"
  918. );
  919. that.$refs[key]._show();
  920. },
  921. jumpChosseHouse(e) {
  922. uni.navigateTo({
  923. url: "/pages/subPackages/chosseHouse/chosseHouse?type=" + e,
  924. });
  925. },
  926. afterRead(event) {
  927. let that = this;
  928. const { file } = event.detail;
  929. uni.uploadFile({
  930. url: that.$constant.BASE_URI + "/wx/fileController/upload2",
  931. filePath: file.url,
  932. name: "file",
  933. formData: { user: "test" },
  934. success(res) {
  935. // 上传完成需要更新 fileList
  936. let data = JSON.parse(res.data);
  937. console.log("处理后的data", data);
  938. console.log(
  939. that.$constant.BASE_URI + "/FileController/download/" + data.data[1]
  940. );
  941. that.fileList.push({
  942. name: JSON.parse(data.data[0]).name,
  943. size: JSON.parse(data.data[0]).size,
  944. imgUrl: "/FileController/download/" + data.data[1],
  945. url:
  946. that.$constant.BASE_URI +
  947. "/FileController/download/" +
  948. data.data[1],
  949. isImage: true,
  950. });
  951. },
  952. fail(res) {},
  953. });
  954. },
  955. beforeRead(event) {
  956. const { file, callback } = event.detail;
  957. console.log("我日历吗", file);
  958. callback(file.type === "image");
  959. },
  960. binddata() {},
  961. submit() {},
  962. },
  963. };
  964. </script>
  965. <style lang="scss">
  966. .inputstyle {
  967. border-color: #e5e5e5;
  968. background-color: #fff;
  969. // display: flex;
  970. // box-sizing: border-box;
  971. // flex-direction: row;
  972. align-items: center;
  973. border: 1px solid #dcdfe6;
  974. border-radius: 4px;
  975. padding-left: 10px;
  976. font-size: 14px;
  977. border: 1px solid #dcdfe6;
  978. border-radius: 4px;
  979. height: 35px;
  980. line-height: 1;
  981. // display: flex;
  982. align-items: center;
  983. }
  984. .pickerstyle {
  985. border-color: #e5e5e5;
  986. background-color: #fff;
  987. display: flex;
  988. box-sizing: border-box;
  989. flex-direction: row;
  990. align-items: center;
  991. border: 1px solid #dcdfe6;
  992. border-radius: 4px;
  993. padding-left: 10px;
  994. font-size: 14px;
  995. .picklabel {
  996. height: auto;
  997. padding-top: 15rpx;
  998. background: none;
  999. padding-bottom: 15rpx;
  1000. color: #606266;
  1001. width: 600rpx;
  1002. }
  1003. }
  1004. .form_row {
  1005. height: 40rpx;
  1006. font-weight: 400;
  1007. font-size: 24rpx;
  1008. }
  1009. .uni-select__selector {
  1010. z-index: 12 !important;
  1011. }
  1012. .addintention {
  1013. .btn-view {
  1014. width: 100%;
  1015. height: 100rpx;
  1016. padding: 20rpx 10%;
  1017. background-color: #ffffff;
  1018. position: fixed;
  1019. bottom: 0;
  1020. left: 0;
  1021. }
  1022. .btn {
  1023. width: 80%;
  1024. height: 90rpx;
  1025. border-radius: 50rpx 50rpx 50rpx 50rpx;
  1026. background: #1d18bc;
  1027. line-height: 90rpx;
  1028. color: white;
  1029. text-align: center;
  1030. }
  1031. .uni-forms-item__label {
  1032. text {
  1033. font-size: 28rpx;
  1034. font-weight: 500;
  1035. //color: #333333;
  1036. }
  1037. }
  1038. .zaiti_list {
  1039. width: 100%;
  1040. min-height: 50rpx;
  1041. line-height: 50rpx;
  1042. }
  1043. .zaiti {
  1044. color: #777777;
  1045. }
  1046. .zaiti:first-child {
  1047. margin: 0 !important;
  1048. }
  1049. .bottom_cell {
  1050. float: right;
  1051. width: 465rpx;
  1052. height: 42rpx;
  1053. }
  1054. .button_row {
  1055. color: #1d18bc;
  1056. width: 96rpx;
  1057. height: 42rpx;
  1058. border-radius: 60rpx 60rpx 60rpx 60rpx;
  1059. opacity: 1;
  1060. margin-left: 16rpx;
  1061. float: left;
  1062. text-align: center;
  1063. line-height: 42rpx;
  1064. font-size: 24rpx;
  1065. border: 2rpx solid #1d18bc;
  1066. }
  1067. .project-column {
  1068. border-radius: 8rpx 8rpx 0rpx 0rpx;
  1069. //height: 44rpx;
  1070. font-size: 32rpx;
  1071. font-family: PingFang SC-Medium, PingFang SC;
  1072. font-weight: 500;
  1073. color: #333333;
  1074. background: #ffffff;
  1075. }
  1076. .status_label {
  1077. width: 96rpx;
  1078. height: 50rpx;
  1079. line-height: 50rpx;
  1080. background: rgba(29, 24, 188, 0.05);
  1081. color: #1d18bc;
  1082. font-weight: 500;
  1083. font-size: 24rpx;
  1084. border-radius: 8rpx 8rpx 8rpx 8rpx;
  1085. }
  1086. .first_title {
  1087. line-height: 50rpx;
  1088. font-weight: 500;
  1089. }
  1090. .uni-forms-item {
  1091. display: block !important;
  1092. margin: 0;
  1093. }
  1094. .editSave {
  1095. color: #3f3fb4;
  1096. background: #eaeaf2;
  1097. width: 170rpx;
  1098. height: 50rpx;
  1099. text-align: center;
  1100. line-height: 50rpx;
  1101. border: 2rpx #a6a6a9 dashed;
  1102. }
  1103. .list-row {
  1104. width: calc(100% - 64rpx);
  1105. padding: 16rpx 32rpx 18rpx 32rpx;
  1106. background: #ffffff;
  1107. margin-bottom: 16rpx;
  1108. display: flex;
  1109. //height: 278rpx;
  1110. border-radius: 8rpx 8rpx 8rpx 8rpx;
  1111. }
  1112. .icon_phone {
  1113. }
  1114. .list-row {
  1115. width: calc(100% - 64rpx);
  1116. padding: 32rpx 32rpx 38rpx 32rpx;
  1117. background: #ffffff;
  1118. margin-bottom: 16rpx;
  1119. display: flex;
  1120. //height: 278rpx;
  1121. border-radius: 8rpx 8rpx 8rpx 8rpx;
  1122. }
  1123. .mb32rpx {
  1124. margin-bottom: 32rpx;
  1125. }
  1126. .second_title {
  1127. float: left;
  1128. font-size: 28rpx;
  1129. font-family: PingFang SC-Medium, PingFang SC;
  1130. font-weight: 500;
  1131. color: #777777;
  1132. width: 100%;
  1133. }
  1134. .call_icon {
  1135. height: 40rpx;
  1136. width: 40rpx;
  1137. margin-top: -5rpx;
  1138. margin-left: 5rpx;
  1139. float: left;
  1140. }
  1141. .second_title_2 {
  1142. float: left;
  1143. width: 38%;
  1144. font-size: 28rpx;
  1145. font-family: PingFang SC-Medium, PingFang SC;
  1146. font-weight: 500;
  1147. text-align: right;
  1148. color: #777777;
  1149. }
  1150. .list {
  1151. width: calc(100% - 64rpx);
  1152. margin: 32rpx;
  1153. }
  1154. .form {
  1155. width: calc(100% - 128rpx);
  1156. margin: 32rpx;
  1157. background: #ffffff;
  1158. padding: 32rpx;
  1159. .label {
  1160. height: 53rpx;
  1161. line-height: 53rpx;
  1162. }
  1163. }
  1164. .checklist-box {
  1165. margin: 0 !important;
  1166. margin-right: 16rpx !important;
  1167. }
  1168. .labelcolmt26 {
  1169. .van-cell {
  1170. padding: 0 0 0 28rpx !important;
  1171. }
  1172. .van-col {
  1173. margin-top: 26rpx !important;
  1174. }
  1175. label {
  1176. color: #333333;
  1177. font-size: 30rpx;
  1178. margin-top: 10rpx !important;
  1179. }
  1180. .uni-data-checklist {
  1181. margin-top: -10rpx !important;
  1182. }
  1183. }
  1184. .status {
  1185. .uni-data-checklist {
  1186. margin-top: 0rpx !important;
  1187. }
  1188. label {
  1189. color: #333333;
  1190. font-size: 30rpx;
  1191. padding-right: 0rpx !important;
  1192. }
  1193. }
  1194. }
  1195. </style>