add.vue 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <template>
  2. <div>
  3. <el-dropdown size="small" split-button type="primary" @command="handleCommand">
  4. 新 建
  5. <el-dropdown-menu slot="dropdown">
  6. <el-dropdown-item command="标准订单">标准订单</el-dropdown-item>
  7. <el-dropdown-item command="项目订单">项目订单</el-dropdown-item>
  8. <el-dropdown-item command="促销订单">促销订单</el-dropdown-item>
  9. <el-dropdown-item command="工具订单">工具订单</el-dropdown-item>
  10. </el-dropdown-menu>
  11. </el-dropdown>
  12. <el-drawer
  13. title="新建订单"
  14. :visible.sync="drawer"
  15. direction="rtl"
  16. :show-close="false"
  17. append-to-body
  18. size="800px"
  19. @close="refresh">
  20. <div class="drawer__panel">
  21. <el-row :gutter="15">
  22. <el-form size="small" ref="form" :model="form" :rules="rules" label-width="100px" :status-icon="false">
  23. <el-col :span="24">
  24. <el-form-item label="订单类型" prop="type">
  25. <el-input readonly v-model="form.type" placeholder="订单类型" :maxlength="11" clearable :style="{width: '100%'}"></el-input>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="12">
  29. <el-form-item label="企业信息" prop="sys_enterpriseid">
  30. <enterprise @rowClick="rowClick"></enterprise>
  31. </el-form-item>
  32. </el-col>
  33. <el-col v-if="form.type === '促销订单'" :span="12">
  34. <el-form-item label="活动信息" prop="promname">
  35. <el-popover
  36. placement="bottom"
  37. trigger="click"
  38. v-model="visible1">
  39. <orderCanUseActivity ref="activity" @rowClick="activityClick"></orderCanUseActivity>
  40. <el-input readonly v-model="form.promname" slot="reference" placeholder="选择活动"></el-input>
  41. </el-popover>
  42. </el-form-item>
  43. </el-col>
  44. <el-col v-if="form.type === '项目订单'" :span="12">
  45. <el-form-item label="项目合同" prop="contractname">
  46. <el-popover
  47. placement="bottom"
  48. trigger="click"
  49. v-model="visible">
  50. <orderCanUseContract @rowClick="contractClick"></orderCanUseContract>
  51. <el-input readonly v-model="form.contractname" slot="reference" placeholder="选择合同"></el-input>
  52. </el-popover>
  53. </el-form-item>
  54. </el-col>
  55. <el-col :span="12">
  56. <el-form-item label="选择品牌" prop="sa_brandid">
  57. <el-select :disabled="form.type === '促销订单'" v-model="form.sa_brandid" placeholder="请选择选择品牌" clearable :style="{width: '100%'}">
  58. <el-option v-for="(item, index) in sa_brandidOptions" :key="index" :label="item.brandname"
  59. :value="item.sa_brandid" :disabled="item.disabled"></el-option>
  60. </el-select>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="12">
  64. <el-form-item label="选择领域" prop="tradefield">
  65. <el-select :disabled="form.type === '促销订单'" v-model="form.tradefield" placeholder="请选择选择领域" clearable :style="{width: '100%'}">
  66. <el-option v-for="(item, index) in tradefieldOptions" :key="index" :label="item.tradefield"
  67. :value="item.tradefield" :disabled="item.disabled"></el-option>
  68. </el-select>
  69. </el-form-item>
  70. </el-col>
  71. </el-form>
  72. </el-row>
  73. </div>
  74. <div class="fixed__btn__panel">
  75. <el-button class="normal-btn-width" type="primary" size="small" @click="submitForm">创 建</el-button>
  76. <el-button class="normal-btn-width" size="small" @click="resetForm">重 置</el-button>
  77. </div>
  78. </el-drawer>
  79. </div>
  80. </template>
  81. <script>
  82. import enterprise from '@/template/enterprise/index.vue'
  83. import orderCanUseContract from '@/template/orderCanUseContract/index.vue'
  84. import orderCanUseActivity from '@/template/orderCanUseActivity/index.vue'
  85. export default {
  86. data () {
  87. return {
  88. drawer:false,
  89. visible:false,
  90. visible1:false,
  91. form:{
  92. "sa_orderid": 0,
  93. "sys_enterpriseid":'',
  94. "sa_accountclassid": 0, //营销账户类型ID
  95. "sa_brandid": "", //品牌ID
  96. "sa_contractid": 0, //合同ID,标准订单不传
  97. "sa_projectid": 0, //工程项目表ID,标准订单不传
  98. "sys_enterprise_financeid": 0, //合作企业财务信息ID(开票信息)
  99. "sa_logiscompid": 0, //物流公司档案ID
  100. "rec_contactsid": 0, //合作企业联系人表ID(收货信息)
  101. "type": "", //订单类型
  102. "typemx": "", //明细分类,可选
  103. "remarks": "", //可选
  104. "saler_hrid":0,//销售人员hrid,业务员hrid
  105. "tradefield":"",//必选
  106. "pay_enterpriseid": 0, //结算单位
  107. "rebate_used":0,//默认0,是否使用返利金
  108. "billdate":"",//单据日期,默认创建日期
  109. "signbacknum":""
  110. },
  111. rules: {
  112. sa_brandid: [{
  113. required: true,
  114. message: '请选择选择品牌',
  115. trigger: 'change'
  116. }],
  117. tradefield: [{
  118. required: true,
  119. message: '请选择选择领域',
  120. trigger: 'change'
  121. }],
  122. typemx: [{
  123. required: true,
  124. message: '请选择选子分类',
  125. trigger: 'change'
  126. }],
  127. sys_enterpriseid:[{
  128. required: true,
  129. message: '订货企业不能为空',
  130. trigger: 'blur'
  131. }],
  132. contractname:[{
  133. required: true,
  134. message: '项目不能为空',
  135. trigger: 'blur'
  136. }]
  137. },
  138. sa_brandidOptions: [],
  139. tradefieldOptions: [],
  140. typemxlist:[]
  141. }
  142. },
  143. components:{
  144. enterprise,
  145. orderCanUseContract,
  146. orderCanUseActivity
  147. },
  148. methods:{
  149. handleCommand (command) {
  150. this.drawer = true
  151. this.form.type = command
  152. this.pageData()
  153. this.specordermx()
  154. },
  155. submitForm() {
  156. console.log(this.form)
  157. this.$refs['form'].validate(async valid => {
  158. if (!valid) return
  159. const res = await this.$api.requested({
  160. "id": 20221108111402,
  161. "content":this.form
  162. })
  163. this.tool.showMessage(res,()=>{
  164. this.drawer = false
  165. this.$store.dispatch('changeDetailDrawer',true)
  166. this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})
  167. })
  168. })
  169. },
  170. async specordermx () {
  171. const res = await this.$store.dispatch('optiontypeselect','specordermx')
  172. this.typemxlist = res.data
  173. },
  174. resetForm() {
  175. this.$refs['form'].resetFields()
  176. },
  177. async pageData () {
  178. const res = await this.$api.requested({
  179. "id": 20220924163702,
  180. "content": {
  181. "pageSize": 999,
  182. }
  183. })
  184. this.sa_brandidOptions = res.data
  185. const res1 = await this.$api.requested({
  186. "id": 20221223141802,
  187. "content": {
  188. "pageSize": 999,
  189. }
  190. })
  191. this.tradefieldOptions = res1.data
  192. },
  193. rowClick (row) {
  194. this.form.sys_enterpriseid = row.sys_enterpriseid
  195. this.form.type === '促销订单'?this.$refs['activity'].listData(row.sys_enterpriseid):''
  196. this.form.type === '促销订单'?this.activityClick({}):''
  197. },
  198. contractClick (row) {
  199. this.form.sa_contractid = row.sa_contractid
  200. this.form.contractname = row.title === ''?'未知':row.title
  201. this.visible = false
  202. },
  203. activityClick (row) {
  204. this.form.sa_promotionid = row.sa_promotionid
  205. this.form.promname = row.promname
  206. this.form.tradefield = row.tradefield
  207. this.form.sa_brandid = row.sa_brandid
  208. if (row.tradefield) {
  209. let arr = []
  210. arr = this.tradefieldOptions.filter(e=>{
  211. if (e.tradefield === row.tradefield) {
  212. return e
  213. }
  214. })
  215. this.childField = arr[0].subvalues
  216. }
  217. this.$refs['form'].validate()
  218. this.visible1 = false
  219. },
  220. refresh () {
  221. this.form = {
  222. "sa_orderid": 0,
  223. "sys_enterpriseid": 0, //订货企业id,可不传,默认取当前账号的
  224. "sa_accountclassid": 0, //营销账户类型ID
  225. "sa_brandid": "", //品牌ID
  226. "sa_contractid": 0, //合同ID,标准订单不传
  227. "sa_projectid": 0, //工程项目表ID,标准订单不传
  228. "sys_enterprise_financeid": 0, //合作企业财务信息ID(开票信息)
  229. "sa_logiscompid": 0, //物流公司档案ID
  230. "rec_contactsid": 0, //合作企业联系人表ID(收货信息)
  231. "type": "", //订单类型
  232. "typemx": "", //明细分类,可选
  233. "remarks": "", //可选
  234. "saler_hrid":0,//销售人员hrid,业务员hrid
  235. "tradefield":"",//必选
  236. "pay_enterpriseid": 0, //结算单位
  237. "rebate_used":0,//默认0,是否使用返利金
  238. "billdate":"",//单据日期,默认创建日期
  239. "signbacknum":""
  240. }
  241. this.visible1 = false
  242. }
  243. }
  244. }
  245. </script>
  246. <style>
  247. </style>