detail.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <template>
  2. <basicDetails
  3. ref="details"
  4. :titleText="mainData.projectname"
  5. formPath="projectChange"
  6. :editData="mainData"
  7. :mainAreaData="mainAreaData"
  8. :turnPageId="20221020143502"
  9. idname="sa_projectid"
  10. tags=""
  11. :tabs="['详细信息','阶段任务','产品配置单','报价单','竞争对手']"
  12. @pageChange="pageChange"
  13. @onEditSuccess="queryMainData($route.query.id)">
  14. <!-- 使用此插槽可不传[tags] -->
  15. <tagPanl slot="tags" :data="tagObj" ownertable="sa_project" :id="mainData.sa_projectid" @onSuccess="queryMainData"/>
  16. <div slot="customOperation">
  17. <!-- 此区域提供了自定义操作按钮 -->
  18. </div>
  19. <div slot="slot0" class="container normal-panel">
  20. <BaseInfo v-if="detailInfo" :detailInfo="detailInfo"/>
  21. </div>
  22. <div slot="slot1" class="container normal-panel">
  23. <StageTask v-if="mainData" :rowData="mainData"/>
  24. </div>
  25. <div slot="slot2" class="container normal-panel">
  26. <ProjectSet />
  27. </div>
  28. <div slot="slot3" class="container normal-panel">
  29. <quotation />
  30. </div>
  31. <div slot="slot4" class="container normal-panel">
  32. <Rival />
  33. </div>
  34. </basicDetails>
  35. </template>
  36. <script>
  37. import Quotation from './modules/quotation/index'
  38. import ProjectSet from './modules/projectSet/index'
  39. import Rival from './modules/rival/index'
  40. import BaseInfo from './modules/baseInfo/baseInfo'
  41. import StageTask from './modules/stageTask/index'
  42. export default {
  43. components:{Quotation,ProjectSet,Rival,BaseInfo,StageTask},
  44. data () {
  45. return {
  46. mainData:'',
  47. mainAreaData:'',
  48. /* 企业列表 */
  49. enterpriseList:'',
  50. /* 企业列表 */
  51. projectType:'',
  52. projectLead:'',
  53. projectPanl:'',
  54. projectAddress:'',
  55. detailInfo:'',
  56. tagObj:''
  57. }
  58. },
  59. provide () {
  60. return {
  61. enterpriseList:() => this.enterpriseList,
  62. projectType:() => this.projectType,
  63. projectLead:() => this.projectLead,
  64. projectPanl:() => this.projectPanl,
  65. detailData:() => this.mainData
  66. }
  67. },
  68. methods:{
  69. async queryMainData (id) {
  70. const res = await this.$api.requested({
  71. "id": "20221021103902",
  72. "version":1,
  73. "content": {
  74. "sa_projectid":this.$route.query.id
  75. }
  76. })
  77. this.mainData = res.data
  78. console.log(this.mainData);
  79. /* 获取标签数据 */
  80. this.tagObj = await this.$store.dispatch('queryTagList',{table:'sa_project',id:this.mainData.sa_projectid})
  81. this.getProjectAddres()
  82. },
  83. // 监听切换数据,上一页,下一页
  84. pageChange (id,rowindex) {
  85. this.$router.replace({path:'/projectChangeDetail',query:{id:id,rowindex:rowindex}})
  86. this.queryMainData(id)
  87. },
  88. /* 获取联系人:负责人列表 */
  89. async getAccount () {
  90. let res = await this.$api.requested({
  91. "id": "20221018150602",
  92. "content": {
  93. "sys_enterpriseid": 1,
  94. "pageNumber": 1,
  95. "pageSize": 20,
  96. "where": {
  97. "condition": ""
  98. }
  99. }
  100. })
  101. },
  102. async getSysetms () {
  103. /* 获取项目类型 */
  104. let res = await this.$store.dispatch('optiontypeselect','projecttype')
  105. this.projectType = res.data
  106. },
  107. /** 获取公司数据 */
  108. async getEnterprise () {
  109. let res = await this.$api.requested({
  110. "id": 20221021095802,
  111. "content": {
  112. "pageNumber": 1,
  113. "pageSize": 99999,
  114. "where": {
  115. "condition": ""
  116. }
  117. },
  118. })
  119. this.enterpriseList = res.data
  120. },
  121. /* 获取项目模板 */
  122. async getProjectPanl () {
  123. let res = await this.$api.requested({
  124. "id": "20221019085604",
  125. "content": {
  126. "pageNumber": 1,
  127. "pageSize": 99999999,
  128. "where":{
  129. "condition":""
  130. }
  131. }
  132. })
  133. this.projectPanl = res.data
  134. },
  135. /* 获取项目地址 */
  136. async getProjectAddres () {
  137. let res = await this.$api.requested({
  138. "id": "20221018153302",
  139. "content": {
  140. "sys_enterpriseid": this.mainData.sys_enterpriseid,
  141. "pageNumber": 1,
  142. "pageSize": 999999,
  143. "where": {
  144. "condition": ""
  145. }
  146. }
  147. })
  148. this.projectAddress = res.data
  149. /* 获取项目等级 */
  150. let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
  151. this.projectLead = res2.data
  152. this.changeDataStructure()
  153. console.log(res);
  154. },
  155. changeDataStructure () {
  156. this.detailInfo = {
  157. baseInfo: [
  158. {label:'项目编号',value:this.mainData.projectnum ? this.mainData.projectnum : '--'},
  159. {label:'项目名称',value:this.mainData.projectname ? this.mainData.projectname : '--'},
  160. {label:'项目地址',value:this.projectAddress.find(item => item.contactsid == this.mainData.sa_project_addressid).address},
  161. {label:'项目等级',value:this.projectLead.find(item => item.rowindex == this.mainData.grade).value},
  162. {label:'项目类型',value:this.mainData.projecttype ? this.mainData.projecttype : '--'},
  163. {label:'当前项目阶段',value:this.mainData.stagename ? this.mainData.stagename : '--'},
  164. {label:'项目报备时间',value:''},
  165. {label:'项目联系人',value:this.mainData.contact ? this.mainData.contact : '--'},
  166. {label:'联系人手机号',value:this.mainData.phonenumber ? this.mainData.phonenumber : '--'},
  167. {label:'项目规模',value:this.mainData.scale ? this.mainData.scale : '--'},
  168. {label:'项目状态',value:this.mainData.status ? this.mainData.status : '--'},
  169. {label:'项目折扣',value:this.mainData.discountrate ? this.mainData.discountrate : '--'},
  170. {label:'项目预算',value:this.mainData.budgetary ? this.mainData.budgetary : '--'},
  171. {label:'预计签约金额',value:this.mainData.signamount_due ? this.mainData.signamount_due : '--'},
  172. {label:'预计签约月份',value:this.mainData.signdate_due ? this.mainData.signdate_due : '--'},
  173. {label:'赢率',value:this.mainData.winrate ? this.mainData.winrate : '--'},
  174. {label:'负责人',value:this.mainData.name ? this.mainData.name : '--'},
  175. ],
  176. systemInfo: [
  177. {label:'创建人',value:this.mainData.createby ? this.mainData.createby : '--'},
  178. {label:'创建时间',value:this.mainData.createdate ? this.mainData.createdate : '--'},
  179. {label:'最近跟进人',value:this.mainData.followby ? this.mainData.followby : '--'},
  180. {label:'最近跟进时间',value:this.mainData.followdate ? this.mainData.followdate : '--'},
  181. {label:'锁定状态',value:this.mainData.locked == '0' ? '锁定' : '解锁'},
  182. {label:'最近编辑人',value:this.mainData.changeby ? this.mainData.changeby : '--'},
  183. {label:'最近编辑时间',value:this.mainData.changedate ? this.mainData.changedate : '--'},
  184. {label:'转手次数',value:this.mainData.changecount !== '' ? this.mainData.changecount : '--'},
  185. ]
  186. }
  187. this.mainAreaData = [
  188. {
  189. label:'项目名称',
  190. value: this.mainData.projectname
  191. },
  192. {
  193. label:'项目编号',
  194. value:this.mainData.projectnum
  195. },
  196. {
  197. label:'项目规模',
  198. value: this.mainData.scale
  199. },
  200. {
  201. label:'项目等级',
  202. value: this.projectLead.find(item => item.rowindex == this.mainData.grade).value
  203. },
  204. {
  205. label:'项目类型',
  206. value:this.mainData.projecttype
  207. },
  208. {
  209. label:'项目阶段',
  210. value: this.mainData.stagename
  211. },
  212. {
  213. label:'项目状态',
  214. value: this.mainData.status
  215. },
  216. {
  217. label:'项目状态',
  218. value: this.mainData.enterprisename
  219. },
  220. {
  221. label:'负责人',
  222. value: this.mainData.name
  223. },
  224. ]
  225. }
  226. },
  227. mounted () {
  228. },
  229. async created () {
  230. this.queryMainData(this.$route.query.id)
  231. this.getProjectPanl()
  232. this.getEnterprise()
  233. this.getSysetms()
  234. // 验证权限
  235. this.tool.checkAuth(this.$route.name,'update')?'':this.$router.go(-1)
  236. },
  237. }
  238. </script>
  239. <style>
  240. </style>