add.vue 13 KB

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