index.vue 7.8 KB

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