add.vue 12 KB

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