applyfor.6a985e5a.js.map 119 KB

1
  1. {"version":3,"sources":["webpack:///./node_modules/core-js/internals/delete-property-or-throw.js","webpack:///./src/api/approveinfo.js","webpack:///./src/views/applyfor/approval-form.vue?f9c6","webpack:///src/views/applyfor/approval-form.vue","webpack:///./src/views/applyfor/approval-form.vue?8bd5","webpack:///./src/views/applyfor/approval-form.vue","webpack:///./src/views/applyfor/components/CSelectImitate.vue?61a4","webpack:///src/views/applyfor/components/CSelectImitate.vue","webpack:///./src/views/applyfor/components/CSelectImitate.vue?eedd","webpack:///./src/views/applyfor/components/CSelectImitate.vue","webpack:///./src/views/applyfor/components/CInput.vue?7e2e","webpack:///./src/views/applyfor/goods.vue?6911","webpack:///src/views/applyfor/goods.vue","webpack:///./src/views/applyfor/goods.vue?e6d1","webpack:///./src/views/applyfor/goods.vue","webpack:///./src/views/applyfor/goods-specifications.vue?a92c","webpack:///src/views/applyfor/goods-specifications.vue","webpack:///./src/views/applyfor/goods-specifications.vue?ef01","webpack:///./src/views/applyfor/goods-specifications.vue","webpack:///./node_modules/core-js/modules/es.array.unshift.js","webpack:///./src/views/applyfor/goods.vue?6e47","webpack:///./src/views/applyfor/approval-form-sel.vue?7c50","webpack:///./src/views/applyfor/ProductStore.vue?df30","webpack:///./src/views/applyfor/ProductStore.vue?67dd","webpack:///./src/api/goods.js","webpack:///src/views/applyfor/ProductStore.vue","webpack:///./src/views/applyfor/ProductStore.vue?7008","webpack:///./src/views/applyfor/ProductStore.vue","webpack:///./src/views/applyfor/components/CInput.vue?3d3b","webpack:///src/views/applyfor/components/CInput.vue","webpack:///./src/views/applyfor/components/CInput.vue?cb0e","webpack:///./src/views/applyfor/components/CInput.vue","webpack:///./src/views/applyfor/components/Layout.vue?4384","webpack:///src/views/applyfor/components/Layout.vue","webpack:///./src/views/applyfor/components/Layout.vue?29c9","webpack:///./src/views/applyfor/components/Layout.vue","webpack:///./src/views/applyfor/goods-specifications.vue?6cd9","webpack:///./src/utils/vueBus.js","webpack:///./src/views/applyfor/approval-form.vue?c4fa","webpack:///./src/views/applyfor/components/CSelectImitate.vue?8fe8","webpack:///./src/views/applyfor/components/Layout.vue?2ac2","webpack:///./src/views/applyfor/approval-form-sel.vue?cfb3","webpack:///src/views/applyfor/approval-form-sel.vue","webpack:///./src/views/applyfor/approval-form-sel.vue?acc6","webpack:///./src/views/applyfor/approval-form-sel.vue"],"names":["tryToString","$TypeError","TypeError","module","exports","O","P","postCreateInfo","data","request","method","url","getRecordList","getDetail","getInfo","putUrging","putCancel","postEvaluate","downloadPdf","render","_vm","this","_h","$createElement","_c","_self","staticClass","_e","attrs","finished","finishedText","on","onLoadData","model","value","callback","$$v","listLoading","expression","_l","item","idx","key","$event","handleCheckboxItem","class","selected","_v","_s","username","apply_date","reason","_f","apply_goods","directives","name","rawName","handleConfirmForm","staticRenderFns","computed","mapState","state","list","showEmpty","pagination","page","page_num","isSelectedAll","created","navigationSetting","__list__","methods","settingNavigationRight","show","sel","$route","query","split","THAT","params","group","result","code","map","includes","String","id","length","concat","error","console","log","handleSelectAll","row","$forceUpdate","$nextTick","arrs","filter","$toast","localStorage","setItem","SAVE_APPROVAL_NAME","JSON","stringify","$router","push","filters","filterGoods","goods","Array","isArray","good","goods_name","join","component","$attrs","title","required","$emit","placeholder","hideRemove","components","Layout","props","type","default","Boolean","flag","goods_category_text","handleClickCategory","handleClearCategory","goods_no","goods_brand","goodsStandarsTxt","handleClickStandards","handleClearStandards","handleConfirmSubmit","name_cn","CInput","CSelectImitate","goods_stock","goods_id","undefined","goods_category_first","goods_category_id","vueBus","$on","handleCategoryData","handleStandarsData","parse","edit","__id__","first","second","role","flagtxt","showPrice","Number","temporary","Date","now","$store","commit","go","beforeDestroy","$off","isApproveM4","handleRemoveAll","closeable","standar","handleClose","handleEdit","visibilityDialog","$set","handleBeforeCloseDialog","handleCancelEvent","handleConfirmEdit","templateValue","trim","handleSubmitStandars","editIdx","__init__","stocks","temp","stock","price","reverse","$dialog","confirm","message","confirmButtonColor","then","catch","splice","action","done","isRepeat","some","val","unshift","isExist","checkPrice","i","str","$","toObject","lengthOfArrayLike","setArrayLength","deletePropertyOrThrow","doesNotExceedSafeInteger","INCORRECT_RESULT","properErrorOnNonWritableLength","Object","defineProperty","writable","FORCED","target","proto","arity","forced","len","argCount","arguments","k","to","j","handleClickSearchBox","scopedSlots","_u","fn","handleLaunchSearch","proxy","searchVal","searchData","handleResetSearch","handleSelectedGoods","goods_category_first_en","goods_category_en","radioCategory","handleClickRow","idx2","handleClickSecondRow","queryed","childlist","idx3","handleConfirmCategory","style","height","popupVisibility","choosedStock","leftStockComp","label","handleClickItem","handleConfirmInput","category","productData","currentData","categoryData","__queryCategoay__","expand","toastInstance","duration","__queryStoreData__","clear","_list","isAllInput","every","choosedGoodsId","customCount","GoodsPrice","choosedGoodsS","ChoosedGoodsStock","goodsStock","temporaryData","Promise","resolve","reject","goodsApi","category_id","selId","__category_en__","firs","itm","keyword","search","watch","radio","inputType","maxlength","showWordLimit","readonly","disabled","_t","Vue","isEdit","goodIndex","categor","index","handleRemoveRow","getItem","goodsIndex","confirmButtonText"],"mappings":"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","file":"js/applyfor.6a985e5a.js","sourcesContent":["'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","/**\r\n * @description 审批申请Api\r\n */\r\n\r\nimport request from \"@/utils/request\";\r\n\r\n// 申请/重新发起申请\r\nexport const postCreateInfo = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/create\",\r\n data,\r\n });\r\n\r\n// 获取申请记录\r\nexport const getRecordList = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/get_list\",\r\n data,\r\n });\r\n\r\n// 获取申请详情\r\nexport const getDetail = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/get_detail\",\r\n data,\r\n });\r\n\r\n// 获取申请信息 - 重新发起时使用\r\nexport const getInfo = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/get_info\",\r\n data,\r\n });\r\n\r\n// 催办\r\nexport const putUrging = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/urging\",\r\n data,\r\n });\r\n\r\n// 撤销\r\nexport const putCancel = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/cancel\",\r\n data,\r\n });\r\n\r\n// 更新维修评价\r\nexport const postEvaluate = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/comment\",\r\n data,\r\n });\r\n\r\nexport const downloadPdf = (data) =>\r\n request({\r\n method: \"POST\",\r\n url: \"approveinfo/download\",\r\n data,\r\n });\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"approval-container flex flex-col flex-col-jcsp\"},[_c('div',{staticClass:\"approval__header\"},[(false)?_c('van-icon',{class:[\n 'topcico',\n _vm.isSelectedAll ? 'sel' : ''\n ],attrs:{\"name\":\"circle\",\"size\":18},on:{\"click\":_vm.handleSelectAll}},[_c('span',[_vm._v(\"全选\")])]):_vm._e()],1),_c('div',{staticClass:\"approval__content\"},[_c('van-list',{attrs:{\"finished\":_vm.finished,\"finished-text\":_vm.finishedText,\"immediate-check\":false},on:{\"load\":_vm.onLoadData},model:{value:(_vm.listLoading),callback:function ($$v) {_vm.listLoading=$$v},expression:\"listLoading\"}},[_vm._l((_vm.list),function(item,idx){return [_c('div',{key:idx,staticClass:\"approval-item flex flex-row\",on:{\"click\":function($event){return _vm.handleCheckboxItem(item, idx)}}},[_c('div',{staticClass:\"checkbox\"},[_c('van-icon',{class:item.selected ? 'sel' : '',attrs:{\"name\":\"circle\",\"size\":18}})],1),_c('div',{staticClass:\"approval-item__main\"},[_c('div',{staticClass:\"approval-item__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"hb\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"采购人\")]),_c('div',{staticClass:\"ctx\"},[_vm._v(_vm._s(_vm.username))])]),_c('div',{staticClass:\"hb\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"采购时间\")]),_c('div',{staticClass:\"ctx\"},[_vm._v(_vm._s(item.apply_date))])])]),_c('div',{staticClass:\"approval-item__mid\"},[_c('div',{staticClass:\"hb\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"采购事由\")]),_c('div',{staticClass:\"ctx\"},[_vm._v(_vm._s(item.reason))])])]),_c('div',{staticClass:\"approval-item__mid\"},[_c('div',{staticClass:\"hb\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"采购物品\")]),_c('div',{staticClass:\"ctx\"},[_vm._v(_vm._s(_vm._f(\"filterGoods\")(item.apply_goods)))])])])])])]})],2),_c('my-empty',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEmpty),expression:\"showEmpty\"}],attrs:{\"tip\":\"暂无数据\"}})],1),_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmForm}},[_vm._v(\"确定\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"approval-container flex flex-col flex-col-jcsp\">\r\n <div class=\"approval__header\">\r\n <van-icon v-if=\"false\" name=\"circle\" :class=\"[\r\n 'topcico',\r\n isSelectedAll ? 'sel' : ''\r\n ]\" :size=\"18\" @click=\"handleSelectAll\">\r\n <span>全选</span>\r\n </van-icon>\r\n </div>\r\n <div class=\"approval__content\">\r\n <van-list v-model=\"listLoading\" :finished=\"finished\" :finished-text=\"finishedText\" @load=\"onLoadData\"\r\n :immediate-check=\"false\">\r\n\r\n <template v-for=\"(item, idx) in list\">\r\n <div class=\"approval-item flex flex-row\" :key=\"idx\" @click=\"handleCheckboxItem(item, idx)\">\r\n <div class=\"checkbox\">\r\n <van-icon name=\"circle\" :class=\"item.selected ? 'sel' : ''\" :size=\"18\">\r\n </van-icon>\r\n </div>\r\n <div class=\"approval-item__main\">\r\n <div class=\"approval-item__header flex flex-row flex-row-aic\">\r\n <div class=\"hb\">\r\n <div class=\"title\">采购人</div>\r\n <div class=\"ctx\">{{ username }}</div>\r\n </div>\r\n <div class=\"hb\">\r\n <div class=\"title\">采购时间</div>\r\n <div class=\"ctx\">{{ item.apply_date }}</div>\r\n </div>\r\n </div>\r\n <div class=\"approval-item__mid\">\r\n <div class=\"hb\">\r\n <div class=\"title\">采购事由</div>\r\n <div class=\"ctx\">{{ item.reason }}</div>\r\n </div>\r\n </div>\r\n <div class=\"approval-item__mid\">\r\n <div class=\"hb\">\r\n <div class=\"title\">采购物品</div>\r\n <div class=\"ctx\">{{ item.apply_goods | filterGoods }}</div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </template>\r\n\r\n </van-list>\r\n <my-empty v-show=\"showEmpty\" tip=\"暂无数据\" />\r\n </div>\r\n <div class=\"btn-container\">\r\n <div class=\"btn-span\" @click=\"handleConfirmForm\">确定</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport { getRecordList } from '@/api/approveinfo'\r\n\r\nimport { SAVE_APPROVAL_NAME } from '@/utils/constant'\r\nimport { settingNavigationRight } from '@/utils/dingtalk'\r\nimport { mapState } from 'vuex'\r\nexport default {\r\n name: 'CApprovalForm',\r\n computed: {\r\n ...mapState('user', {\r\n username: state => state.name\r\n })\r\n },\r\n data: () => ({\r\n list: [],\r\n showEmpty: false,\r\n listLoading: false,\r\n finished: false,\r\n finishedText: '暂无更多数据了',\r\n pagination: {\r\n page: 1,\r\n page_num: 20\r\n },\r\n isSelectedAll: false,\r\n }),\r\n created() {\r\n this.navigationSetting()\r\n this.__list__()\r\n },\r\n methods: {\r\n // NOTE: 设置Right标题隐藏\r\n navigationSetting() {\r\n settingNavigationRight({\r\n show: false\r\n })\r\n },\r\n onLoadData() {\r\n this.__list__()\r\n },\r\n async __list__() {\r\n try {\r\n let sel = []\r\n\r\n if (this.$route.query && this.$route.query.sel) {\r\n sel = this.$route.query.sel.split(',')\r\n }\r\n\r\n const THAT = this\r\n\r\n const params = {\r\n ...THAT.pagination,\r\n group: 'form'\r\n }\r\n\r\n const result = await getRecordList(params)\r\n if (result.code === 1) {\r\n let list = result.data || []\r\n\r\n this.listLoading = false\r\n\r\n list = list.map(item => ({\r\n ...item,\r\n selected: sel.includes(String(item.id))\r\n }))\r\n\r\n if (list.length < THAT.pagination.page_num) THAT.finished = true\r\n\r\n else {\r\n THAT.pagination.page++\r\n }\r\n\r\n THAT.list = THAT.list.concat(list)\r\n if (THAT.finished && !THAT.list.length) {\r\n THAT.finishedText = ''\r\n THAT.showEmpty = true\r\n }\r\n }\r\n } catch (error) {\r\n console.log('%c __list__ >>>', 'background: blue; color: #fff', error);\r\n }\r\n },\r\n\r\n // Selecte All\r\n handleSelectAll() {\r\n this.isSelectedAll = !this.isSelectedAll\r\n this.list = this.list.map(item => ({\r\n ...item,\r\n selected: this.isSelectedAll\r\n }))\r\n },\r\n\r\n // Checkbox item\r\n handleCheckboxItem(item, idx) {\r\n // NOTE: 清空选中操作\r\n this.list = this.list.map(row => ({\r\n ...row,\r\n selected: false,\r\n }))\r\n\r\n this.$forceUpdate()\r\n // this.list[idx].selected = !item.selected\r\n this.$nextTick(() => {\r\n this.list[idx].selected = true\r\n // NOTE: 全选逻辑\r\n // let hasAll = this.list.every(item => (item.selected))\r\n // this.isSelectedAll = hasAll\r\n this.$forceUpdate()\r\n })\r\n },\r\n\r\n handleConfirmForm() {\r\n let arrs = this.list.filter(item => (item.selected))\r\n if (!arrs.length) return this.$toast('请选择采购单!')\r\n\r\n localStorage.setItem(SAVE_APPROVAL_NAME, JSON.stringify(arrs))\r\n\r\n this.$nextTick(() => {\r\n this.$router.push({\r\n name: 'CApprovalFormSel'\r\n })\r\n })\r\n\r\n }\r\n\r\n },\r\n filters: {\r\n filterGoods(goods) {\r\n if (!Array.isArray(goods)) return '/'\r\n if (!goods.length) return '/'\r\n return goods.map(good => (good.goods_name)).join('、')\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.approval {\r\n &-container {\r\n padding-top: 10px;\r\n height: 100vh;\r\n box-sizing: border-box;\r\n }\r\n\r\n &__header {\r\n background-color: #fff;\r\n font-size: 16px;\r\n padding: 14px 12px;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\r\n\r\n span {\r\n margin-left: 10px;\r\n }\r\n }\r\n\r\n &__content {\r\n height: 0;\r\n flex: 1;\r\n background-color: #fff;\r\n overflow: auto;\r\n }\r\n}\r\n\r\n.approval-item {\r\n padding: 0 0 10px 10px;\r\n\r\n &:first-child {\r\n .approval-item__main {\r\n border-top: none;\r\n }\r\n }\r\n\r\n .checkbox {\r\n width: 60px;\r\n text-align: center;\r\n }\r\n\r\n &__main {\r\n width: 0;\r\n flex: 1;\r\n padding-top: 15px;\r\n border-top: 1px solid rgba(151, 151, 151, 0.3);\r\n\r\n .hb {\r\n font-size: 0;\r\n\r\n .title {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 18px;\r\n }\r\n\r\n .ctx {\r\n font-size: 16px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 24px;\r\n }\r\n }\r\n }\r\n\r\n &__header {\r\n justify-content: space-between;\r\n padding-right: 20px;\r\n padding-bottom: 15px;\r\n }\r\n\r\n &__mid {\r\n padding-right: 20px;\r\n padding-bottom: 15px;\r\n }\r\n}\r\n\r\n// circle box\r\n.van-icon.van-icon-circle {\r\n position: relative;\r\n z-index: 1;\r\n color: rgba(200, 200, 201, 1);\r\n\r\n &.sel {\r\n color: rgba(50, 144, 196, 1);\r\n\r\n &::after {\r\n position: absolute;\r\n left: 50%;\r\n top: 52%;\r\n content: \"\";\r\n width: 11px;\r\n height: 11px;\r\n transform: translate(-50%, -50%);\r\n background-color: rgba(50, 144, 196, 1);\r\n border-radius: 10px;\r\n }\r\n }\r\n\r\n &.topcico {\r\n &::after {\r\n left: 14%;\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./approval-form.vue?vue&type=template&id=358617b7&scoped=true\"\nimport script from \"./approval-form.vue?vue&type=script&lang=js\"\nexport * from \"./approval-form.vue?vue&type=script&lang=js\"\nimport style0 from \"./approval-form.vue?vue&type=style&index=0&id=358617b7&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"358617b7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":_vm.$attrs.title,\"required\":_vm.$attrs.required}},[_c('div',{staticClass:\"custom-select-container flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\",on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.value)?_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.value))]):_c('div',{staticClass:\"default\"},[_vm._v(_vm._s(_vm.placeholder))])]),(_vm.hideRemove ? false : true)?_c('div',{staticClass:\"right\"},[(_vm.value)?_c('van-icon',{attrs:{\"size\":20,\"color\":\"#A2A3A4\",\"name\":\"clear\"},on:{\"click\":function($event){return _vm.$emit('clear')}}}):_vm._e(),_c('van-icon',{attrs:{\"color\":\"#A2A3A4\",\"size\":20,\"name\":\"arrow\"},on:{\"click\":function($event){return _vm.$emit('click')}}})],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <layout :title=\"$attrs.title\" :required=\"$attrs.required\">\r\n <div class=\"custom-select-container flex flex-row flex-row-aic\">\r\n <div class=\"left\" @click=\"$emit('click')\">\r\n <div v-if=\"value\" class=\"value\">{{ value }}</div>\r\n <div v-else class=\"default\">{{ placeholder }}</div>\r\n </div>\r\n <div class=\"right\" v-if=\"hideRemove ? false : true\">\r\n <van-icon v-if=\"value\" :size=\"20\" color=\"#A2A3A4\" name=\"clear\" @click=\"$emit('clear')\" />\r\n <van-icon color=\"#A2A3A4\" :size=\"20\" name=\"arrow\" @click=\"$emit('click')\" />\r\n </div>\r\n </div>\r\n </layout>\r\n</template>\r\n\r\n<script>\r\n/**\r\n * @description 当前组件只为展示UI和数据。\r\n */\r\nimport Layout from './Layout.vue';\r\nexport default {\r\n name: 'CSelectImitate',\r\n\r\n components: {\r\n Layout\r\n },\r\n\r\n props: {\r\n value: {\r\n type: String,\r\n default: ''\r\n },\r\n placeholder: {\r\n type: String,\r\n default: '请选择'\r\n },\r\n hideRemove: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.custom-select {\r\n &-container {\r\n justify-content: space-between;\r\n\r\n .left {\r\n flex: 1;\r\n\r\n .value {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #1A1A1F;\r\n line-height: 20px;\r\n }\r\n\r\n .default {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 20px;\r\n }\r\n }\r\n\r\n .right {\r\n .van-icon {\r\n margin-left: 2px;\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CSelectImitate.vue?vue&type=template&id=779f15c0&scoped=true\"\nimport script from \"./CSelectImitate.vue?vue&type=script&lang=js\"\nexport * from \"./CSelectImitate.vue?vue&type=script&lang=js\"\nimport style0 from \"./CSelectImitate.vue?vue&type=style&index=0&id=779f15c0&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"779f15c0\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CInput.vue?vue&type=style&index=0&id=63f8111c&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"goods-container flex flex-col\"},[_c('div',{staticClass:\"goods__main\"},[(_vm.flag === '1')?_c('c-select-imitate',{attrs:{\"title\":\"商品分类\",\"value\":_vm.goods_category_text},on:{\"click\":_vm.handleClickCategory,\"clear\":_vm.handleClearCategory}}):_vm._e(),_c('c-input',{attrs:{\"title\":\"商品编号\",\"disabled\":_vm.flag == 3},model:{value:(_vm.goods_no),callback:function ($$v) {_vm.goods_no=$$v},expression:\"goods_no\"}}),_c('c-input',{attrs:{\"title\":\"商品名称\",\"disabled\":_vm.flag == 3},model:{value:(_vm.goods_name),callback:function ($$v) {_vm.goods_name=$$v},expression:\"goods_name\"}}),_c('c-input',{attrs:{\"title\":\"商品品牌\",\"disabled\":_vm.flag == 3},model:{value:(_vm.goods_brand),callback:function ($$v) {_vm.goods_brand=$$v},expression:\"goods_brand\"}}),_c('c-select-imitate',{attrs:{\"title\":\"商品规格\",\"value\":_vm.goodsStandarsTxt},on:{\"click\":_vm.handleClickStandards,\"clear\":_vm.handleClearStandards}})],1),_c('div',{staticClass:\"goods__footer\"},[_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmSubmit}},[_vm._v(_vm._s(_vm.flag === '3' ? '修改' : '提交'))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"goods-container flex flex-col\">\r\n <div class=\"goods__main\">\r\n <!-- NOTE: flag === 3 时、商品分类不展示/无法获取中文枚举(只能通过接口来) -->\r\n <c-select-imitate v-if=\"flag === '1'\" title=\"商品分类\" :value=\"goods_category_text\" @click=\"handleClickCategory\"\r\n @clear=\"handleClearCategory\" />\r\n\r\n <c-input title=\"商品编号\" v-model=\"goods_no\" :disabled=\"flag == 3\" />\r\n\r\n <c-input title=\"商品名称\" v-model=\"goods_name\" :disabled=\"flag == 3\" />\r\n\r\n <c-input title=\"商品品牌\" v-model=\"goods_brand\" :disabled=\"flag == 3\" />\r\n\r\n <c-select-imitate title=\"商品规格\" :value=\"goodsStandarsTxt\" @click=\"handleClickStandards\"\r\n @clear=\"handleClearStandards\" />\r\n </div>\r\n\r\n <div class=\"goods__footer\">\r\n <div class=\"btn-container\">\r\n <div class=\"btn-span\" @click=\"handleConfirmSubmit\">{{ flag === '3' ? '修改' : '提交' }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n.goods {\r\n &-container {\r\n height: 100vh;\r\n justify-content: space-between;\r\n\r\n .layout-container {\r\n margin-top: 10px;\r\n }\r\n\r\n .btn-container {\r\n margin-top: initial;\r\n }\r\n }\r\n\r\n &__main {\r\n height: 0;\r\n flex: 1;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n\r\n/**\r\n * @description 添加商品/修改商品页\r\n * @date 2023/11/30\r\n * @param flag = 3 表示修改\r\n * @param goods_id = xxx 商品Id\r\n */\r\n\r\nimport vueBus from '@/utils/vueBus';\r\nimport CInput from './components/CInput.vue';\r\n// import CSelect from './components/CSelect.vue';\r\nimport CSelectImitate from './components/CSelectImitate.vue'\r\nimport { settingNavigationRight } from '@/utils/dingtalk'\r\n\r\nexport default {\r\n name: 'Goods',\r\n name_cn: '商品', // 新增或修改商品单项时存在\r\n components: {\r\n CInput,\r\n // CSelect,\r\n CSelectImitate\r\n },\r\n computed: {\r\n goodsStandarsTxt() {\r\n if (this.goods_stock.length) {\r\n return `共${this.goods_stock.length}个规格`\r\n } else {\r\n return ''\r\n }\r\n },\r\n },\r\n\r\n data: () => ({\r\n flag: '1', // 默认是新增:1 修改:3\r\n id: '', // 自定义商品的Id\r\n goods_id: undefined, // 商品id\r\n goods_category_first: '',\r\n goods_category_id: '',\r\n goods_category_text: '',\r\n goods_no: '',\r\n goods_name: '',\r\n goods_brand: '',\r\n goods_stock: [], // object[]\r\n row: null\r\n }),\r\n\r\n created() {\r\n this.navigationSetting()\r\n vueBus.$on('listenCategoryEvent', this.handleCategoryData)\r\n vueBus.$on('listenStrandarsEvent', this.handleStandarsData)\r\n const { flag } = this.$route.query\r\n if (flag === '3') { // update state\r\n const row = JSON.parse(this.$route.query.edit)\r\n if (row) {\r\n this.row = row\r\n console.log('%c update row??? >>>', 'background: blue; color: #fff', row);\r\n this.flag = flag\r\n this.goods_id = row.goods_id || undefined\r\n this.goods_category_first = row.goods_category_first || ''\r\n this.goods_category_id = row.goods_category_id || ''\r\n this.goods_no = row.goods_no || ''\r\n this.goods_name = row.goods_name || ''\r\n this.goods_brand = row.goods_brand || ''\r\n this.goods_stock = row.goods_stock || []\r\n if (row.__id__) this.id = row.__id__ // 自定义添加商品才有\r\n }\r\n }\r\n\r\n },\r\n methods: {\r\n // NOTE: 设置Right标题隐藏\r\n navigationSetting() {\r\n settingNavigationRight({\r\n show: false\r\n })\r\n },\r\n handleClickCategory() {\r\n this.$router.push({\r\n name: 'ProductStore',\r\n query: {\r\n type: '2'\r\n }\r\n })\r\n },\r\n handleClearCategory() {\r\n this.goods_category_first = ''\r\n this.goods_category_id = ''\r\n this.goods_category_text = ''\r\n },\r\n // NOTE: 处理商品分类数据\r\n handleCategoryData(data) {\r\n const { first, second } = data\r\n\r\n this.goods_category_text = `${first.name}/${second.name}`\r\n this.goods_category_first = first.id\r\n this.goods_category_id = second.id\r\n },\r\n handleClickStandards() {\r\n this.$router.push({\r\n name: 'GoodsSpeci',\r\n query: {\r\n // standars: this.standars.join(','),\r\n // NOTE: 只有type === 1才展示价格\r\n role: this.$route.query.flagtxt,\r\n type: this.$route.query.type,\r\n showPrice: Number(['1'].includes(this.$route.query.type)),\r\n goods_stock: JSON.stringify(this.goods_stock)\r\n }\r\n })\r\n },\r\n\r\n handleClearStandards() {\r\n this.goods_stock = []\r\n },\r\n\r\n // NOTE: 更新规格数据\r\n handleStandarsData(arrs) {\r\n this.goods_stock = [...arrs]\r\n\r\n if (this.row) { // 如果修改了规格;`flag` 字段变更成1; 后端重新录入规格\r\n this.row.flag = '1'\r\n }\r\n },\r\n\r\n // 确认提交\r\n handleConfirmSubmit() {\r\n const temporary = {\r\n flag: this.flag,\r\n goods_category_first: this.goods_category_first,\r\n goods_category_id: this.goods_category_id,\r\n goods_no: this.goods_no,\r\n goods_name: this.goods_name,\r\n goods_brand: this.goods_brand,\r\n goods_stock: this.goods_stock\r\n }\r\n\r\n if (this.flag === '3') { // update online goods\r\n if (this.row.flag) temporary.flag = this.row.flag\r\n\r\n if (this.goods_id) { // 线上商品\r\n temporary.goods_id = this.goods_id\r\n } else if (this.id) { // 新增商品-修改\r\n temporary['__id__'] = this.id\r\n }\r\n\r\n } else temporary['__id__'] = `${Date.now()}`\r\n\r\n vueBus.$emit('changeGoods', temporary)\r\n\r\n this.$nextTick(() => {\r\n this.$store.commit({\r\n type: \"app/ROUTE_REMOVE\",\r\n value: \"Goods\"\r\n })\r\n this.$router.go(-1)\r\n })\r\n }\r\n\r\n },\r\n beforeDestroy() {\r\n vueBus.$off('listenCategoryEvent')\r\n vueBus.$off('listenStrandarsEvent')\r\n }\r\n}\r\n</script>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./goods.vue?vue&type=template&id=77e8c340&scoped=true\"\nimport script from \"./goods.vue?vue&type=script&lang=js\"\nexport * from \"./goods.vue?vue&type=script&lang=js\"\nimport style0 from \"./goods.vue?vue&type=style&index=0&id=77e8c340&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77e8c340\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"specifications-container flex flex-col\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.goods_stock.length),expression:\"goods_stock.length\"}],staticClass:\"s-header flex flex-row flex-row-aic\"},[_c('span',[_vm._v(\"商品规格\")]),(!_vm.isApproveM4)?_c('div',{staticClass:\"icons\"},[_c('van-icon',{attrs:{\"name\":\"delete-o\",\"size\":18,\"color\":\"#828181\"},on:{\"click\":_vm.handleRemoveAll}}),_c('van-icon',{attrs:{\"name\":\"setting-o\",\"size\":_vm.closeable ? 20 : 18,\"color\":_vm.closeable ? '#414141' : '#828181'},on:{\"click\":function($event){_vm.closeable = !_vm.closeable}}})],1):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.goods_stock.length),expression:\"goods_stock.length\"}],staticClass:\"s-context flex flex-row\"},[_vm._l((_vm.goods_stock),function(standar,idx){return [_c('van-tag',{key:idx,attrs:{\"closeable\":_vm.closeable,\"size\":\"large\",\"type\":\"primary\"},on:{\"close\":function($event){return _vm.handleClose(standar, idx)},\"click\":function($event){return _vm.handleEdit(standar, idx)}}},[_vm._v(\" \"+_vm._s(standar.name)+\" \")])]})],2),(!_vm.isApproveM4 && _vm.goods_stock.length)?_c('div',{staticClass:\"s-btn\"},[_c('van-icon',{attrs:{\"name\":\"plus\",\"size\":14}}),_c('span',{on:{\"click\":function($event){_vm.visibilityDialog = true}}},[_vm._v(\"追加新规格\")])],1):_vm._e(),_c('div',{staticClass:\"main\"},[(_vm.goods_stock.length)?_c('div',{staticClass:\"standars-box\"},_vm._l((_vm.goods_stock),function(item,idx){return _c('div',{key:idx,staticClass:\"row\"},[_c('div',{staticClass:\"row__header flex flex-row flex-row-aic\"},[_c('span',[_vm._v(\" \"+_vm._s(item.name)+\" \")])]),_c('div',{staticClass:\"row__main\"},[(_vm.$route.query.showPrice == 1)?_c('c-input',{attrs:{\"title\":\"价格\",\"maxlength\":9,\"showWordLimit\":false,\"input-type\":\"number\"},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", $$v)},expression:\"item.price\"}}):_vm._e(),_c('c-input',{attrs:{\"title\":\"数量\",\"maxlength\":5,\"showWordLimit\":false,\"input-type\":\"digit\"},model:{value:(item.stock),callback:function ($$v) {_vm.$set(item, \"stock\", $$v)},expression:\"item.stock\"}})],1)])}),0):_c('div',{staticClass:\"addbtn\",on:{\"click\":function($event){_vm.visibilityDialog = true}}},[_c('van-icon',{attrs:{\"name\":\"plus\",\"size\":18}}),_vm._v(\" 添加规格 \")],1)]),_c('van-dialog',{attrs:{\"title\":\"添加/修改规格\",\"show-cancel-button\":\"\",\"confirm-button-color\":\"#007aff\",\"before-close\":_vm.handleBeforeCloseDialog},on:{\"cancel\":_vm.handleCancelEvent,\"confirm\":_vm.handleConfirmEdit},model:{value:(_vm.visibilityDialog),callback:function ($$v) {_vm.visibilityDialog=$$v},expression:\"visibilityDialog\"}},[_c('van-field',{attrs:{\"center\":\"\",\"input-align\":\"center\",\"placeholder\":\"蓝色,165cm\"},model:{value:(_vm.templateValue),callback:function ($$v) {_vm.templateValue=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"templateValue\"}})],1),(_vm.goods_stock.length)?_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleSubmitStandars}},[_vm._v(\"提交\")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"specifications-container flex flex-col\">\r\n <div class=\"s-header flex flex-row flex-row-aic\" v-show=\"goods_stock.length\">\r\n <span>商品规格</span>\r\n <div class=\"icons\" v-if=\"!isApproveM4\">\r\n <van-icon @click=\"handleRemoveAll\" name=\"delete-o\" :size=\"18\" color=\"#828181\" />\r\n <van-icon @click=\"closeable = !closeable\" name=\"setting-o\" :size=\"closeable ? 20 : 18\"\r\n :color=\"closeable ? '#414141' : '#828181'\" />\r\n </div>\r\n </div>\r\n <div class=\"s-context flex flex-row\" v-show=\"goods_stock.length\">\r\n <template v-for=\"(standar, idx) in goods_stock\">\r\n <van-tag :closeable=\"closeable\" size=\"large\" type=\"primary\" @close=\"handleClose(standar, idx)\"\r\n @click=\"handleEdit(standar, idx)\" :key=\"idx\">\r\n {{ standar.name }}\r\n </van-tag>\r\n </template>\r\n </div>\r\n <div class=\"s-btn\" v-if=\"!isApproveM4 && goods_stock.length\">\r\n <van-icon name=\"plus\" :size=\"14\" />\r\n <span @click=\"visibilityDialog = true\">追加新规格</span>\r\n </div>\r\n\r\n <div class=\"main\">\r\n <!-- 内容 -->\r\n <div class=\"standars-box\" v-if=\"goods_stock.length\">\r\n <!-- NOTE: goods_stock -->\r\n <div class=\"row\" v-for=\"(item, idx) in goods_stock\" :key=\"idx\">\r\n <div class=\"row__header flex flex-row flex-row-aic\">\r\n <span>\r\n {{ item.name }}\r\n </span>\r\n <!-- <van-icon v-show=\"closeable\" @click=\"handleClose(item, idx)\" name=\"delete-o\" :size=\"18\" color=\"#b8b8b8\" /> -->\r\n </div>\r\n <div class=\"row__main\">\r\n <!-- NOTE: 价格展示只在 申购出入库 才有 -->\r\n <c-input v-if=\"$route.query.showPrice == 1\" title=\"价格\" :maxlength=\"9\" :showWordLimit=\"false\"\r\n input-type=\"number\" v-model=\"item.price\" />\r\n <c-input title=\"数量\" :maxlength=\"5\" :showWordLimit=\"false\" input-type=\"digit\" v-model=\"item.stock\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- 规格示例 -->\r\n <div class=\"addbtn\" v-else @click=\"visibilityDialog = true\">\r\n <van-icon name=\"plus\" :size=\"18\" />\r\n 添加规格\r\n </div>\r\n </div>\r\n\r\n <van-dialog v-model=\"visibilityDialog\" title=\"添加/修改规格\" show-cancel-button confirm-button-color=\"#007aff\"\r\n @cancel=\"handleCancelEvent\" @confirm=\"handleConfirmEdit\" :before-close=\"handleBeforeCloseDialog\">\r\n <van-field v-model.trim=\"templateValue\" center input-align=\"center\" placeholder=\"蓝色,165cm\" />\r\n </van-dialog>\r\n\r\n <!-- btn -->\r\n <div class=\"btn-container\" v-if=\"goods_stock.length\">\r\n <div class=\"btn-span\" @click=\"handleSubmitStandars\">提交</div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport CInput from './components/CInput.vue'\r\nimport vueBus from '@/utils/vueBus'\r\n\r\n/**\r\n * @description 商品规格页面\r\n */\r\nexport default {\r\n name: 'GoodsSpeci',\r\n components: {\r\n CInput\r\n },\r\n computed: {\r\n // NOTE: (审批人 & 领用模块)判断当前用户是否能修改规格(新增、修改)\r\n isApproveM4() {\r\n const { role, type } = this.$route.query\r\n if (type == 4 && role === 'approve') return true\r\n return false\r\n },\r\n },\r\n data: () => ({\r\n templateValue: '',\r\n visibilityDialog: false,\r\n closeable: false,\r\n editIdx: -1,\r\n goods_stock: [], // {name, price, stock}\r\n }),\r\n created() {\r\n // NOTE: 携带规格更新\r\n this.__init__()\r\n },\r\n methods: {\r\n __init__() {\r\n // NOTE: 携带规格更新\r\n const { goods_stock } = this.$route.query\r\n const stocks = goods_stock ? JSON.parse(goods_stock) : []\r\n\r\n if (stocks.length) {\r\n this.goods_stock = [...stocks].map(item => {\r\n let temp = {\r\n ...item,\r\n stock: `${item.stock}`\r\n }\r\n\r\n // 数量\r\n if (item.stock) temp.stock = `${item.stock}`\r\n\r\n // 价格\r\n if (item.price) temp.price = `${item.price}`\r\n\r\n return temp\r\n }).reverse()\r\n }\r\n },\r\n\r\n // Remove all standars\r\n handleRemoveAll() {\r\n this.$dialog.confirm({\r\n message: '是否删除全部规格',\r\n confirmButtonColor: '#007aff',\r\n }).then(() => {\r\n this.goods_stock = []\r\n }).catch(() => { })\r\n },\r\n\r\n // Close signal\r\n handleClose(standar, idx) {\r\n this.$dialog.confirm({\r\n message: `是否删除规格 ${standar.name}`,\r\n confirmButtonColor: '#007aff',\r\n }).then(() => {\r\n this.goods_stock.splice(idx, 1)\r\n }).catch(() => { })\r\n },\r\n\r\n // Edit signal\r\n handleEdit(standar, idx) {\r\n if (standar.id) delete standar.id\r\n\r\n this.templateValue = standar.name\r\n this.visibilityDialog = true\r\n this.editIdx = idx\r\n },\r\n\r\n // Close dialog on before-close\r\n handleBeforeCloseDialog(action, done) {\r\n if (action === 'confirm' && !this.templateValue) return done(false)\r\n const isRepeat = this.goods_stock.some(stock => stock.name === this.templateValue)\r\n if (isRepeat) return done(false)\r\n return done()\r\n },\r\n\r\n handleCancelEvent() {\r\n this.visibilityDialog = false\r\n this.templateValue = ''\r\n this.editIdx = -1\r\n },\r\n // Confirm edit\r\n handleConfirmEdit() {\r\n const val = this.templateValue\r\n if (!val) return this.$toast('规格名称为空')\r\n const isRepeat = this.goods_stock.some(stock => stock.name === val)\r\n if (isRepeat) return this.$toast('规格名称重复!')\r\n\r\n if (this.editIdx >= 0) {\r\n this.goods_stock.splice(this.editIdx, 1, {\r\n ...this.goods_stock[this.editIdx],\r\n name: val\r\n })\r\n } else {\r\n this.goods_stock.unshift({\r\n name: val,\r\n price: '',\r\n stock: '',\r\n })\r\n }\r\n this.$nextTick(() => {\r\n this.visibilityDialog = false\r\n this.templateValue = ''\r\n this.editIdx = -1\r\n })\r\n },\r\n\r\n // submit data\r\n handleSubmitStandars() {\r\n const arrs = this.goods_stock\r\n let isExist = false\r\n const checkPrice = Boolean(this.$route.query.showPrice)\r\n // NOTE: 判断内容是否存在\r\n for (let i = 0; i < arrs.length; i++) {\r\n const { price, stock, name } = arrs[i];\r\n if (!stock || (checkPrice && !price)) {\r\n isExist = true\r\n let str = !stock ? '数量' : ''\r\n // 根据是否检查价格判断\r\n if (checkPrice) str = !price ? '价格' : ''\r\n this.$toast(`规则${name}的${str}为空,请填写`)\r\n break\r\n }\r\n }\r\n\r\n if (isExist) return\r\n\r\n vueBus.$emit('listenStrandarsEvent', [...arrs].reverse())\r\n\r\n this.$nextTick(() => {\r\n this.$router.go(-1)\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.specifications-container {\r\n height: 100vh;\r\n justify-content: space-between;\r\n\r\n .s-header {\r\n justify-content: space-between;\r\n background-color: #fff;\r\n font-size: 18px;\r\n padding: 10px;\r\n border-bottom: 1px solid #eee;\r\n\r\n .icons {\r\n letter-spacing: 8px;\r\n }\r\n }\r\n\r\n .s-btn {\r\n padding: 12px 0;\r\n text-align: center;\r\n font-size: 14px;\r\n color: #3290C4;\r\n }\r\n\r\n .s-context {\r\n flex-wrap: wrap;\r\n gap: 12px;\r\n padding: 18px 10px;\r\n background-color: #fff;\r\n }\r\n\r\n .main {\r\n height: 0;\r\n flex: 1;\r\n overflow: auto;\r\n\r\n .addbtn {\r\n width: 195px;\r\n height: 42px;\r\n line-height: 42px;\r\n text-align: center;\r\n background: #FFFFFF;\r\n border-radius: 21px;\r\n border: 1px solid #3290C4;\r\n font-size: 16px;\r\n font-weight: 500;\r\n color: #3290C4;\r\n margin: 80px auto;\r\n }\r\n\r\n .row {\r\n &__header {\r\n justify-content: space-between;\r\n padding: 0 10px;\r\n font-size: 14px;\r\n font-family: PingFangSC, PingFang SC;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 32px;\r\n }\r\n\r\n &__main {\r\n .layout-container {\r\n border-bottom: 1px solid #eee;\r\n\r\n &:last-child {\r\n border-bottom: initial;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods-specifications.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods-specifications.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./goods-specifications.vue?vue&type=template&id=62202a9b&scoped=true\"\nimport script from \"./goods-specifications.vue?vue&type=script&lang=js\"\nexport * from \"./goods-specifications.vue?vue&type=script&lang=js\"\nimport style0 from \"./goods-specifications.vue?vue&type=style&index=0&id=62202a9b&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62202a9b\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods.vue?vue&type=style&index=0&id=77e8c340&prod&lang=less&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form-sel.vue?vue&type=style&index=0&id=fc0477a8&prod&lang=less&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductStore.vue?vue&type=style&index=0&id=cf21eeae&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-store-container flex flex-col\"},[_c('div',{staticClass:\"product-store__header\"},[(_vm.type === '1')?_c('div',{staticClass:\"search-box\"},[_c('van-field',{attrs:{\"center\":\"\",\"placeholder\":\"搜索\",\"left-icon\":\"search\"},on:{\"click\":_vm.handleClickSearchBox},scopedSlots:_vm._u([{key:\"button\",fn:function(){return [_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.handleLaunchSearch}},[_vm._v(\"搜索\")])]},proxy:true}],null,false,1321573992),model:{value:(_vm.searchVal),callback:function ($$v) {_vm.searchVal=$$v},expression:\"searchVal\"}})],1):_vm._e(),_c('div',{staticClass:\"sub-title flex flex-row flex-row-aic flex-row-jcsp\"},[(_vm.type === '2')?_c('span',[_vm._v(\"请选择商品分类\")]):_c('span',[_vm._v(\"商品库\")]),_c('van-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.searchData.length),expression:\"searchData.length\"}],attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.handleResetSearch}},[_vm._v(\"重置搜索\")])],1)]),(_vm.searchData.length)?_c('div',{staticClass:\"product-store__main\"},_vm._l((_vm.searchData),function(good,idx){return _c('div',{key:idx,staticClass:\"search-row\",on:{\"click\":function($event){return _vm.handleSelectedGoods(good)}}},[_c('div',{staticClass:\"search-row__category\"},[_vm._v(\" \"+_vm._s(good.goods_category_first_en)+\"/\"+_vm._s(good.goods_category_en)+\" \")]),_c('div',{staticClass:\"search-row__title ellipsis\"},[_vm._v(_vm._s(good.goods_name))])])}),0):_c('div',{staticClass:\"product-store__main\"},[_c('van-radio-group',{model:{value:(_vm.radioCategory),callback:function ($$v) {_vm.radioCategory=$$v},expression:\"radioCategory\"}},_vm._l((_vm.categoryData),function(item,idx){return _c('div',{key:idx,staticClass:\"row\"},[_c('div',{staticClass:\"row__header row__header--b-line flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"row__header__content\"},[_vm._v(\" \"+_vm._s(item.name)+\" \")]),_c('div',{staticClass:\"row__header__more flex flex-row flex-row-aic\",on:{\"click\":function($event){return _vm.handleClickRow(item, idx)}}},[_c('van-icon',{attrs:{\"name\":\"cluster-o\",\"size\":26,\"color\":\"#3290C4\"}}),_c('span',{staticClass:\"txt\"},[_vm._v(\"下级\")])],1)]),(item.expand)?_c('div',{staticClass:\"row__main\"},_vm._l((item.childlist),function(second,idx2){return _c('div',{key:idx2,staticClass:\"row__second\"},[_c('div',{staticClass:\"row__second__header row__second__header--b-line flex flex-row flex-row-aic\",on:{\"click\":function($event){_vm.type === '1' ? _vm.handleClickSecondRow(second, idx2) : null}}},[(_vm.type === '2')?_c('div',{staticClass:\"radio-box\"},[_c('van-radio',{attrs:{\"name\":second.id}},[_vm._v(_vm._s(second.name))])],1):_c('div',{staticClass:\"row__second__header__content\"},[_vm._v(\" \"+_vm._s(second.name)+\" \")]),(_vm.type === '1')?_c('div',{staticClass:\"row__second__header__more\"},[(second.expand)?_c('van-icon',{attrs:{\"name\":\"arrow-up\",\"size\":24,\"color\":\"rgba(162, 163, 164, 1)\"}}):_c('van-icon',{attrs:{\"name\":\"arrow-down\",\"size\":24,\"color\":\"rgba(162, 163, 164, 1)\"}})],1):_vm._e()]),(second.expand)?[(second.queryed && !second.childlist.length)?_c('div',{staticClass:\"row__second__main\"},[_c('div',{staticClass:\"row__third-item flex flex-row flex-row-aic\"},[_c('span',{attrs:{\"id\":\"c1\"}},[_vm._v(\"当前分类下暂无商品\")])])]):_c('div',{staticClass:\"row__second__main\"},_vm._l((second.childlist),function(good,idx3){return _c('div',{key:idx3,staticClass:\"row__third-item flex flex-row flex-row-aic\",on:{\"click\":function($event){return _vm.handleSelectedGoods(good, idx3)}}},[_c('span',{attrs:{\"id\":\"c1\"}},[_vm._v(_vm._s(good.goods_name))])])}),0)]:_vm._e()],2)}),0):_vm._e()])}),0)],1),(_vm.type === '2')?_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmCategory}},[_vm._v(\"确定\")])]):_vm._e(),_c('van-popup',{staticClass:\"popup flex flex-col\",style:({ height: '60%' }),attrs:{\"position\":\"bottom\",\"closeable\":\"\",\"close-icon-position\":\"top-right\"},model:{value:(_vm.popupVisibility),callback:function ($$v) {_vm.popupVisibility=$$v},expression:\"popupVisibility\"}},[_c('div',{staticClass:\"popup__header\"},[(_vm.choosedStock)?_c('span',{staticClass:\"product__title\"},[_vm._v(_vm._s(_vm.choosedStock.goods_name))]):_vm._e(),_c('span',{staticClass:\"product__inventory\"},[_vm._v(_vm._s(_vm.leftStockComp))])]),_c('div',{staticClass:\"popup__main\"},[_vm._l((_vm.productData),function(item,idx){return [(item.type === 'total')?[_c('c-input',{key:idx,attrs:{\"title\":item.label,\"placeholder\":(\"请输入\" + (item.label)),\"maxlength\":5,\"showWordLimit\":false,\"input-type\":\"digit\"},model:{value:(item.val),callback:function ($$v) {_vm.$set(item, \"val\", $$v)},expression:\"item.val\"}})]:(item.type === 'price')?[_c('c-input',{key:idx,attrs:{\"title\":item.label,\"placeholder\":(\"请输入\" + (item.label)),\"maxlength\":5,\"showWordLimit\":false,\"input-type\":\"number\"},model:{value:(item.val),callback:function ($$v) {_vm.$set(item, \"val\", $$v)},expression:\"item.val\"}})]:[_c('div',{key:idx,staticClass:\"product__row\"},[_c('div',{staticClass:\"product__row__header\"},[_vm._v(\" \"+_vm._s(item.label)+\" \")]),_c('div',{staticClass:\"product__row__main\"},_vm._l((item.list),function(type,idx){return _c('span',{key:idx,class:{ 'selected': item.val == type.id },attrs:{\"data-id\":type.id},on:{\"click\":function($event){return _vm.handleClickItem(item, type)}}},[_vm._v(_vm._s(type.name))])}),0)])]]})],2),_c('div',{staticClass:\"popup__footer\"},[_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmInput}},[_vm._v(\"确认\")])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\r\n * @description 商品类接口\r\n */\r\nimport request from '@/utils/request'\r\n\r\n// 获取商品列表\r\n// data = { category_id: '' }\r\nexport const list = data => (request({\r\n method: \"POST\",\r\n url: \"goods/get_list\",\r\n data\r\n}))\r\n\r\n// 获取商品分类\r\nexport const category = () => (request({\r\n method: \"POST\",\r\n url: \"goodscategory/get_list\"\r\n}))","<template>\r\n <div class=\"product-store-container flex flex-col\">\r\n <div class=\"product-store__header\">\r\n <div class=\"search-box\" v-if=\"type === '1'\">\r\n <van-field v-model=\"searchVal\" center placeholder=\"搜索\" left-icon=\"search\" @click=\"handleClickSearchBox\">\r\n <template #button>\r\n <van-button size=\"small\" @click=\"handleLaunchSearch\" type=\"primary\">搜索</van-button>\r\n </template>\r\n </van-field>\r\n </div>\r\n <div class=\"sub-title flex flex-row flex-row-aic flex-row-jcsp\">\r\n <span v-if=\"type === '2'\">请选择商品分类</span>\r\n <span v-else>商品库</span>\r\n <van-button v-show=\"searchData.length\" size=\"small\" @click=\"handleResetSearch\" type=\"primary\">重置搜索</van-button>\r\n </div>\r\n </div>\r\n\r\n <!-- 展示内容 -->\r\n <div class=\"product-store__main\" v-if=\"searchData.length\">\r\n <div class=\"search-row\" v-for=\"(good, idx) in searchData\" :key=\"idx\" @click=\"handleSelectedGoods(good)\">\r\n <div class=\"search-row__category\">\r\n {{ good.goods_category_first_en }}/{{ good.goods_category_en }}\r\n </div>\r\n <div class=\"search-row__title ellipsis\">{{ good.goods_name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- 分类内容 -->\r\n <div class=\"product-store__main\" v-else>\r\n <van-radio-group v-model=\"radioCategory\">\r\n <div class=\"row\" v-for=\"(item, idx) in categoryData\" :key=\"idx\">\r\n <div class=\"row__header row__header--b-line flex flex-row flex-row-aic\">\r\n <div class=\"row__header__content\">\r\n {{ item.name }}\r\n </div>\r\n <div class=\"row__header__more flex flex-row flex-row-aic\" @click=\"handleClickRow(item, idx)\">\r\n <van-icon name=\"cluster-o\" :size=\"26\" color=\"#3290C4\" />\r\n <span class=\"txt\">下级</span>\r\n </div>\r\n </div>\r\n <div class=\"row__main\" v-if=\"item.expand\">\r\n <div class=\"row__second\" v-for=\"(second, idx2) in item.childlist\" :key=\"idx2\">\r\n <div class=\"row__second__header row__second__header--b-line flex flex-row flex-row-aic\"\r\n @click=\"type === '1' ? handleClickSecondRow(second, idx2) : null\">\r\n <!-- NOTE: Radio. 单选组件 -->\r\n <div class=\"radio-box\" v-if=\"type === '2'\">\r\n <van-radio :name=\"second.id\">{{ second.name }}</van-radio>\r\n </div>\r\n <div v-else class=\"row__second__header__content\">\r\n {{ second.name }}\r\n </div>\r\n\r\n <!-- NOTE: 只存在于选择商品 -->\r\n <div class=\"row__second__header__more\" v-if=\"type === '1'\">\r\n <van-icon v-if=\"second.expand\" name=\"arrow-up\" :size=\"24\" color=\"rgba(162, 163, 164, 1)\" />\r\n <van-icon v-else name=\"arrow-down\" :size=\"24\" color=\"rgba(162, 163, 164, 1)\" />\r\n </div>\r\n </div>\r\n <template v-if=\"second.expand\">\r\n <div class=\"row__second__main\" v-if=\"second.queryed && !second.childlist.length\">\r\n <div class=\"row__third-item flex flex-row flex-row-aic\">\r\n <span id=\"c1\">当前分类下暂无商品</span>\r\n </div>\r\n </div>\r\n <div class=\"row__second__main\" v-else>\r\n <div class=\"row__third-item flex flex-row flex-row-aic\" v-for=\"(good, idx3) in second.childlist\"\r\n :key=\"idx3\" @click=\"handleSelectedGoods(good, idx3)\">\r\n <span id=\"c1\">{{ good.goods_name }}</span>\r\n </div>\r\n </div>\r\n </template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </van-radio-group>\r\n </div>\r\n\r\n <!-- 提交 -->\r\n <div class=\"btn-container\" v-if=\"type === '2'\">\r\n <div class=\"btn-span\" @click=\"handleConfirmCategory\">确定</div>\r\n </div>\r\n\r\n <!-- Popup Wrapper -->\r\n <van-popup class=\"popup flex flex-col\" v-model=\"popupVisibility\" position=\"bottom\" :style=\"{ height: '60%' }\"\r\n closeable close-icon-position=\"top-right\">\r\n <div class=\"popup__header\">\r\n <span class=\"product__title\" v-if=\"choosedStock\">{{ choosedStock.goods_name }}</span>\r\n\r\n <span class=\"product__inventory\">{{ leftStockComp }}</span>\r\n </div>\r\n <div class=\"popup__main\">\r\n <template v-for=\"(item, idx) in productData\">\r\n <template v-if=\"item.type === 'total'\">\r\n <c-input :title=\"item.label\" :placeholder=\"`请输入${item.label}`\" :maxlength=\"5\" :showWordLimit=\"false\"\r\n input-type=\"digit\" v-model=\"item.val\" :key=\"idx\" />\r\n </template>\r\n <template v-else-if=\"item.type === 'price'\">\r\n <c-input :title=\"item.label\" :placeholder=\"`请输入${item.label}`\" :maxlength=\"5\" :showWordLimit=\"false\"\r\n input-type=\"number\" v-model=\"item.val\" :key=\"idx\" />\r\n </template>\r\n <template v-else>\r\n <div :key=\"idx\" class=\"product__row\">\r\n <div class=\"product__row__header\">\r\n {{ item.label }}\r\n </div>\r\n <div class=\"product__row__main\">\r\n <span v-for=\"(type, idx) in item.list\" :key=\"idx\" :data-id=\"type.id\"\r\n :class=\"{ 'selected': item.val == type.id }\" @click=\"handleClickItem(item, type)\">{{ type.name }}</span>\r\n </div>\r\n </div>\r\n </template>\r\n </template>\r\n </div>\r\n <div class=\"popup__footer\">\r\n <div class=\"btn-container\">\r\n <div class=\"btn-span\" @click=\"handleConfirmInput\">确认</div>\r\n </div>\r\n </div>\r\n </van-popup>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n@import url('@/styles/variables.less');\r\n\r\n.product-store {\r\n &-container {\r\n height: 100vh;\r\n justify-content: space-between;\r\n }\r\n\r\n &__header {\r\n padding: 10px 12px 0;\r\n background-color: @white;\r\n\r\n .search-box {\r\n .van-cell.van-field {\r\n background: rgba(118, 118, 128, 0.12);\r\n border-radius: 8px;\r\n }\r\n }\r\n\r\n .sub-title {\r\n font-size: @font-size-third;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 18px;\r\n padding: 10px 0;\r\n }\r\n\r\n .van-button--primary {\r\n background-color: @main-color;\r\n border: 1px solid @main-color;\r\n }\r\n }\r\n\r\n &__main {\r\n padding: 10px 0;\r\n height: 0;\r\n flex: 1;\r\n\r\n .row {\r\n margin-bottom: 10px;\r\n background-color: @white;\r\n\r\n &__header {\r\n padding: 10px 12px;\r\n justify-content: space-between;\r\n\r\n &--b-line {\r\n border-bottom: 1px solid #eee;\r\n }\r\n\r\n &__content {\r\n font-size: @font-size-secondery;\r\n }\r\n\r\n &__more {\r\n font-size: 16px;\r\n border-left: 1px solid rgba(151, 151, 151, 0.4);\r\n padding: 3px 10px 3px 20px;\r\n\r\n span.txt {\r\n padding-left: 6px;\r\n color: #3290c4;\r\n }\r\n }\r\n }\r\n\r\n &__main {\r\n padding-left: 36px;\r\n }\r\n\r\n &__second {\r\n &__header {\r\n padding: 10px 12px;\r\n justify-content: space-between;\r\n\r\n &--b-line {\r\n border-bottom: 1px solid #eee;\r\n }\r\n\r\n &__content {\r\n font-size: @font-size-secondery;\r\n }\r\n\r\n &__more {}\r\n\r\n /deep/.van-radio__label {\r\n font-size: 14px;\r\n }\r\n\r\n // .van-radio__icon--checked .van-icon\r\n /deep/.van-radio__icon--checked .van-icon {\r\n background-color: @main-color;\r\n border-color: @main-color;\r\n }\r\n }\r\n\r\n &__main {\r\n padding-left: 30px;\r\n }\r\n }\r\n\r\n &__third-item {\r\n padding: 10px 12px;\r\n font-size: @font-size-third;\r\n border-bottom: 1px solid #eee;\r\n\r\n &:last-child {\r\n border-bottom-color: transparent;\r\n }\r\n\r\n }\r\n }\r\n\r\n .search-row {\r\n padding: 10px 10px;\r\n background-color: #fff;\r\n\r\n &__category {\r\n font-size: 12px;\r\n color: #8d8c8c;\r\n margin-bottom: 8px;\r\n }\r\n\r\n &__title {\r\n font-size: 16px;\r\n }\r\n\r\n }\r\n }\r\n}\r\n\r\n.popup {\r\n justify-content: space-between;\r\n padding: 8px 0 0;\r\n box-sizing: border-box;\r\n\r\n &__header {\r\n margin: 0 12px;\r\n padding-right: 30px;\r\n padding-bottom: 10px;\r\n padding-top: 8px;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\r\n font-size: @font-size-common;\r\n }\r\n\r\n &__main {\r\n margin: 18px 0;\r\n height: 0;\r\n flex: 1;\r\n overflow: auto;\r\n\r\n .layout-container {\r\n padding-top: 12px;\r\n }\r\n }\r\n\r\n &__footer {\r\n position: relative;\r\n z-index: 9;\r\n border-top: 12px solid rgba(248, 248, 248, 1);\r\n box-shadow: 0 -2px 16px 1px rgba(0, 0, 0, 0.2);\r\n\r\n .btn-container {\r\n margin-top: initial;\r\n }\r\n }\r\n}\r\n\r\n.product {\r\n &__row {\r\n padding: 6px 12px 16px;\r\n\r\n &:nth-last-of-type(2) {\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\r\n }\r\n }\r\n\r\n &__title {\r\n font-size: 16px;\r\n font-weight: 500;\r\n color: #191A1E;\r\n }\r\n\r\n &__inventory {\r\n padding-left: 10px;\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #727273;\r\n vertical-align: bottom;\r\n }\r\n\r\n &__row {\r\n &__header {\r\n font-size: @font-size-common;\r\n padding: 8px 0 10px;\r\n color: #191A1E;\r\n }\r\n\r\n &__main {\r\n display: grid;\r\n grid-template-columns: repeat(2, 49%);\r\n column-gap: 2%;\r\n row-gap: 10px;\r\n\r\n span {\r\n display: inline-block;\r\n text-align: center;\r\n background: #EFF7FB;\r\n border-radius: 8px;\r\n font-size: @font-size-secondery;\r\n font-weight: 400;\r\n color: #727273;\r\n padding: 8px 0;\r\n transition-property: background-color, color;\r\n transition-duration: 0.2s;\r\n\r\n &.selected {\r\n background: #0a83d3;\r\n color: @white;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n/**\r\n * 商品库页面\r\n * @description 当前页面处理为多种展示格式。 \r\n * - 商品单选\r\n * - 分类选择\r\n */\r\n\r\nimport vueBus from '@/utils/vueBus';\r\nimport CInput from './components/CInput.vue';\r\n\r\nimport * as goodsApi from '@/api/goods'\r\n\r\nimport { settingNavigationRight } from '@/utils/dingtalk'\r\n\r\nexport default {\r\n name: \"ProductStore\",\r\n components: {\r\n CInput\r\n },\r\n computed: {\r\n leftStockComp() {\r\n if (!this.choosedStock) return ''\r\n const [{ val, list }] = this.productData\r\n let currentData = list.filter(item => item.id === val)\r\n if (currentData.length) {\r\n let len = currentData[0].stock\r\n return len > 0 ? `库存剩余:${len}件` : `暂无库存`\r\n } else return ''\r\n }\r\n },\r\n data: () => ({\r\n type: \"1\", // 页面状态。 默认1:商品选择。 可选项2:选择分类\r\n module: '', // 进入module不同时有些许差别\r\n radioCategory: '', // 二级分类Id\r\n searchVal: '', // 搜索商品?\r\n categoryData: [], // 分类数据\r\n // NOTE: Popup data and context data\r\n popupVisibility: false,\r\n productData: [], // 弹出选择商品的数量等。\r\n choosedStock: null,\r\n searchData: [], // 搜索数据存储列表\r\n }),\r\n\r\n created() {\r\n this.navigationSetting()\r\n this.__init__()\r\n },\r\n methods: {\r\n // NOTE: 设置Right标题隐藏\r\n navigationSetting() {\r\n settingNavigationRight({\r\n show: false\r\n })\r\n },\r\n async __init__() {\r\n try {\r\n let query = this.$route.query\r\n if (query) {\r\n // type = 1 // 页面类型。1 => 选择商品。 2 => 选择分类\r\n if (query.type) this.type = query.type\r\n\r\n // 申请的`module`\r\n if (query.module) {\r\n this.module = query.module\r\n }\r\n }\r\n await this.__queryCategoay__() // initalization query categray\r\n } catch (error) {\r\n console.log('ProductStore __init__ error', error);\r\n }\r\n },\r\n\r\n handleClickSearchBox() { },\r\n\r\n // 点击一级\r\n handleClickRow(row) {\r\n row.expand = !row.expand\r\n this.$forceUpdate()\r\n },\r\n\r\n // 点击二级\r\n async handleClickSecondRow(row) {\r\n const toastInstance = this.$toast({\r\n type: 'loading',\r\n message: '加载数据中',\r\n duration: 0\r\n })\r\n try {\r\n if (!row.expand && !row.childlist) { // NOTE: 只有打开时&无子级别查询\r\n const list = await this.__queryStoreData__(row.id)\r\n row.childlist = [...list]\r\n }\r\n row.expand = !row.expand\r\n row.queryed = true\r\n this.$forceUpdate()\r\n } catch (error) {\r\n this.$toast(error.message)\r\n } finally {\r\n toastInstance.clear()\r\n }\r\n },\r\n\r\n // 选择类型\r\n handleClickItem(row, item) {\r\n row.val = item.id\r\n },\r\n\r\n // NOTE: popup confirm 确认数据正常\r\n handleConfirmInput() {\r\n try {\r\n let _list = this.productData\r\n let isAllInput = _list.every(item => item.val)\r\n if (!isAllInput) return this.$toast('检查填写情况')\r\n\r\n const [choosedGoodsId, customCount, GoodsPrice] = _list.map(item => item.val)\r\n\r\n // 选中的类别对象\r\n let choosedGoodsS = _list[0].list.filter(item => item.id === choosedGoodsId)[0]\r\n let ChoosedGoodsStock = 0\r\n if (choosedGoodsS) {\r\n ChoosedGoodsStock = choosedGoodsS.stock\r\n }\r\n\r\n // 判断输入的数量是否大于库存\r\n if (customCount <= 0) {\r\n return this.$toast('物品数量最少1件')\r\n }\r\n\r\n if (![1, 3].includes(Number(this.module)) && customCount > ChoosedGoodsStock) {\r\n return this.$toast('当前商品规格数量不足')\r\n }\r\n\r\n if (GoodsPrice <= 0) {\r\n return this.$toast('当前商品价格不对')\r\n }\r\n\r\n // if (this.type === '1') {}\r\n vueBus.$emit('updateProductList', {\r\n item: this.choosedStock,\r\n goodsStock: choosedGoodsS,\r\n customCount,\r\n GoodsPrice\r\n })\r\n this.$router.go(-1);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n\r\n // NOTE: 选中商品进行业务\r\n handleSelectedGoods(item) {\r\n const { goods_stock } = item\r\n this.choosedStock = item\r\n let temporaryData = [\r\n {\r\n label: '规格',\r\n val: '',\r\n list: goods_stock\r\n },\r\n {\r\n label: '物品数量',\r\n type: 'total',\r\n val: ''\r\n }\r\n ]\r\n\r\n // 申购明细时需要物品单价\r\n if (['1'].includes(this.module)) {\r\n temporaryData.push({\r\n label: '物品单价',\r\n type: 'price',\r\n val: ''\r\n })\r\n }\r\n\r\n this.productData = temporaryData\r\n this.popupVisibility = true\r\n },\r\n\r\n // NOTE: 查询分类数据\r\n __queryCategoay__() {\r\n return new Promise((resolve, reject) => {\r\n goodsApi.category().then(result => {\r\n if (result.code === 1) {\r\n this.categoryData = result.data\r\n resolve()\r\n } else {\r\n reject()\r\n }\r\n }).catch(error => {\r\n console.log('%c error >>>', 'background: blue; color: #fff', error);\r\n reject()\r\n })\r\n })\r\n },\r\n\r\n // NOTE: 查询商品数据\r\n // @returns [] | throw error\r\n __queryStoreData__(category_id) {\r\n return new Promise((resolve, reject) => {\r\n goodsApi.list({\r\n category_id\r\n }).then(result => {\r\n if (result.code === 1) {\r\n resolve(result.data || [])\r\n }\r\n }).catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // NOTE: 确定选择的分类\r\n handleConfirmCategory() {\r\n let selId = this.radioCategory\r\n let arrs = this.categoryData\r\n for (let i = 0; i < arrs.length; i++) {\r\n const row = arrs[i];\r\n const childlist = row.childlist\r\n for (let j = 0; j < childlist.length; j++) {\r\n const item = childlist[j];\r\n if (selId === item.id) {\r\n let first = { ...row }\r\n delete first.childlist\r\n delete first.expand\r\n vueBus.$emit('listenCategoryEvent', {\r\n first,\r\n second: { ...item }\r\n })\r\n break\r\n } else continue\r\n }\r\n }\r\n this.$router.go(-1)\r\n },\r\n\r\n // NOTE: 根据id展示分类名称\r\n __category_en__(good) {\r\n const { goods_category_first, goods_category_id } = good\r\n const temporary = {\r\n goods_category_first_en: '',\r\n goods_category_en: ''\r\n }\r\n\r\n let arrs = this.categoryData\r\n for (let i = 0; i < arrs.length; i++) {\r\n const firs = arrs[i];\r\n if (firs.id === goods_category_first) {\r\n for (let j = 0; j < firs.childlist.length; j++) {\r\n const itm = firs.childlist[j];\r\n if (itm.id === goods_category_id) {\r\n temporary.goods_category_first_en = firs.name\r\n temporary.goods_category_en = itm.name\r\n break\r\n } else continue\r\n }\r\n } else continue\r\n }\r\n\r\n return temporary\r\n },\r\n // NOTE: Search Event\r\n async handleLaunchSearch() {\r\n let keyword = this.searchVal\r\n if (!keyword) return\r\n const toastInstance = this.$toast({\r\n type: 'loading',\r\n message: '搜索中...',\r\n duration: 0\r\n })\r\n try {\r\n const result = await goodsApi.list({\r\n search: keyword\r\n })\r\n if (result.code === 1) {\r\n if (result.data.length) {\r\n this.searchData = result.data.map(good => ({\r\n ...good,\r\n ...this.__category_en__(good)\r\n }))\r\n toastInstance.clear()\r\n } else {\r\n toastInstance.clear()\r\n this.$toast(`暂无与${keyword}相关商品`)\r\n }\r\n }\r\n } catch (error) {\r\n toastInstance.clear()\r\n console.log('%c handleLaunchSearchError >>>', 'background: blue; color: #fff', error);\r\n }\r\n },\r\n\r\n // Reset search\r\n handleResetSearch() {\r\n this.searchData = []\r\n this.searchVal = ''\r\n },\r\n },\r\n\r\n watch: {\r\n radio(val) {\r\n console.log('%c radio value watch? >>>', 'background: blue; color: #fff', val);\r\n\r\n }\r\n }\r\n\r\n}\r\n</script>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductStore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductStore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductStore.vue?vue&type=template&id=cf21eeae&scoped=true\"\nimport script from \"./ProductStore.vue?vue&type=script&lang=js\"\nexport * from \"./ProductStore.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductStore.vue?vue&type=style&index=0&id=cf21eeae&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf21eeae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":_vm.$attrs.title,\"required\":_vm.$attrs.required}},[_c('div',{staticClass:\"custom-input-container flex flex-row flex-row-aic\"},[_c('van-field',{staticClass:\"input-padding\",attrs:{\"value\":_vm.value,\"type\":_vm.inputType,\"placeholder\":_vm.$attrs.placeholder || '请输入',\"clearable\":\"\",\"maxlength\":_vm.$attrs.maxlength || undefined,\"show-word-limit\":typeof _vm.$attrs.showWordLimit === 'undefined' ? true : _vm.$attrs.showWordLimit,\"rows\":\"3\",\"autosize\":\"\",\"readonly\":_vm.$attrs.readonly || false,\"disabled\":_vm.$attrs.disabled},on:{\"input\":function (value) { return _vm.$emit('input', value); },\"clear\":function () { return _vm.$emit('input', ''); }}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <layout :title=\"$attrs.title\" :required=\"$attrs.required\">\r\n <div class=\"custom-input-container flex flex-row flex-row-aic\">\r\n <van-field class=\"input-padding\" :value=\"value\" :type=\"inputType\" :placeholder=\"$attrs.placeholder || '请输入'\"\r\n @input=\"value => $emit('input', value)\" @clear=\"() => $emit('input', '')\" clearable\r\n :maxlength=\"$attrs.maxlength || undefined\"\r\n :show-word-limit=\"typeof $attrs.showWordLimit === 'undefined' ? true : $attrs.showWordLimit\" rows=\"3\"\r\n autosize :readonly=\"$attrs.readonly || false\" :disabled=\"$attrs.disabled\" />\r\n </div>\r\n </layout>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n.custom-input {\r\n &-container {\r\n .input-padding {\r\n padding: 3px 0;\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nimport Layout from './Layout.vue';\r\nexport default {\r\n name: 'CInput',\r\n components: {\r\n Layout\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: ''\r\n },\r\n inputType: {\r\n type: String,\r\n default: 'text'\r\n }\r\n }\r\n}\r\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CInput.vue?vue&type=template&id=63f8111c&scoped=true\"\nimport script from \"./CInput.vue?vue&type=script&lang=js\"\nexport * from \"./CInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./CInput.vue?vue&type=style&index=0&id=63f8111c&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63f8111c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layout-container\"},[_c('div',{staticClass:\"layout__title\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.required)?_c('span',{staticClass:\"require\"},[_vm._v(\"*\")]):_vm._e()]),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"layout-container\">\r\n <div class=\"layout__title\">\r\n <span class=\"title\">{{ title }}</span>\r\n <span v-if=\"required\" class=\"require\">*</span>\r\n </div>\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n.layout {\r\n &-container {\r\n padding: 9px 12px;\r\n background: #fff;\r\n .title,\r\n .require {\r\n font-size: 14px;\r\n font-weight: 400;\r\n }\r\n .title {\r\n color: #191A1E;\r\n line-height: 20px;\r\n margin-bottom: 5px;\r\n }\r\n .require {\r\n color: #F45642;\r\n line-height: 20px;\r\n margin-left: 2px;\r\n }\r\n }\r\n &__title {\r\n font-size: 14px;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n props: {\r\n title: {\r\n type: String,\r\n default: '默认文案'\r\n },\r\n required: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=853cdbd0&scoped=true\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\nimport style0 from \"./Layout.vue?vue&type=style&index=0&id=853cdbd0&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"853cdbd0\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./goods-specifications.vue?vue&type=style&index=0&id=62202a9b&prod&lang=less&scoped=true\"","/**\r\n * @description vue bus\r\n */\r\nimport Vue from 'vue'\r\nconst vueBus = new Vue()\r\nexport default vueBus","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form.vue?vue&type=style&index=0&id=358617b7&prod&lang=less&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=style&index=0&id=779f15c0&prod&lang=less&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&id=853cdbd0&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"approval-container flex flex-col flex-col-jcsp\"},[_c('div',{staticClass:\"approval__header\"},[_c('div',{staticClass:\"tits flex flex-row flex-row-aic flex-row-jcsp\"},[_c('span',[_vm._v(\"入库明细\")]),_c('span',{staticClass:\"btn\",on:{\"click\":function($event){_vm.isEdit = !_vm.isEdit}}},[_vm._v(_vm._s(_vm.isEdit ? '完成' : '编辑'))])]),_c('div',{staticClass:\"line\"})]),_c('div',{staticClass:\"approval__content\"},[_vm._l((_vm.list),function(item,idx){return [_vm._l((item.apply_goods),function(goods,goodIndex){return [_vm._l((goods.goods_stock),function(categor,index){return [_c('div',{key:(idx + \"-\" + goodIndex + \"-\" + index),staticClass:\"item flex flex-col\"},[_c('div',{staticClass:\"item__header flex flex-row flex-row-aic flex-row-jcsp\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(goods.goods_name))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isEdit),expression:\"isEdit\"}],staticClass:\"remove\"},[_c('span',{on:{\"click\":function($event){return _vm.handleRemoveRow(item, goods, categor, idx, goodIndex, index)}}},[_vm._v(\"删除\")])])]),_c('div',{staticClass:\"item__main flex flex-row flex-row-aic flex-row-jcsp\"},[_c('span',{staticClass:\"categor\"},[_vm._v(_vm._s(categor.name))]),(_vm.isEdit)?_c('van-stepper',{attrs:{\"min\":1},model:{value:(categor.stock),callback:function ($$v) {_vm.$set(categor, \"stock\", $$v)},expression:\"categor.stock\"}}):_c('div',{staticClass:\"count\"},[_vm._v(\"x \"+_vm._s(categor.stock))])],1)])]})]})]})],2),_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmForm}},[_vm._v(\"确定\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"approval-container flex flex-col flex-col-jcsp\">\r\n <div class=\"approval__header\">\r\n <div class=\"tits flex flex-row flex-row-aic flex-row-jcsp\">\r\n <span>入库明细</span>\r\n <span class=\"btn\" @click=\"isEdit = !isEdit\">{{ isEdit ? '完成' : '编辑' }}</span>\r\n </div>\r\n <div class=\"line\"></div>\r\n </div>\r\n <div class=\"approval__content\">\r\n <template v-for=\"(item, idx) in list\">\r\n <template v-for=\"(goods, goodIndex) in item.apply_goods\">\r\n <template v-for=\"(categor, index) in goods.goods_stock\">\r\n <div class=\"item flex flex-col\" :key=\"`${idx}-${goodIndex}-${index}`\">\r\n <div class=\"item__header flex flex-row flex-row-aic flex-row-jcsp\">\r\n <div class=\"title\">{{ goods.goods_name }}</div>\r\n <!-- 删除当前分类商品 -->\r\n <div v-show=\"isEdit\" class=\"remove\">\r\n <span @click=\"handleRemoveRow(item, goods, categor, idx, goodIndex, index)\">删除</span>\r\n </div>\r\n </div>\r\n <div class=\"item__main flex flex-row flex-row-aic flex-row-jcsp\">\r\n <span class=\"categor\">{{ categor.name }}</span>\r\n <van-stepper v-if=\"isEdit\" v-model=\"categor.stock\" :min=\"1\" />\r\n <div v-else class=\"count\">x {{ categor.stock }}</div>\r\n </div>\r\n </div>\r\n </template>\r\n </template>\r\n </template>\r\n\r\n </div>\r\n <div class=\"btn-container\">\r\n <div class=\"btn-span\" @click=\"handleConfirmForm\">确定</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport { SAVE_APPROVAL_NAME } from '@/utils/constant'\r\nimport vueBus from '@/utils/vueBus';\r\nimport { settingNavigationRight } from '@/utils/dingtalk'\r\n\r\nexport default {\r\n name: 'CApprovalFormSel',\r\n data: () => ({\r\n isEdit: false, // 编辑状态\r\n list: [],\r\n showEmpty: false,\r\n listLoading: false,\r\n finished: false,\r\n finishedText: '暂无更多数据了',\r\n pagination: {\r\n page: 1,\r\n page_num: 20\r\n },\r\n isSelectedAll: false,\r\n }),\r\n created() {\r\n this.navigationSetting()\r\n this.__list__()\r\n },\r\n methods: {\r\n // NOTE: 设置Right标题隐藏\r\n navigationSetting() {\r\n settingNavigationRight({\r\n show: false\r\n })\r\n },\r\n __list__() {\r\n try {\r\n const arrs = localStorage.getItem(SAVE_APPROVAL_NAME)\r\n\r\n if (arrs) {\r\n let list = JSON.parse(arrs)\r\n list = list.map(item => ({\r\n ...item,\r\n apply_goods: item.apply_goods.map(stock => ({\r\n ...stock,\r\n goods_stock: JSON.parse(stock.goods_stock)\r\n }))\r\n }))\r\n\r\n this.list = list\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n this.$toast('请选择采购单!')\r\n }\r\n },\r\n\r\n // 删除行数据\r\n handleRemoveRow(item, goods, stock, idx, goodsIndex, index) {\r\n this.$dialog.confirm({\r\n message: `是否删除商品“${goods.goods_name}-${stock.name}”`,\r\n confirmButtonText: '确定',\r\n confirmButtonColor: 'rgba(0, 122, 255, 1)',\r\n }).then(() => {\r\n goods.goods_stock.splice(index, 1)\r\n this.$forceUpdate()\r\n })\r\n },\r\n\r\n // 确定入库明细\r\n handleConfirmForm() {\r\n this.isEdit = false\r\n vueBus.$emit('listenApprovalFormList', this.list)\r\n this.$router.go(-2)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.approval {\r\n &-container {\r\n // padding: 10px 10px 0;\r\n padding-top: 10px;\r\n height: 100vh;\r\n box-sizing: border-box;\r\n }\r\n\r\n &__header {\r\n font-size: 16px;\r\n padding: 14px 12px;\r\n background-color: #fff;\r\n\r\n .tits {\r\n padding-bottom: 16px;\r\n\r\n .btn {\r\n color: rgba(50, 144, 196, 1);\r\n }\r\n }\r\n\r\n span {\r\n margin-left: 10px;\r\n }\r\n\r\n .line {\r\n height: 1px;\r\n background-color: rgba(151, 151, 151, 0.3);\r\n\r\n }\r\n }\r\n\r\n &__content {\r\n height: 0;\r\n flex: 1;\r\n background-color: #fff;\r\n overflow: auto;\r\n\r\n .item {\r\n padding: 5px 10px;\r\n font-size: 14px;\r\n\r\n &:last-child {\r\n .item__main {\r\n padding-bottom: 0;\r\n border-bottom: initial;\r\n }\r\n }\r\n\r\n &__header {\r\n\r\n font-size: 16px;\r\n line-height: 38px;\r\n\r\n .remove {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #F45642;\r\n }\r\n }\r\n\r\n &__main {\r\n padding-bottom: 12px;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.2);\r\n\r\n .category,\r\n .count {\r\n font-size: 16px;\r\n font-weight: 400;\r\n color: #727273;\r\n }\r\n\r\n .count {\r\n font-size: 14px;\r\n }\r\n\r\n /deep/.van-stepper {\r\n border: 1px solid rgba(151, 151, 151, 1);\r\n border-radius: 4px;\r\n\r\n .van-stepper__input,\r\n .van-stepper__minus,\r\n .van-stepper__plus {\r\n background-color: transparent !important;\r\n }\r\n\r\n .van-stepper__minus {\r\n border-right: 1px solid rgba(151, 151, 151, 1);\r\n }\r\n\r\n .van-stepper__plus {\r\n border-left: 1px solid rgba(151, 151, 151, 1);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form-sel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./approval-form-sel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./approval-form-sel.vue?vue&type=template&id=fc0477a8&scoped=true\"\nimport script from \"./approval-form-sel.vue?vue&type=script&lang=js\"\nexport * from \"./approval-form-sel.vue?vue&type=script&lang=js\"\nimport style0 from \"./approval-form-sel.vue?vue&type=style&index=0&id=fc0477a8&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc0477a8\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}