index.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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="mainData.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onSubmit="onSuccess"></submit_to>
  25. <revoke class="inline-16" v-if="tool.checkAuth($route.name,'revoke') && mainData.status === '提交'" :disabled="mainData.disabled" :sa_quotedpriceid="mainData.sa_quotedpriceid" @onRevoke="onSuccess"></revoke>
  26. <examine_to class="inline-16" v-if="tool.checkAuth($route.name,'toExamine') && mainData.status === '提交'" :disabled="mainData.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="mainData.disabled" :data="mainData" @onDeApprove="onSuccess"></deApprove>
  28. <copyTo class="inline-16" v-if="tool.checkAuth($route.name,'copyTo') " :data="mainData.sa_quotedpriceid" :disabled="mainData.disabled"></copyTo>
  29. <toVoid class="inline-16" v-if="tool.checkAuth($route.name,'toVoid') && mainData.status === '新建'" :disabled="mainData.disabled" :data="mainData.sa_quotedpriceid" ></toVoid>
  30. </div>
  31. <div slot="slot1" class=" normal-panel">
  32. <detailed :data="mainData" v-if="flag"></detailed>
  33. </div>
  34. <div slot="slot0" class=" normal-panel">
  35. <productInventory ref="productList" :data="mainData" v-if="flag"></productInventory>
  36. </div>
  37. <div slot="slot2" class=" normal-panel">
  38. <otherExpenses :status="mainData.status" :data="mainData" v-if="flag"></otherExpenses>
  39. </div>
  40. <div slot="slot3" class=" normal-panel">
  41. <historicalQuotation :data="mainData" v-if="flag"></historicalQuotation>
  42. </div>
  43. </basicDetails>
  44. </div>
  45. </template>
  46. <script>
  47. import detailed from './modules/detailed/index'
  48. import contacts from './modules/contacts/list'
  49. import address_manage from './modules/addressManage/list'
  50. import submit_to from './components/submitTo'
  51. import revoke from './components/revoke'
  52. import examine_to from './components/examineTo'
  53. import project_change from './modules/projectChange/index'
  54. import customer_assocalated from './modules/customerAssociated/index'
  55. import productInventory from './modules/productInventory/index'
  56. import toVoid from './components/toVoid'
  57. import historicalQuotation from './modules/historicalQuotation/index'
  58. import copyTo from "@/SDrpManagement/QuotedPrice/detail/components/copyTo";
  59. import deApprove from './components/deApprove'
  60. import otherExpenses from './modules/otherExpenses/index'
  61. export default {
  62. name: "index",
  63. data(){
  64. return {
  65. mainData:{
  66. disabled:false,
  67. },
  68. mainAreaData:[],
  69. disabled:false,
  70. flag:false,
  71. totalPrice:0,
  72. userInfo:JSON.parse(window.sessionStorage.getItem('userInfo'))
  73. }
  74. },
  75. components:{
  76. detailed,
  77. contacts,
  78. address_manage,
  79. submit_to,
  80. examine_to,
  81. project_change,
  82. customer_assocalated,
  83. productInventory,
  84. toVoid,
  85. historicalQuotation,
  86. copyTo,
  87. deApprove,
  88. revoke,
  89. otherExpenses
  90. },
  91. watch:{
  92. mainData(val) {
  93. if (this.mainData.leader.length !== 0){
  94. if (JSON.parse(window.sessionStorage.getItem('userInfo')).userid === this.mainData.leader[0].userid){
  95. this.mainData.disabled = true
  96. }else {
  97. this.mainData.disabled = false
  98. }
  99. }
  100. console.log("权限结果",this.mainData.disabled)
  101. }
  102. },
  103. methods:{
  104. async queryMainData(id){
  105. const res = await this.$api.requested({
  106. "id": 20221020165203,
  107. "version":1,
  108. "content": {
  109. nocache:true,
  110. "sa_quotedpriceid":id
  111. }
  112. })
  113. this.mainData = res.data
  114. console.log(this.mainData)
  115. this.productList()
  116. /*this.$refs.productList.productData()*/
  117. this.$nextTick(()=>{
  118. this.$refs.productList.productData()
  119. })
  120. /* this.changeDataStructure()*/
  121. /* this.$refs.detailed.detailedList(this.mainData)*/
  122. this.flag = true
  123. },
  124. // 监听切换数据,上一页,下一页
  125. pageChange (id,rowindex) {
  126. this.flag = false
  127. this.$router.replace({path:'/quotedPriceDetail',query:{id:id,rowindex:rowindex}})
  128. this.queryMainData(id)
  129. },
  130. changeDataStructure(){
  131. let that = this
  132. this.mainAreaData = [
  133. {
  134. label:'报价类型',
  135. value:this.mainData.quotedpricetype
  136. },
  137. {
  138. label:'项目编号',
  139. value:this.mainData.projectnum
  140. },
  141. {
  142. label:'项目名称',
  143. value:this.mainData.projectname
  144. },
  145. {
  146. label:'报价日期',
  147. value:this.mainData.billdate
  148. },
  149. {
  150. label:'有效期',
  151. value:this.mainData.begdate?this.mainData.begdate + '至' + this.mainData.enddate:"--"
  152. },
  153. {
  154. label:'客户名称',
  155. value:this.mainData.enterprisename
  156. },
  157. {
  158. label:'联系人',
  159. value:this.mainData.contactsname
  160. },
  161. {
  162. label:'手机号',
  163. value:this.mainData.contactsphonenumber
  164. },
  165. {
  166. label:'总金额(元)',
  167. value:this.totalPrice
  168. },
  169. {
  170. label:'是否特价',
  171. value:this.mainData.specialoffer === 1?'是':'否'
  172. },
  173. {
  174. label:'状态',
  175. value:this.mainData.status,
  176. style:function () {
  177. let style = {}
  178. switch (that.mainData.status) {
  179. case '新建':
  180. style = {color:'#3874f6'}
  181. break;
  182. case '提交':
  183. style = {color:'#52c41a'}
  184. break;
  185. case '审核':
  186. style = {color:'#333333'}
  187. break;
  188. default:
  189. break;
  190. }
  191. return style
  192. }
  193. },
  194. /*{
  195. label:'邮箱',
  196. value:this.mainData.email
  197. }*/
  198. ]
  199. },
  200. /*产品配置信息*/
  201. async productList(){
  202. const res = await this.$api.requested({
  203. "id": 20221021095503,
  204. "version":1,
  205. "content": {
  206. "sa_quotedpriceid":this.$route.query.id //sat_notice_classid<=0时 为新增
  207. }
  208. })
  209. this.totalPrice = 0
  210. console.log(res.data,"产品配置信息")
  211. res.data.forEach((item)=> {
  212. this.totalPrice = this.totalPrice + item.amount
  213. })
  214. /*this.queryMainData(this.$route.query.id)*/
  215. this.totalPrice = Math.round(this.totalPrice * 100) / 100
  216. this.changeDataStructure()
  217. },
  218. onSuccess(){
  219. this.queryMainData(this.$route.query.id)
  220. }
  221. },
  222. mounted() {
  223. this.queryMainData(this.$route.query.id)
  224. }
  225. }
  226. </script>
  227. <style scoped>
  228. </style>