index.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.billno"
  6. formPath="QuotedPrice"
  7. :editData="mainData"
  8. :mainAreaData="mainAreaData"
  9. turnPageId="20221020165103"
  10. delApiId="20221020165503"
  11. idname="sa_quotedpriceid"
  12. ownertable="sa_quotedprice"
  13. :statusCheck="[{key:'status',value:'审核'},{key:'status',value:'提交'}]"
  14. :tags="[]"
  15. :tabs="['产品清单','详细信息','历史报价']"
  16. @pageChange="pageChange"
  17. @onEditSuccess="queryMainData($route.query.id)">
  18. <div slot="tags">
  19. <!-- 使用此插槽可不传[tags] -->
  20. <!-- :tabs="['经销商团队','代理区域','营销类别','账户余额']" -->
  21. </div>
  22. <div slot="customOperation">
  23. <!-- 此区域提供了自定义操作按钮 -->
  24. <submit_to class="inline-16" v-if="tool.checkAuth($route.name,'submit') && mainData.status === '新建'" :disabled="disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onSubmit="onSuccess"></submit_to>
  25. <toVoid class="inline-16" v-if="tool.checkAuth($route.name,'toVoid') && mainData.status === '新建'" :disabled="disabled" :data="mainData.sa_quotedpriceid" ></toVoid>
  26. <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'" :disabled="disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onExamine="onSuccess"></examine_to>
  27. <deApprove class="inline-16" v-if="tool.checkAuth($route.name,'deApprove') && mainData.status !== '新建'" :disabled="disabled" :data="mainData" @onDeApprove="onSuccess"></deApprove>
  28. <copyTo class="inline-16" v-if="tool.checkAuth($route.name,'copyTo') " :data="mainData.sa_quotedpriceid" :disabled="disabled"></copyTo>
  29. </div>
  30. <div slot="slot1" class=" normal-panel">
  31. <detailed :data="mainData" v-if="flag"></detailed>
  32. </div>
  33. <div slot="slot0" class=" normal-panel">
  34. <productInventory ref="productList" :data="mainData" v-if="flag"></productInventory>
  35. </div>
  36. <div slot="slot2" class=" normal-panel">
  37. <historicalQuotation :data="mainData" v-if="flag"></historicalQuotation>
  38. </div>
  39. </basicDetails>
  40. </div>
  41. </template>
  42. <script>
  43. import detailed from './modules/detailed/index'
  44. import contacts from './modules/contacts/list'
  45. import address_manage from './modules/addressManage/list'
  46. import submit_to from './components/submitTo'
  47. import examine_to from './components/examineTo'
  48. import project_change from './modules/projectChange/index'
  49. import customer_assocalated from './modules/customerAssociated/index'
  50. import productInventory from './modules/productInventory/index'
  51. import toVoid from './components/toVoid'
  52. import historicalQuotation from './modules/historicalQuotation/index'
  53. import copyTo from "@/SDrpManagement/QuotedPrice/detail/components/copyTo";
  54. import deApprove from './components/deApprove'
  55. export default {
  56. name: "index",
  57. data(){
  58. return {
  59. mainData:[],
  60. mainAreaData:[],
  61. disabled:false,
  62. flag:false,
  63. totalPrice:0,
  64. userInfo:JSON.parse(window.sessionStorage.getItem('userInfo'))
  65. }
  66. },
  67. components:{
  68. detailed,
  69. contacts,
  70. address_manage,
  71. submit_to,
  72. examine_to,
  73. project_change,
  74. customer_assocalated,
  75. productInventory,
  76. toVoid,
  77. historicalQuotation,
  78. copyTo,
  79. deApprove
  80. },
  81. watch:{
  82. mainData(val) {
  83. if (this.mainData.leader.length !== 0){
  84. if (JSON.parse(window.sessionStorage.getItem('userInfo')).userid === this.mainData.leader[0].userid){
  85. this.disabled = false
  86. }else {
  87. this.disabled = true
  88. }
  89. }
  90. console.log("权限结果",this.disabled)
  91. }
  92. },
  93. methods:{
  94. async queryMainData(id){
  95. const res = await this.$api.requested({
  96. "id": 20221020165203,
  97. "version":1,
  98. "content": {
  99. nocache:true,
  100. "sa_quotedpriceid":id
  101. }
  102. })
  103. this.mainData = res.data
  104. /*this.$refs.productList.productData()*/
  105. this.$nextTick(()=>{
  106. this.$refs.productList.productData()
  107. })
  108. this.productList()
  109. /* this.changeDataStructure()*/
  110. /* this.$refs.detailed.detailedList(this.mainData)*/
  111. this.flag = true
  112. },
  113. // 监听切换数据,上一页,下一页
  114. pageChange (id,rowindex) {
  115. this.flag = false
  116. this.$router.replace({path:'/quotedPriceDetail',query:{id:id,rowindex:rowindex}})
  117. this.queryMainData(id)
  118. },
  119. changeDataStructure(){
  120. let that = this
  121. this.mainAreaData = [
  122. {
  123. label:'客户名称',
  124. value:this.mainData.enterprisename
  125. },
  126. {
  127. label:'项目编号',
  128. value:this.mainData.projectnum
  129. },
  130. {
  131. label:'项目名称',
  132. value:this.mainData.projectname
  133. },
  134. {
  135. label:'报价日期',
  136. value:this.mainData.billdate
  137. },
  138. {
  139. label:'有效期',
  140. value:this.mainData.begdate?this.mainData.begdate + '至' + this.mainData.enddate:"--"
  141. },
  142. {
  143. label:'总金额(元)',
  144. value:this.totalPrice.toFixed(2)
  145. },
  146. {
  147. label:'联系人',
  148. value:this.mainData.contactsname
  149. },
  150. {
  151. label:'手机号',
  152. value:this.mainData.contactsphonenumber
  153. },
  154. {
  155. label:'状态',
  156. value:this.mainData.status,
  157. style:function () {
  158. let style = {}
  159. switch (that.mainData.status) {
  160. case '新建':
  161. style = {color:'#3874f6'}
  162. break;
  163. case '提交':
  164. style = {color:'#52c41a'}
  165. break;
  166. case '审核':
  167. style = {color:'#333333'}
  168. break;
  169. default:
  170. break;
  171. }
  172. return style
  173. }
  174. },
  175. /*{
  176. label:'邮箱',
  177. value:this.mainData.email
  178. }*/
  179. ]
  180. },
  181. /*产品配置信息*/
  182. async productList(){
  183. const res = await this.$api.requested({
  184. "id": 20221021095503,
  185. "version":1,
  186. "content": {
  187. "sa_quotedpriceid":this.$route.query.id //sat_notice_classid<=0时 为新增
  188. }
  189. })
  190. this.totalPrice = 0
  191. res.data.forEach((item)=> {
  192. this.totalPrice = this.totalPrice + item.price * item.qty
  193. })
  194. /*this.queryMainData(this.$route.query.id)*/
  195. this.changeDataStructure()
  196. },
  197. onSuccess(){
  198. this.queryMainData(this.$route.query.id)
  199. }
  200. },
  201. mounted() {
  202. this.queryMainData(this.$route.query.id)
  203. }
  204. }
  205. </script>
  206. <style scoped>
  207. </style>