index.e58c13ce.js.map 332 KB

1
  1. {"version":3,"sources":["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/CSwitch.vue?4da3","webpack:///./src/views/applyfor/index.vue?706d","webpack:///./src/views/applyfor/components/IndexType1.vue?3991","webpack:///./src/views/applyfor/components/CFlowPath.vue?f663","webpack:///src/views/applyfor/components/CFlowPath.vue","webpack:///./src/views/applyfor/components/CFlowPath.vue?f5d8","webpack:///./src/views/applyfor/components/CFlowPath.vue","webpack:///./src/views/applyfor/components/CDate.vue?fdf5","webpack:///src/views/applyfor/components/CDate.vue","webpack:///./src/views/applyfor/components/CDate.vue?c1ed","webpack:///./src/views/applyfor/components/CDate.vue","webpack:///./src/views/applyfor/components/CSwitch.vue?dacd","webpack:///src/views/applyfor/components/CSwitch.vue","webpack:///./src/views/applyfor/components/CSwitch.vue?2442","webpack:///./src/views/applyfor/components/CSwitch.vue","webpack:///./src/views/applyfor/js/IndexComponentsMixins.js","webpack:///./src/api/approveflow.js","webpack:///./src/views/applyfor/indexMixins.js","webpack:///./src/views/applyfor/components/CProductStore.vue?a914","webpack:///src/views/applyfor/components/CProductStore.vue","webpack:///./src/views/applyfor/components/CProductStore.vue?d9fe","webpack:///./src/views/applyfor/components/CProductStore.vue","webpack:///src/views/applyfor/components/IndexType1.vue","webpack:///./src/views/applyfor/components/IndexType1.vue?fade","webpack:///./src/views/applyfor/components/IndexType1.vue","webpack:///./src/views/applyfor/components/IndexType2.vue?508a","webpack:///src/views/applyfor/components/IndexType2.vue","webpack:///./src/views/applyfor/components/IndexType2.vue?36cf","webpack:///./src/views/applyfor/components/IndexType2.vue","webpack:///./src/views/applyfor/components/IndexType3.vue?683a","webpack:///src/views/applyfor/components/IndexType3.vue","webpack:///./src/views/applyfor/components/IndexType3.vue?3417","webpack:///./src/views/applyfor/components/IndexType3.vue","webpack:///./src/views/applyfor/components/IndexType4.vue?91e9","webpack:///src/views/applyfor/components/IndexType4.vue","webpack:///./src/views/applyfor/components/IndexType4.vue?f6f3","webpack:///./src/views/applyfor/components/IndexType4.vue","webpack:///./src/views/applyfor/components/IndexType5.vue?67d7","webpack:///./src/views/applyfor/components/Peers.vue?9846","webpack:///src/views/applyfor/components/Peers.vue","webpack:///./src/views/applyfor/components/Peers.vue?b673","webpack:///./src/views/applyfor/components/Peers.vue","webpack:///src/views/applyfor/components/IndexType5.vue","webpack:///./src/views/applyfor/components/IndexType5.vue?2548","webpack:///./src/views/applyfor/components/IndexType5.vue","webpack:///./src/views/applyfor/components/IndexType6.vue?ec6a","webpack:///src/views/applyfor/components/IndexType6.vue","webpack:///./src/views/applyfor/components/IndexType6.vue?2831","webpack:///./src/views/applyfor/components/IndexType6.vue","webpack:///./src/views/applyfor/components/IndexType7.vue?3ef5","webpack:///src/views/applyfor/components/IndexType7.vue","webpack:///./src/views/applyfor/components/IndexType7.vue?33b7","webpack:///./src/views/applyfor/components/IndexType7.vue","webpack:///./src/views/applyfor/components/IndexType8.vue?4e31","webpack:///src/views/applyfor/components/IndexType8.vue","webpack:///./src/views/applyfor/components/IndexType8.vue?4b99","webpack:///./src/views/applyfor/components/IndexType8.vue","webpack:///./src/views/applyfor/components/IndexType9.vue?bdce","webpack:///src/views/applyfor/components/IndexType9.vue","webpack:///./src/views/applyfor/components/IndexType9.vue?a6af","webpack:///./src/views/applyfor/components/IndexType9.vue","webpack:///./src/views/applyfor/components/IndexType10.vue?4cb9","webpack:///src/views/applyfor/components/IndexType10.vue","webpack:///./src/views/applyfor/components/IndexType10.vue?638a","webpack:///./src/views/applyfor/components/IndexType10.vue","webpack:///./src/views/applyfor/components/IndexType11.vue?e180","webpack:///src/views/applyfor/components/IndexType11.vue","webpack:///./src/views/applyfor/components/IndexType11.vue?3523","webpack:///./src/views/applyfor/components/IndexType11.vue","webpack:///src/views/applyfor/index.vue","webpack:///./src/views/applyfor/index.vue?5c68","webpack:///./src/views/applyfor/index.vue","webpack:///./src/views/applyfor/components/Peers.vue?e847","webpack:///./src/views/applyfor/components/CProductStore.vue?2b86","webpack:///./src/views/apply-state/index.vue?cc14","webpack:///src/views/apply-state/index.vue","webpack:///./src/views/apply-state/index.vue?286c","webpack:///./src/views/apply-state/index.vue","webpack:///./src/views/applyfor/components/CDate.vue?e4f8","webpack:///./src/views/applyfor/index.vue?6bd7","webpack:///./src/views/apply-state/index.vue?ba3b","webpack:///./src/views/applyfor/components/CFlowPath.vue?6fdb","webpack:///./src/utils/vueBus.js","webpack:///./src/views/applyfor/peersOutForm.vue?059b","webpack:///./src/views/applyfor/components/CSelectImitate.vue?8fe8","webpack:///./src/views/applyfor/peersOutForm.vue?00a6","webpack:///src/views/applyfor/peersOutForm.vue","webpack:///./src/views/applyfor/peersOutForm.vue?f215","webpack:///./src/views/applyfor/peersOutForm.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","$attrs","title","required","staticClass","on","$event","$emit","_v","_s","value","placeholder","hideRemove","_e","staticRenderFns","name","components","Layout","props","type","String","default","Boolean","component","renderComponent","ref","tag","flag","editId","editData","handleSubmitData","model","callback","$$v","reason","expression","applyTypeList","apply_goods","total_amount","start_time","document","images","applyPayTypeList","pay_type","approvePeople","copyPeople","isCopy","approveTxt","approveSelList","_l","personal","idx","key","avatar","_f","length","copySelList","isAllowCopy","sendTxt","showMoreCopy","copySelListCompu","handleOpenContactsCopy","style","height","handleRemoveSignal","computed","list","arrs","slice","approve","Array","copy","Number","data","methods","result","dingtalkComplexPicker","multiple","maxUsers","limitTips","pickedUsers","map","user","userid","responseUserOnly","startWithDepartmentId","deptId","showLabelPick","users","forEach","push","emplId","person","splice","__render_a__","isArray","__render_c__","watch","handler","deep","show","selectVal","handleRemoveVal","class","swt","dateShow","rangeShow","handleConfirmBtn","directives","rawName","calenderDefaultVal","onConfirmDateVal","hasAm","rangeTimeList","defaultAmPickerIdx","handlePickerChange","timeVal","rendeMinHours","handleDateTimePickerChange","dateVal","formatTime","rangeTime","minHour","Date","date","reset","event","val","picker","hours","minus","getValues","$refs","vanPickerRef","confirm","$nextTick","selval","formatBaseDateTime","error","console","log","bool","vals","time","split","isM","includes","immediate","activeValue","inactiveValue","CSelect","CInput","CFiles","CFlowPath","CDate","CSwitch","CSelectImitate","getApproveFlowPath","formData","request","method","url","mixins","indexComponentsMixins","Object","validator","undefined","created","platform","navigationSetting","activated","handleSetRightTitle","settingNavigationTitle","pageTitle","handleNavRightBack","$router","query","module","settingNavigationRight","control","text","pageRightTitle","options","params","ALLOW_MODULES","flow_item","res","code","approve_user","copy_user","is_copy","e","__validtor__","mapTxt","requiredKey","requiredKeyLength","hasEmpty","hasKey","i","getStringTye","isNaN","customToast","hEmpty","hKey","toastContext","$toast","__jump2apply_state__","$store","commit","replace","handleFormatEditData","disabled","handleAddGoods","productStoreActionsheetVisibility","handleGoPStore","showMore","item","goods_name","handleUpdateRow","handleRemoveRow","goodsStock","price","stock","goods_stock","showEmptyTxt","actions","handleSelectSheet","handleDownloadHelp","slot","excelSuffix","handleInputFileChange","t","typeof","needShowPrice","showList","renderInfoList","join","color","vueBus","$on","handleUpdateList","handleAddOrUpdateData","mounted","handleUpdateValues","JSON","parse","hasGoodsId","goods_id","findIndex","goods","__id__","customCount","GoodsPrice","isHasGoods","some","id","hasGoodsStock","standard","_idx","$forceUpdate","_template_","goods_category_first","goods_category_id","goods_no","goods_brand","action","handleDownloadTemplate","importTemlate","click","getImportTemplate","downloadFileUseATarget","files","target","file","handleImportFile","fileHref","upload","postImportFile","error_data","apply_goods_data","handleTipsImport","errs","$dialog","message","msg","confirmButtonText","confirmButtonColor","cancelButtonText","catch","article","flagtxt","$route","edit","stringify","filters","sumPrice","sum","reduce","accumulator","cur","$listeners","beforeDestroy","$off","indexMixin","CProductStore","degreeList","state","enum","way","getCommonFlowPathData","IS_EDIT","approve_id","mif","module_info","images_text","img","getStaticLinkInfo","document_text","doc","fullurl","size","productStoreRef","imageRef","documentRef","__format_data__","bol","validate","__post__","templateObj","image","documents","postCreateInfo","go","currentItem","offerList","word_size","desc","number","remark","offerTypeList","fileRef","selOrd_text","handleClickSelOrdRow","handleCloseSelOrd","stock_goods","selOrd_arrs","apply_id","handleApprovalFormList","now","cproductstoreRef","__flag_x__","__flag_id__","apply","order_no","sel","selOldIds","order","tempStockGoods","good","__about_selarrs__","targetArrs","targetIds","stockGoodsIds","filter","xmIds","Set","xmId","oldArrs","use_goods","apply_user_name","isApprove","handleEditApplyofUser","handleRemoveApplyUser","peer_user","end_time","getEvectionTypeList","awayArr","is_who","handleAddPeerData","peerList","InsideOutMap","xtype","handleShowMore","isShowMore","handleActionSheetSelected","actionSheetVisibility","peersListCom","require","bus","__listenChangePeersEvent__","renderValue","__handle_out_peers","temps","__handle_in_press__","row","isUpdate","_Dialog","then","fIdx","hasEmpIdIdx","filterDepText","selectDeptName","Peers","mapState","mapGetters","formType","evectionTypeList","apply_user_id","init","token","userinfo","peerUser","apply_user","user_id","errorMessage","oldv","askForleaveTypeList","start_am","end_am","asktype","handleGetAskLeaveTykpe","amOrPm","__sum_days__","start","end","day","am","eday","eam","snow","enow","differV","getTime","dayLen","checkTimeAndGetFlow","label","timeList","timeItem","cFlowPathRef","sd","ed","sdt","edt","cdateEndTimeRef","reach_address","end_address","getMaintainText","maintainTypeList","imageM8Ref","getContractTypeList","contractTypeList","apply_order_no","scope","legal_opinion","founder","serial_number","degree","department","handleChooseDepartments","handleRemoveDepartment","department_sign","department_id","department_sign_id","keyword","dingtalkDepartmentsPicker","maxDepartments","pickedDepartments","departments","beforeRouteEnter","to","from","next","store","beforeRouteLeave","path","IndexType1","IndexType2","IndexType3","IndexType4","IndexType5","IndexType6","IndexType7","IndexType8","IndexType9","IndexType10","IndexType11","TYPE","isEdit","__detail__","func","approveInfoApi","approveApi","paramsId","rendeRef","handleTabBeforeChangeEvnet","tabVal","tab","handleClickSearchBox","searchVal","hasFilter","popupVisibility","finished","finishedText","onLoadData","listLoading","rendeTitleCom","apply_date","__rows_item__","approve_one","status","handleGoInfo","handleClosePopup","timeStart","handleClickTimeStart","timeEnd","handleClickTimeEnd","handleSubmitFilter","minDate","maxDate","nameText","ApproveItem","ChooseTime","welcomeTxt","getters","MODULE_ENUM","tabs","pagination","page","page_num","showEmpty","tableData","handleNavigationRight","tit","setMonth","getMonth","nowMax","THAT","group","getRecordList","formatApproveItemRow","concat","__record_list__","chooseTimeRef","openChooseTime","dayjs","format","handleTouchThatType","typeVal","flagState","handleSwitchFilterBox","startTime","endTime","Vue","handleConfirmSub"],"mappings":"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","file":"js/index.e58c13ce.js","sourcesContent":["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!./CSwitch.vue?vue&type=style&index=0&id=8ef9abca&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:\"apply-for-container\"},[_c(_vm.renderComponent,{ref:\"rendeRef\",tag:\"component\",attrs:{\"flag\":_vm.flag,\"editId\":_vm.editId,\"edit-data\":_vm.editData}}),_c('div',{staticClass:\"btnbox\"},[_c('div',{staticClass:\"btn\",on:{\"click\":_vm.handleSubmitData}},[_vm._v(_vm._s(_vm.flag === 'approve' ? '更新内容' : '提交'))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"申请事由\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":800},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-select',{attrs:{\"title\":\"采购类型\",\"required\":true,\"list\":_vm.applyTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.type == '1')?[_c('c-product-store',{ref:\"productStoreRef\",attrs:{\"type\":\"1\"},model:{value:(_vm.apply_goods),callback:function ($$v) {_vm.apply_goods=$$v},expression:\"apply_goods\"}})]:_vm._e(),_c('c-input',{attrs:{\"title\":\"总金额(元)\",\"required\":true,\"input-type\":\"number\"},model:{value:(_vm.total_amount),callback:function ($$v) {_vm.total_amount=$$v},expression:\"total_amount\"}}),_c('c-date',{attrs:{\"title\":\"预计申购完成日期\"},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-select',{attrs:{\"title\":\"支付方式\",\"required\":true,\"list\":_vm.applyPayTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.pay_type),callback:function ($$v) {_vm.pay_type=$$v},expression:\"pay_type\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":\"流程\"}},[_c('div',{staticClass:\"custom-flow-path-container\"},[_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"left__title\"},[_vm._v(\" 审批人 \")]),_c('div',{staticClass:\"left__desc\"},[_vm._v(\" \"+_vm._s(_vm.approveTxt)+\" \")])]),_c('div',{staticClass:\"right flex flex-row\"},[(_vm.approveSelList.length)?_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},_vm._l((_vm.approveSelList),function(personal,idx){return _c('div',{key:idx,staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.approveSelList.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"arrow\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)}),0):_vm._e()]),_c('div',{staticClass:\"rows-line\"})]),(_vm.copySelList.length || _vm.isAllowCopy == '1')?_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"left__title\"},[_vm._v(\" 抄送人 \")]),_c('div',{staticClass:\"left__desc\"},[_vm._v(\" \"+_vm._s(_vm.sendTxt)+\" \")])]),_c('div',{staticClass:\"right flex flex-row\"},[_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},[(_vm.copySelList.length >= 3)?_c('div',{staticClass:\"flex flex-row\",on:{\"click\":function($event){_vm.showMoreCopy = true}}},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[_c('span',{staticClass:\"avatar__name\"},[_c('van-icon',{attrs:{\"name\":\"friends-o\",\"size\":24}})],1)]),_c('div',{staticClass:\"personal__name\"},[_vm._v(\"查看全部\")])]),_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}})],1):_vm._e(),_vm._l((_vm.copySelListCompu),function(personal,idx){return _c('div',{key:(idx + \"-\" + (personal.userid)),staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.copySelListCompu.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):(_vm.isAllowCopy == '1')?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)})],2),(_vm.isAllowCopy == '1')?_c('div',{staticClass:\"empty-box\",on:{\"click\":_vm.handleOpenContactsCopy}},[_c('van-icon',{attrs:{\"size\":20,\"color\":\"#979797\",\"name\":\"plus\"}})],1):_vm._e()])]):_vm._e()]),_c('van-popup',{style:({ height: '60%' }),attrs:{\"position\":\"bottom\",\"closeable\":\"\",\"close-icon-position\":\"top-right\"},model:{value:(_vm.showMoreCopy),callback:function ($$v) {_vm.showMoreCopy=$$v},expression:\"showMoreCopy\"}},[_c('div',{staticClass:\"show-more-copy-container flex flex-col\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"抄送\"+_vm._s(_vm.copySelList.length)+\"人\")]),_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},_vm._l((_vm.copySelList),function(personal,idx){return _c('div',{key:(idx + \"-\" + (personal.userid)),staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"closebox\",on:{\"click\":function($event){return _vm.handleRemoveSignal(personal, idx)}}},[_c('van-icon',{attrs:{\"name\":\"cross\",\"size\":14,\"color\":\"#fff\"}})],1),_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.copySelList.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)}),0)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <layout title=\"流程\">\r\n <div class=\"custom-flow-path-container\">\r\n <!-- 审批人 -->\r\n <div class=\"rows\">\r\n <div class=\"left\">\r\n <div class=\"left__title\">\r\n 审批人\r\n </div>\r\n <div class=\"left__desc\">\r\n {{ approveTxt }}\r\n </div>\r\n </div>\r\n <div class=\"right flex flex-row\">\r\n <div v-if=\"approveSelList.length\" class=\"procesbox flex flex-row flex-row-aic\">\r\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in approveSelList\" :key=\"idx\">\r\n <div class=\"personal flex flex-col\">\r\n <div class=\"avatar avatar--name\">\r\n <template v-if=\"personal.avatar\">\r\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\r\n </template>\r\n <template v-else>\r\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\r\n </template>\r\n </div>\r\n <div class=\"personal__name\">{{ personal.name }}</div>\r\n </div>\r\n\r\n <van-icon class=\"arrow\" v-if=\"idx !== approveSelList.length - 1\" :size=\"14\" name=\"arrow\"\r\n color=\"rgb(151, 151, 151)\" />\r\n </div>\r\n </div>\r\n <!-- <div v-if=\"approveSelList.length < 3\" class=\"empty-box\" @click=\"handleOpenContacts\">\r\n <van-icon :size=\"20\" color=\"#979797\" name=\"plus\" />\r\n </div> -->\r\n </div>\r\n <div class=\"rows-line\"></div>\r\n </div>\r\n\r\n <!-- 抄送人 -->\r\n <div class=\"rows\" v-if=\"copySelList.length || isAllowCopy == '1'\">\r\n <div class=\"left\">\r\n <div class=\"left__title\">\r\n 抄送人\r\n </div>\r\n <div class=\"left__desc\">\r\n {{ sendTxt }}\r\n </div>\r\n </div>\r\n <div class=\"right flex flex-row\">\r\n <div class=\"procesbox flex flex-row flex-row-aic\">\r\n <div class=\"flex flex-row\" v-if=\"copySelList.length >= 3\" @click=\"showMoreCopy = true\">\r\n <div class=\"personal flex flex-col\">\r\n <div class=\"avatar avatar--name\">\r\n <span class=\"avatar__name\">\r\n <van-icon name=\"friends-o\" :size=\"24\" />\r\n </span>\r\n </div>\r\n <div class=\"personal__name\">查看全部</div>\r\n </div>\r\n <van-icon class=\"arrow\" :size=\"14\" name=\"plus\" color=\"rgb(151, 151, 151)\" />\r\n </div>\r\n\r\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in copySelListCompu\"\r\n :key=\"`${idx}-${personal.userid}`\">\r\n <div class=\"personal flex flex-col\">\r\n <div class=\"avatar avatar--name\">\r\n <template v-if=\"personal.avatar\">\r\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\r\n </template>\r\n <template v-else>\r\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\r\n </template>\r\n </div>\r\n <div class=\"personal__name\">{{ personal.name }}</div>\r\n </div>\r\n <van-icon v-if=\"idx !== copySelListCompu.length - 1\" class=\"arrow\" :size=\"14\" name=\"plus\"\r\n color=\"rgb(151, 151, 151)\" />\r\n <van-icon v-else-if=\"isAllowCopy == '1'\" class=\"arrow\" :size=\"14\" name=\"plus\"\r\n color=\"rgb(151, 151, 151)\" />\r\n </div>\r\n </div>\r\n <div class=\"empty-box\" v-if=\"isAllowCopy == '1'\" @click=\"handleOpenContactsCopy\">\r\n <van-icon :size=\"20\" color=\"#979797\" name=\"plus\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- NOTE: 当抄送人过多时展示 -->\r\n <van-popup v-model=\"showMoreCopy\" position=\"bottom\" :style=\"{ height: '60%' }\" closeable\r\n close-icon-position=\"top-right\">\r\n <div class=\"show-more-copy-container flex flex-col\">\r\n <div class=\"header\">抄送{{ copySelList.length }}人</div>\r\n <div class=\"main\">\r\n <div class=\"procesbox flex flex-row flex-row-aic\">\r\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in copySelList\"\r\n :key=\"`${idx}-${personal.userid}`\">\r\n <div class=\"personal flex flex-col\">\r\n <div class=\"closebox\" @click=\"handleRemoveSignal(personal, idx)\"><van-icon name=\"cross\"\r\n :size=\"14\" color=\"#fff\" /></div>\r\n <div class=\"avatar avatar--name\">\r\n <template v-if=\"personal.avatar\">\r\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\r\n </template>\r\n <template v-else>\r\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\r\n </template>\r\n </div>\r\n <div class=\"personal__name\">{{ personal.name }}</div>\r\n </div>\r\n <van-icon class=\"arrow\" v-if=\"idx !== copySelList.length - 1\" :size=\"14\" name=\"plus\"\r\n color=\"rgb(151, 151, 151)\" />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </van-popup>\r\n </layout>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n@import url(\"@/styles/variables.less\");\r\n\r\n.custom-flow-path {\r\n &-container {\r\n padding: 10px 12px;\r\n background-color: @white;\r\n\r\n .rows {\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n // align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n\r\n .rows-line {\r\n position: absolute;\r\n left: -10px;\r\n top: 17px;\r\n width: 1px;\r\n height: 100%;\r\n background-color: #D8D8D8;\r\n }\r\n\r\n .left {\r\n &__title {\r\n position: relative;\r\n font-size: @font-size-common;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 18px;\r\n\r\n &::after {\r\n position: absolute;\r\n content: \"\";\r\n left: -12px;\r\n top: 50%;\r\n width: 8px;\r\n height: 8px;\r\n border-radius: 8px;\r\n background: #D8D8D8;\r\n transform: translateY(-50%);\r\n\r\n }\r\n }\r\n\r\n &__desc {\r\n font-size: @font-size-third;\r\n font-weight: 400;\r\n color: #9A9A9A;\r\n line-height: 18px;\r\n }\r\n }\r\n\r\n .empty-box {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n width: 31px;\r\n height: 31px;\r\n background: #FFFFFF;\r\n border-radius: 5px;\r\n border: 1px solid #EEEEEF;\r\n }\r\n\r\n &:last-child {\r\n .rows-line {\r\n width: 0;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.procesbox {\r\n flex-wrap: wrap;\r\n\r\n .avatar {\r\n position: relative;\r\n width: 31px;\r\n height: 31px;\r\n background: #3290C4;\r\n border-radius: 4px;\r\n font-size: @font-size-third;\r\n\r\n &--name {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n &-heade {\r\n width: 100%;\r\n height: 100%;\r\n vertical-align: middle;\r\n border-radius: 4px;\r\n }\r\n\r\n &__name {\r\n font-size: @font-size-third;\r\n font-family: PingFangSC-Regular, PingFang SC;\r\n font-weight: 400;\r\n color: #FFFFFF;\r\n line-height: 9px;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n .personal {\r\n position: relative;\r\n align-items: center;\r\n\r\n &__name {\r\n font-size: @font-size-third;\r\n font-family: PingFangSC-Regular, PingFang SC;\r\n font-weight: 400;\r\n color: #9A9A9A;\r\n text-align: center;\r\n line-height: 20px;\r\n }\r\n\r\n .closebox {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n z-index: 9;\r\n font-size: 0;\r\n transform: translate(30%, -30%);\r\n background-color: #b7b5b5;\r\n border-radius: 1000px;\r\n padding: 1px;\r\n }\r\n }\r\n\r\n .arrow {\r\n height: 31px;\r\n line-height: 31px;\r\n padding: 0 5px;\r\n }\r\n}\r\n\r\n.show-more-copy-container {\r\n .header {\r\n font-size: 12px;\r\n line-height: 50px;\r\n padding: 0 20px;\r\n color: #828282;\r\n }\r\n\r\n .main {\r\n height: 0;\r\n flex: 1;\r\n padding: 6px 10px;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nimport Layout from './Layout.vue';\r\n\r\nimport { dingtalkComplexPicker } from '@/utils/dingtalk'\r\n\r\nexport default {\r\n name: 'CFlowPath',\r\n components: {\r\n Layout\r\n },\r\n computed: {\r\n approveTxt() {\r\n let list = this.approveSelList\r\n return list.length ? `${list.length}人依次审批` : '暂无审批人'\r\n },\r\n sendTxt() {\r\n let list = this.copySelList\r\n return list.length ? `抄送${list.length}人` : '暂无抄送人'\r\n },\r\n copySelListCompu() {\r\n let arrs = [...this.copySelList]\r\n if (arrs.length > 2) return arrs.slice(-2)\r\n else return arrs\r\n },\r\n },\r\n props: {\r\n approve: {\r\n type: Array\r\n },\r\n copy: {\r\n type: Array\r\n },\r\n isAllowCopy: { // 是否允许抄送人存在变更 (0:否, 1:是)\r\n // validator: val => (['0', '1'].includes(val)),\r\n type: [String, Number],\r\n default: 1\r\n }\r\n },\r\n data() {\r\n return {\r\n showMoreCopy: false,\r\n approveSelList: [],\r\n copySelList: []\r\n }\r\n },\r\n methods: {\r\n // 打开钉钉联系人控件。完成选审批操作\r\n // Useless\r\n // async handleOpenContacts() {\r\n // const result = await dingtalkComplexPicker({})\r\n // console.log(result);\r\n // },\r\n\r\n // 抄送人\r\n async handleOpenContactsCopy() {\r\n if (this.isAllowCopy != 1) return\r\n\r\n const result = await dingtalkComplexPicker({\r\n title: '添加抄送人',\r\n multiple: false,\r\n maxUsers: 9999,\r\n limitTips: '抄送人已达最大人数',\r\n pickedUsers: this.copySelList.map(user => (user.userid)),\r\n responseUserOnly: true,\r\n startWithDepartmentId: 0,\r\n deptId: -1,\r\n showLabelPick: false\r\n })\r\n\r\n const { users } = result\r\n\r\n if (users.length) {\r\n users.forEach(user => {\r\n this.copySelList.push({\r\n ...user,\r\n userid: user.emplId\r\n })\r\n })\r\n this.$emit('update:copy', [...this.copySelList])\r\n }\r\n },\r\n handleRemoveSignal(person, idx) {\r\n this.copySelList.splice(idx, 1)\r\n this.$emit('update:copy', [...this.copySelList])\r\n },\r\n\r\n\r\n __render_a__(arrs) {\r\n if (!Array.isArray(arrs)) arrs = this.approve\r\n this.approveSelList = [...arrs]\r\n },\r\n __render_c__(arrs) {\r\n if (!Array.isArray(arrs)) arrs = this.copy\r\n this.copySelList = [...arrs]\r\n },\r\n },\r\n watch: {\r\n approve: {\r\n handler(arrs) {\r\n this.__render_a__(arrs)\r\n },\r\n deep: true,\r\n },\r\n copy: {\r\n handler(arrs) {\r\n this.__render_c__(arrs)\r\n },\r\n deep: true\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!./CFlowPath.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!./CFlowPath.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CFlowPath.vue?vue&type=template&id=53b272f5&scoped=true\"\nimport script from \"./CFlowPath.vue?vue&type=script&lang=js\"\nexport * from \"./CFlowPath.vue?vue&type=script&lang=js\"\nimport style0 from \"./CFlowPath.vue?vue&type=style&index=0&id=53b272f5&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 \"53b272f5\",\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-date-container flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\",on:{\"click\":function () { return _vm.show = !_vm.show; }}},[(_vm.selectVal)?_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.selectVal))]):_c('div',{staticClass:\"default\"},[_vm._v(\"请选择\")])]),_c('div',{staticClass:\"right\"},[(_vm.selectVal)?_c('van-icon',{attrs:{\"size\":20,\"color\":\"#A2A3A4\",\"name\":\"clear\"},on:{\"click\":_vm.handleRemoveVal}}):_vm._e(),_c('van-icon',{attrs:{\"color\":\"#A2A3A4\",\"size\":20,\"name\":\"arrow\"},on:{\"click\":function () { return _vm.show = !_vm.show; }}})],1)]),_c('van-popup',{attrs:{\"position\":\"bottom\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"switch-data-box flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_c('span',{class:{ 'active': _vm.swt === 0 },on:{\"click\":function () { return _vm.swt = 0; }}},[_vm._v(_vm._s(_vm.dateShow))]),(_vm.hasAm)?_c('span',{class:{ 'active': _vm.swt === 1 },on:{\"click\":function () { return _vm.swt = 1; }}},[_vm._v(_vm._s(_vm.rangeShow))]):_c('span',{class:{ 'active': _vm.swt === 2 },on:{\"click\":function () { return _vm.swt = 2; }}},[_vm._v(\"时间\")])]),_c('div',{staticClass:\"right\",on:{\"click\":_vm.handleConfirmBtn}},[_c('div',{staticClass:\"btn\"},[_vm._v(\"确认\")])])]),_c('van-calendar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 0),expression:\"swt === 0\"}],style:({ height: '340px' }),attrs:{\"poppable\":false,\"show-confirm\":false,\"show-title\":false,\"show-subtitle\":false,\"row-height\":\"50\",\"color\":\"#3290c4\",\"default-date\":_vm.calenderDefaultVal},on:{\"confirm\":_vm.onConfirmDateVal}}),_c('van-picker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 1 && _vm.hasAm),expression:\"swt === 1 && hasAm\"}],ref:\"vanPickerRef\",style:({ height: '340px' }),attrs:{\"show-toolbar\":false,\"columns\":_vm.rangeTimeList,\"default-index\":_vm.defaultAmPickerIdx},on:{\"change\":_vm.handlePickerChange}}),_c('van-datetime-picker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 2 && !_vm.hasAm),expression:\"swt === 2 && !hasAm\"}],ref:\"vanDatePickerRef\",style:({ height: '340px' }),attrs:{\"value\":_vm.timeVal,\"type\":\"time\",\"show-toolbar\":false,\"min-hour\":_vm.rendeMinHours,\"max-hour\":23,\"visible-item-count\":\"7\"},on:{\"change\":_vm.handleDateTimePickerChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <layout :title=\"$attrs.title\" :required=\"$attrs.required\">\r\n <div class=\"custom-date-container flex flex-row flex-row-aic\">\r\n <div class=\"left\" @click=\"() => show = !show\">\r\n <div v-if=\"selectVal\" class=\"value\">{{ selectVal }}</div>\r\n <div v-else class=\"default\">请选择</div>\r\n </div>\r\n <div class=\"right\">\r\n <van-icon v-if=\"selectVal\" :size=\"20\" color=\"#A2A3A4\" name=\"clear\" @click=\"handleRemoveVal\" />\r\n <van-icon color=\"#A2A3A4\" :size=\"20\" name=\"arrow\" @click=\"() => show = !show\" />\r\n </div>\r\n </div>\r\n\r\n <!-- NOTE: 调用日期和时间组件 -->\r\n <van-popup v-model=\"show\" position=\"bottom\">\r\n <!-- choose time -->\r\n <div class=\"switch-data-box flex flex-row flex-row-aic\">\r\n <div class=\"left\">\r\n <span @click=\"() => swt = 0\" :class=\"{ 'active': swt === 0 }\">{{ dateShow }}</span>\r\n <span v-if=\"hasAm\" @click=\"() => swt = 1\" :class=\"{ 'active': swt === 1 }\">{{ rangeShow }}</span>\r\n <span v-else @click=\"() => swt = 2\" :class=\"{ 'active': swt === 2 }\">时间</span>\r\n </div>\r\n <div class=\"right\" @click=\"handleConfirmBtn\">\r\n <div class=\"btn\">确认</div>\r\n </div>\r\n </div>\r\n\r\n <van-calendar v-show=\"swt === 0\" :poppable=\"false\" :show-confirm=\"false\" :show-title=\"false\"\r\n :show-subtitle=\"false\" :style=\"{ height: '340px' }\" row-height=\"50\" color=\"#3290c4\"\r\n :default-date=\"calenderDefaultVal\" @confirm=\"onConfirmDateVal\" />\r\n\r\n <van-picker ref=\"vanPickerRef\" v-show=\"swt === 1 && hasAm\" :show-toolbar=\"false\" :columns=\"rangeTimeList\"\r\n @change=\"handlePickerChange\" :style=\"{ height: '340px' }\" :default-index=\"defaultAmPickerIdx\" />\r\n\r\n <van-datetime-picker ref=\"vanDatePickerRef\" v-show=\"swt === 2 && !hasAm\" :value=\"timeVal\" type=\"time\"\r\n :show-toolbar=\"false\" :min-hour=\"rendeMinHours\" :max-hour=\"23\" :style=\"{ height: '340px' }\"\r\n visible-item-count=\"7\" @change=\"handleDateTimePickerChange\" />\r\n </van-popup>\r\n </layout>\r\n</template>\r\n\r\n\r\n<style lang=\"less\" scoped>\r\n.custom-date {\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\r\n.switch-data-box {\r\n justify-content: space-between;\r\n padding: 0 12px;\r\n\r\n span {\r\n display: inline-block;\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #707073;\r\n padding: 10px 8px;\r\n margin-right: 6px;\r\n\r\n &.active {\r\n border-bottom: 2px solid #707073;\r\n }\r\n\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n }\r\n\r\n .right {\r\n font-size: 16px;\r\n font-weight: 500;\r\n color: #3290C4;\r\n line-height: 22px;\r\n }\r\n}\r\n\r\n.swtbox2 {\r\n padding: 20px 0;\r\n box-sizing: border-box;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport Layout from './Layout.vue';\r\n\r\nimport { formatTime, formatBaseDateTime } from '@/utils/formatTime'\r\n\r\nexport default {\r\n name: \"CDate\",\r\n components: {\r\n Layout\r\n },\r\n computed: {\r\n dateShow() {\r\n return this.dateVal ? formatTime(this.dateVal) : '日期'\r\n },\r\n\r\n rangeShow() {\r\n return this.rangeTime === '上午' ? '上午' : '下午'\r\n },\r\n\r\n rendeMinHours() {\r\n let minHour = 0\r\n if (this.rangeTime === '下午') minHour = 12\r\n return minHour\r\n },\r\n defaultAmPickerIdx() {\r\n if (this.rangeTime === '上午') return 0\r\n return 1\r\n },\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: ''\r\n },\r\n hasAm: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n show: false,\r\n swt: 0,\r\n\r\n selectVal: '',\r\n rangeTimeList: ['上午', '下午'],\r\n\r\n calenderDefaultVal: new Date,\r\n\r\n // dateTime vals\r\n rangeTime: '上午',\r\n dateVal: '',\r\n timeVal: '00:00',\r\n }\r\n },\r\n methods: {\r\n // 确定日期内容\r\n onConfirmDateVal(date) {\r\n this.dateVal = date\r\n },\r\n\r\n reset() {\r\n this.selectVal = ''\r\n this.dateVal = ''\r\n this.timeVal = '00:00'\r\n this.rangeTime = '上午'\r\n },\r\n\r\n handleRemoveVal() {\r\n this.reset()\r\n },\r\n\r\n // 选择上午还是下午\r\n handlePickerChange(event, val) {\r\n this.rangeTime = val\r\n },\r\n\r\n // time picker change\r\n handleDateTimePickerChange(picker) {\r\n const [hours, minus] = picker.getValues()\r\n this.timeVal = `${hours}:${minus}`\r\n },\r\n\r\n // 确认提交的按钮\r\n handleConfirmBtn() {\r\n try {\r\n this.show = false\r\n if (!this.dateVal) this.dateVal = this.calenderDefaultVal\r\n\r\n if (this.hasAm) this.$refs.vanPickerRef.confirm()\r\n\r\n this.$nextTick(() => {\r\n let selval = this.hasAm ? `${formatBaseDateTime(this.dateVal)} ${this.rangeTime}` : `${formatBaseDateTime(this.dateVal)} ${this.timeVal}`\r\n this.selectVal = selval\r\n this.$emit('input', selval)\r\n })\r\n } catch (error) {\r\n console.log('%c handleConfirmBtn >>>', 'background: blue; color: #fff', error);\r\n }\r\n }\r\n },\r\n watch: {\r\n show(bool) {\r\n if (!bool) {\r\n this.swt = 0\r\n }\r\n },\r\n value: {\r\n handler(vals) {\r\n if (vals) {\r\n const [date, time] = vals.split(' ')\r\n let isM = time.includes(':') // 判断是否包含:\r\n if (isM) {\r\n let [hours] = time.split(':')\r\n this.rangeTime = hours > 12 ? '下午' : '上午'\r\n this.timeVal = time\r\n } else {\r\n this.rangeTime = time\r\n }\r\n this.selectVal = vals\r\n this.calenderDefaultVal = new Date(date)\r\n this.dateVal = date\r\n }\r\n },\r\n immediate: true\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!./CDate.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!./CDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CDate.vue?vue&type=template&id=74862614&scoped=true\"\nimport script from \"./CDate.vue?vue&type=script&lang=js\"\nexport * from \"./CDate.vue?vue&type=script&lang=js\"\nimport style0 from \"./CDate.vue?vue&type=style&index=0&id=74862614&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 \"74862614\",\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 flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$attrs.title))]),(_vm.$attrs.required)?_c('span',{staticClass:\"require\"},[_vm._v(\"*\")]):_vm._e()]),_c('div',{staticClass:\"right\"},[_c('van-switch',{attrs:{\"size\":20,\"value\":_vm.$attrs.value,\"active-color\":\"#3290c4\",\"active-value\":_vm.$attrs.activeValue,\"inactive-value\":_vm.$attrs.inactiveValue},on:{\"change\":function (value) { return (_vm.$emit('input', value)); }}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"layout-container\">\r\n <div class=\"layout__title flex flex-row flex-row-aic\">\r\n <div class=\"left\">\r\n <span class=\"title\">{{ $attrs.title }}</span>\r\n <span v-if=\"$attrs.required\" class=\"require\">*</span>\r\n </div>\r\n <div class=\"right\">\r\n <van-switch\r\n :size=\"20\"\r\n :value=\"$attrs.value\"\r\n active-color=\"#3290c4\"\r\n :active-value=\"$attrs.activeValue\"\r\n :inactive-value=\"$attrs.inactiveValue\"\r\n @change=\"value => ($emit('input', value))\"\r\n />\r\n </div>\r\n </div>\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 justify-content: space-between;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n name: 'CSwitch'\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!./CSwitch.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!./CSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CSwitch.vue?vue&type=template&id=8ef9abca&scoped=true\"\nimport script from \"./CSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./CSwitch.vue?vue&type=script&lang=js\"\nimport style0 from \"./CSwitch.vue?vue&type=style&index=0&id=8ef9abca&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 \"8ef9abca\",\n null\n \n)\n\nexport default component.exports","/**\r\n * @description 混入组件\r\n */\r\nimport CSelect from '../components/CSelect.vue';\r\nimport CInput from '../components/CInput.vue';\r\nimport CFiles from '../components/CFiles.vue';\r\nimport CFlowPath from '../components/CFlowPath.vue';\r\nimport CDate from '../components/CDate.vue';\r\nimport CSwitch from '../components/CSwitch.vue'\r\nimport CSelectImitate from '../components/CSelectImitate.vue'\r\n\r\nexport default {\r\n components: {\r\n CSelect,\r\n CInput,\r\n CFiles,\r\n CFlowPath,\r\n CDate,\r\n CSwitch,\r\n CSelectImitate\r\n }\r\n}","/**\r\n * @description 审批流程模块\r\n */\r\nimport request from '@/utils/request'\r\n\r\n// 获取审批流程\r\nexport function getApproveFlowPath (formData) {\r\n return request({\r\n method: 'POST',\r\n url: \"approveflow/get_data\",\r\n data: formData\r\n })\r\n}","\r\n\r\nimport { getStringTye } from '@/utils/util'\r\nimport indexComponentsMixins from './js/IndexComponentsMixins'\r\nimport { getApproveFlowPath } from '@/api/approveflow'\r\n\r\nimport { platform, settingNavigationRight, settingNavigationTitle } from '@/utils/dingtalk';\r\n\r\n\r\nexport default {\r\n mixins: [\r\n indexComponentsMixins\r\n ],\r\n props: {\r\n editData: {\r\n type: Object,\r\n default: () => (null)\r\n },\r\n editId: {\r\n type: Number,\r\n default: 0\r\n },\r\n flag: {\r\n type: String,\r\n validator: flag => (['', 'info', 'approve'].includes(flag)),\r\n }\r\n },\r\n data () {\r\n return {\r\n approvePeople: [], // 审核人员\r\n copyPeople: [], // 抄送人\r\n isCopy: undefined // 是否可修改抄送人\r\n }\r\n },\r\n\r\n created () {\r\n if (platform !== 'notInDingTalk') {\r\n this.navigationSetting()\r\n }\r\n },\r\n\r\n activated() {\r\n if (platform !== 'notInDingTalk') {\r\n this.handleSetRightTitle()\r\n }\r\n },\r\n\r\n methods: {\r\n // NOTE: 设置标题等\r\n navigationSetting() {\r\n settingNavigationTitle({\r\n title: this.pageTitle\r\n })\r\n },\r\n handleNavRightBack() {\r\n this.$router.push({\r\n name: 'ApplyState',\r\n query: {\r\n type: this.module,\r\n }\r\n })\r\n },\r\n handleSetRightTitle () {\r\n settingNavigationRight({\r\n show: true,\r\n control: true,\r\n text: this.pageRightTitle,\r\n callback: this.handleNavRightBack\r\n })\r\n },\r\n /**\r\n * @description 获取的默认审核流程数据\r\n * */\r\n async getCommonFlowPathData (options = {}, callback) {\r\n try {\r\n let module = this.module\r\n const params = {\r\n module\r\n }\r\n\r\n // NOTE: moduel = [5, 6, 8]时,需要填写 `flow_item`字段。 取值 `options.flow_item`; 获取审批流程\r\n const ALLOW_MODULES = [5, 6, 8]\r\n\r\n if (ALLOW_MODULES.includes(module) && options.flow_item) params['flow_item'] = options.flow_item\r\n \r\n const res = await getApproveFlowPath(params)\r\n\r\n if (res.code === 1) {\r\n /* { userid: string, avatar: string, name: string }[] */\r\n const { \r\n approve_user = [],\r\n copy_user = [],\r\n is_copy = \"0\"\r\n } = res.data\r\n this.isCopy = is_copy\r\n this.approvePeople = approve_user\r\n this.copyPeople = copy_user\r\n\r\n\r\n callback && callback()\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n\r\n /**\r\n * @description 基础校验是否为空, callback 可以自定义继续判断\r\n * @param {Object} param0 { mapTxt, requiredKey, data}\r\n * @param {Function} callback (data, hasEmpty, hasKey) => ([hasEmpty, hasKey, [toast,]])\r\n * @returns Boolean\r\n */\r\n __validtor__ ({ mapTxt, requiredKey, data }, callback) {\r\n // let requiredKey = [\r\n // 'somekey'\r\n // ]\r\n // let mapTxt = {\r\n // 'somekey': 'something'\r\n // }\r\n let requiredKeyLength = requiredKey.length\r\n let hasEmpty = false\r\n let hasKey = ''\r\n\r\n for(let i = 0; i < requiredKeyLength; i++) {\r\n let key = requiredKey[i]\r\n let val = data[key]\r\n let type = getStringTye(val)\r\n \r\n if (type === 'Number' && !isNaN(val)) continue\r\n else if (type === 'Array' && val.length) continue\r\n else if (type === 'String' && val) continue\r\n else {\r\n hasKey = key\r\n hasEmpty = true\r\n break\r\n }\r\n }\r\n\r\n // NOTE: 回调是为了判断当某值需要满足上游字段必填才出现的判断\r\n // 参考文件`IndexType5`的 `validate`函数\r\n let customToast = ''\r\n if (callback) {\r\n const [hEmpty, hKey, toastContext] = callback(data, hasEmpty, hasKey)\r\n hasEmpty = hEmpty\r\n hasKey = hKey\r\n customToast = toastContext\r\n }\r\n\r\n if (customToast) {\r\n this.$toast(customToast)\r\n return true\r\n } else if (hasEmpty) {\r\n this.$toast(mapTxt[hasKey] + '为空')\r\n return true\r\n }\r\n },\r\n\r\n /**\r\n * @description 跳转我的申请列表页面\r\n */\r\n __jump2apply_state__ () {\r\n this.$store.commit({\r\n type: 'app/ROUTE_REMOVE',\r\n value: 'Applyfor'\r\n })\r\n this.$router.replace({\r\n name: 'ApplyState',\r\n query: {\r\n type: this.module\r\n }\r\n })\r\n }\r\n },\r\n watch: {\r\n editData: {\r\n handler (vals) {\r\n if (vals) this.handleFormatEditData(vals)\r\n },\r\n deep: true,\r\n immediate: true\r\n }\r\n }\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-store-container\"},[_c('div',{staticClass:\"product-store__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left-title\"},[_c('span',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),(!_vm.disabled)?_c('div',{staticClass:\"right-content flex flex-row flex-row-aic\"},[(['1', '3'].includes(_vm.type))?[_c('span',{on:{\"click\":_vm.handleAddGoods}},[_vm._v(\"添加新商品\")]),_c('span',{staticClass:\"divider\"})]:_vm._e(),_c('span',{on:{\"click\":function($event){_vm.productStoreActionsheetVisibility = true}}},[_vm._v(\"批量导入\")]),_c('span',{staticClass:\"divider\"}),_c('span',{on:{\"click\":_vm.handleGoPStore}},[_vm._v(\"商品库选择\")])],2):_vm._e()]),(_vm.showList)?[_c('div',{staticClass:\"product-list-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length > 2),expression:\"list.length > 2\"}],staticClass:\"product-list__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_vm._v(\"商品列表\")]),_c('div',{staticClass:\"right\",on:{\"click\":function($event){_vm.showMore = !_vm.showMore}}},[(!_vm.showMore)?[_vm._v(\" 展开\"),_c('van-icon',{attrs:{\"name\":\"arrow-down\"}})]:[_vm._v(\" 收起\"),_c('van-icon',{attrs:{\"name\":\"arrow-up\"}})]],2)]),_c('div',{staticClass:\"product-list__rows\"},_vm._l((_vm.renderInfoList),function(item,idx){return _c('div',{key:idx,staticClass:\"prow\"},[_c('div',{staticClass:\"prow-header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"prow-header__left\"},[_vm._v(\" \"+_vm._s(item.goods_name)+\" \")]),(!_vm.disabled)?_c('div',{staticClass:\"prow-header__right\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.flag != 2),expression:\"item.flag != 2\"}],staticClass:\"update\",on:{\"click\":function($event){return _vm.handleUpdateRow(item, idx)}}},[_vm._v(\"更改\")]),_c('span',{staticClass:\"remove\",on:{\"click\":function($event){return _vm.handleRemoveRow(item, idx)}}},[_vm._v(\"删除\")])]):_vm._e()]),_vm._l((item.goods_stock),function(goodsStock,idx){return [_c('div',{key:idx,staticClass:\"prow-middle flex flex-row flex--row-aic\"},[_c('div',{staticClass:\"flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"tags\"},[_vm._v(_vm._s(goodsStock.name))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.needShowPrice),expression:\"needShowPrice\"}],staticClass:\"price\"},[_vm._v(\"¥\"+_vm._s(goodsStock.price))])]),_c('div',{staticClass:\"count\"},[_vm._v(\"x\"+_vm._s(goodsStock.stock))])])]}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.needShowPrice),expression:\"needShowPrice\"}],staticClass:\"prow-total\"},[_c('span',[_vm._v(\"¥\")]),_vm._v(_vm._s(_vm._f(\"sumPrice\")(item.goods_stock))+\" \")])],2)}),0)])]:[_c('div',{staticClass:\"product-store__empty\"},[_vm._v(\" \"+_vm._s(_vm.showEmptyTxt)+\" \")])],_c('van-action-sheet',{attrs:{\"actions\":_vm.actions,\"cancel-text\":\"取消\",\"close-on-click-action\":\"\"},on:{\"select\":_vm.handleSelectSheet},model:{value:(_vm.productStoreActionsheetVisibility),callback:function ($$v) {_vm.productStoreActionsheetVisibility=$$v},expression:\"productStoreActionsheetVisibility\"}},[_c('div',{staticClass:\"action-sheet-container\",attrs:{\"slot\":\"description\"},on:{\"click\":_vm.handleDownloadHelp},slot:\"description\"},[_c('div',{staticClass:\"icon\"},[_c('img',{attrs:{\"src\":require('@/assets/icon-excel.png'),\"alt\":\"\"}})]),_c('div',{staticClass:\"title\"},[_vm._v(\"批量导入方法说明.Excel\")]),_c('div',{staticClass:\"sub-title\"},[_vm._v(\"264.45 KB\")])])]),_c('input',{ref:\"importTemlate\",attrs:{\"accept\":_vm.excelSuffix,\"type\":\"file\",\"name\":\"file\",\"id\":\"file\"},on:{\"change\":_vm.handleInputFileChange}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"product-store-container\">\r\n <div class=\"product-store__header flex flex-row flex-row-aic\">\r\n <div class=\"left-title\">\r\n <span>{{ title }}</span>\r\n <span class=\"required\">*</span>\r\n </div>\r\n <div class=\"right-content flex flex-row flex-row-aic\" v-if=\"!disabled\">\r\n <template v-if=\"['1', '3'].includes(type)\">\r\n <span @click=\"handleAddGoods\">添加新商品</span>\r\n <span class=\"divider\"></span>\r\n </template>\r\n <span @click=\"productStoreActionsheetVisibility = true\">批量导入</span>\r\n <span class=\"divider\"></span>\r\n <span @click=\"handleGoPStore\">商品库选择</span>\r\n </div>\r\n </div>\r\n\r\n <template v-if=\"showList\">\r\n <div class=\"product-list-container\">\r\n <div class=\"product-list__header flex flex-row flex-row-aic\" v-show=\"list.length > 2\">\r\n <div class=\"left\">商品列表</div>\r\n <div class=\"right\" @click=\"showMore = !showMore\">\r\n <template v-if=\"!showMore\">\r\n 展开<van-icon name=\"arrow-down\" />\r\n </template>\r\n <template v-else>\r\n 收起<van-icon name=\"arrow-up\" />\r\n </template>\r\n </div>\r\n </div>\r\n <div class=\"product-list__rows\">\r\n <div class=\"prow\" v-for=\"(item, idx) in renderInfoList\" :key=\"idx\">\r\n <div class=\"prow-header flex flex-row flex-row-aic\">\r\n <div class=\"prow-header__left\">\r\n {{ item.goods_name }}\r\n </div>\r\n <div class=\"prow-header__right\" v-if=\"!disabled\">\r\n <!-- NOTE: flag == 2 不可以修改 -->\r\n <span class=\"update\" v-show=\"item.flag != 2\" @click=\"handleUpdateRow(item, idx)\">更改</span>\r\n <span class=\"remove\" @click=\"handleRemoveRow(item, idx)\">删除</span>\r\n </div>\r\n </div>\r\n <template v-for=\"(goodsStock, idx) in item.goods_stock\">\r\n <div class=\"prow-middle flex flex-row flex--row-aic\" :key=\"idx\">\r\n <div class=\"flex flex-row flex-row-aic\">\r\n <div class=\"tags\">{{ goodsStock.name }}</div>\r\n <div v-show=\"needShowPrice\" class=\"price\">¥{{ goodsStock.price }}</div>\r\n </div>\r\n <div class=\"count\">x{{ goodsStock.stock }}</div>\r\n </div>\r\n </template>\r\n <div class=\"prow-total\" v-show=\"needShowPrice\">\r\n <span>¥</span>{{ item.goods_stock | sumPrice }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <div class=\"product-store__empty\">\r\n {{ showEmptyTxt }}\r\n </div>\r\n </template>\r\n\r\n <!-- NOTE: 弹窗提示批量导入 -->\r\n <van-action-sheet v-model=\"productStoreActionsheetVisibility\" :actions=\"actions\" cancel-text=\"取消\"\r\n close-on-click-action @select=\"handleSelectSheet\">\r\n <div class=\"action-sheet-container\" slot=\"description\" @click=\"handleDownloadHelp\">\r\n <div class=\"icon\">\r\n <img :src=\"require('@/assets/icon-excel.png')\" alt=\"\">\r\n </div>\r\n <div class=\"title\">批量导入方法说明.Excel</div>\r\n <div class=\"sub-title\">264.45 KB</div>\r\n </div>\r\n </van-action-sheet>\r\n\r\n <!-- NOTE: 上传的触发点 -->\r\n <input ref=\"importTemlate\" :accept=\"excelSuffix\" type=\"file\" name=\"file\" id=\"file\" @change=\"handleInputFileChange\" />\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 margin-top: 10px;\r\n\r\n #file {\r\n font-size: 0;\r\n width: 0;\r\n height: 0;\r\n visibility: hidden;\r\n line-height: 0;\r\n padding-block: 0;\r\n padding-inline: 0;\r\n position: absolute;\r\n }\r\n }\r\n\r\n &__header {\r\n padding: 4px 12px 8px;\r\n justify-content: space-between;\r\n\r\n .left-title {\r\n font-size: @font-size-common;\r\n color: #727273;\r\n\r\n .required {\r\n color: red;\r\n }\r\n }\r\n\r\n .right-content {\r\n font-size: @font-size-third;\r\n\r\n span {\r\n color: @link-color;\r\n }\r\n\r\n .divider {\r\n display: inline-block;\r\n width: 1px;\r\n height: 10px;\r\n margin: 0 8px;\r\n background-color: rgba(151, 151, 151, 0.5);\r\n }\r\n }\r\n }\r\n\r\n &__empty {\r\n font-size: @font-size-secondery;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 20px;\r\n padding: 15px 12px;\r\n background-color: @white;\r\n }\r\n}\r\n\r\n.action-sheet-container {\r\n .icon {\r\n img {\r\n width: 48px;\r\n height: 48px;\r\n }\r\n }\r\n\r\n .title {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 18px;\r\n }\r\n\r\n .sub-title {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #9A9A9A;\r\n line-height: 18px;\r\n }\r\n}\r\n\r\n.product-list {\r\n &-container {\r\n background-color: @white;\r\n padding: 8px 12px;\r\n }\r\n\r\n &__header {\r\n padding: 12px 0;\r\n justify-content: space-between;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\r\n\r\n .left {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n }\r\n\r\n .right {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #3290C4;\r\n }\r\n }\r\n\r\n &__rows {\r\n transition: height .8s;\r\n\r\n .prow {\r\n padding: 12px 0 10px;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\r\n\r\n &:last-child {\r\n border-bottom: initial;\r\n }\r\n\r\n &-header {\r\n padding-bottom: 6px;\r\n justify-content: space-between;\r\n\r\n &__left {\r\n font-size: @font-size-secondery;\r\n font-weight: 400;\r\n color: #191A1E;\r\n }\r\n\r\n &__right {\r\n font-size: 14px;\r\n\r\n .update {\r\n color: #3290C4;\r\n }\r\n\r\n .remove {\r\n margin-left: 16px;\r\n color: #F45642;\r\n }\r\n }\r\n }\r\n\r\n &-middle {\r\n padding: 5px 0;\r\n justify-content: space-between;\r\n font-size: @font-size-common;\r\n font-weight: 400;\r\n color: #727273;\r\n\r\n >div:first-child {\r\n .price {\r\n font-size: 14px;\r\n margin-left: 10px;\r\n vertical-align: text-bottom;\r\n }\r\n }\r\n }\r\n\r\n &-total {\r\n span {\r\n font-size: 12px;\r\n vertical-align: baseline;\r\n }\r\n\r\n padding-top: 6px;\r\n font-size: 16px;\r\n font-weight: 400;\r\n color: #F45642;\r\n line-height: 24px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n\r\nimport { postImportFile, getImportTemplate } from '@/api/common';\r\nimport { excelSuffix } from '@/utils/constant'\r\nimport { downloadFileUseATarget } from '@/utils/util';\r\nimport upload from '@/utils/upload';\r\nimport vueBus from '@/utils/vueBus';\r\n\r\n\r\nexport default {\r\n name: 'CProductStore',\r\n props: {\r\n value: {\r\n type: Array,\r\n default: () => ([])\r\n },\r\n type: {\r\n validator: t => (['1', '3', '4'].includes(t)),\r\n required: true\r\n },\r\n disabled: {\r\n typeof: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n showEmptyTxt() {\r\n return `还未添加${this.title}`\r\n },\r\n\r\n // NOTE: 只有采购商品时才展示价格等相关内容\r\n needShowPrice() {\r\n return ['1'].includes(this.type)\r\n },\r\n showList() {\r\n return Boolean(this.list.length)\r\n },\r\n title() {\r\n let type = this.type\r\n let title = ''\r\n switch (type) {\r\n case '1':\r\n title = '采购明细'\r\n break\r\n case '3':\r\n title = '入库明细'\r\n break\r\n case '4':\r\n title = '领用明细'\r\n break\r\n }\r\n return title\r\n },\r\n renderInfoList() {\r\n if (this.showMore) return this.list\r\n return this.list.slice(0, 2)\r\n },\r\n },\r\n data: () => ({\r\n showMore: false,\r\n excelSuffix: excelSuffix.join(','),\r\n productStoreActionsheetVisibility: false,\r\n actions: [\r\n { name: '下载模板', color: 'rgba(0, 122, 255, 1)' },\r\n { name: '导入模板', color: 'rgba(0, 122, 255, 1)' },\r\n ],\r\n list: []\r\n }),\r\n\r\n created() {\r\n // 商品库选择\r\n vueBus.$on('updateProductList', this.handleUpdateList)\r\n\r\n // 添加/更新商品\r\n vueBus.$on('changeGoods', this.handleAddOrUpdateData)\r\n },\r\n\r\n mounted() {\r\n this.handleUpdateValues()\r\n },\r\n\r\n methods: {\r\n\r\n handleUpdateValues() {\r\n const arrs = this.value\r\n if (Array.isArray(arrs)) this.list = [...arrs].map(item => {\r\n let goods_stock = item.goods_stock\r\n if (typeof goods_stock === 'string') goods_stock = JSON.parse(goods_stock)\r\n return {\r\n ...item,\r\n goods_stock\r\n }\r\n })\r\n },\r\n\r\n // NOTE: 处理新增和修改商品\r\n // 更新 flag = 3。 新增 flag = 1\r\n handleAddOrUpdateData(data) {\r\n if (!data) return\r\n const { flag } = data\r\n // NOTE: 可能存在新商品无Id情况; 要兼容\r\n const hasGoodsId = Boolean(data.goods_id)\r\n\r\n let idx = this.list.findIndex(goods => hasGoodsId ? goods.goods_id === data.goods_id : goods.__id__ === data.__id__)\r\n\r\n console.log('handleAddOrUpdateData', flag, data, this.list, idx);\r\n if (idx >= 0) { // 说明是存在列表的产品\r\n // if (!hasGoodsId) data.flag = '1'\r\n this.list.splice(idx, 1, { ...data })\r\n } else { // add\r\n this.list.push({ ...data })\r\n }\r\n\r\n // if (flag == '3') { // update\r\n // if (!hasGoodsId) data.flag = '1'\r\n // let idx = this.list.findIndex(goods => hasGoodsId ? goods.goods_id === data.goods_id : goods.__id__ === data.__id__)\r\n // if (idx >= 0) this.list.splice(idx, 1, { ...data })\r\n // } else { // add\r\n // \r\n // }\r\n },\r\n\r\n // NOTE: 商品库选择数据\r\n handleUpdateList(data) {\r\n const { customCount, goodsStock, item, GoodsPrice } = data\r\n console.log('handleUpdateList', customCount, goodsStock, item, GoodsPrice);\r\n const isHasGoods = this.list.some(goods => goods.goods_id === item.id)\r\n if (isHasGoods) {\r\n let idx = this.list.findIndex(goods => goods.goods_id === item.id)\r\n const { goods_stock } = this.list[idx]\r\n // 判断是否以添加规格\r\n let hasGoodsStock = goods_stock.some(standard => standard.id === goodsStock.id)\r\n if (hasGoodsStock) {\r\n let _idx = goods_stock.findIndex(standard => standard.id === goodsStock.id)\r\n if (_idx >= 0) {\r\n goods_stock[_idx] = {\r\n ...goods_stock[_idx],\r\n price: GoodsPrice,\r\n stock: customCount\r\n }\r\n }\r\n } else {\r\n goods_stock.push({\r\n id: goodsStock.id,\r\n name: goodsStock.name,\r\n price: GoodsPrice,\r\n stock: customCount\r\n })\r\n }\r\n this.$forceUpdate()\r\n } else {\r\n const _template_ = {\r\n flag: 3,\r\n goods_id: item.id,\r\n goods_category_first: item.goods_category_first,\r\n goods_category_id: item.goods_category_id,\r\n goods_no: item.goods_no,\r\n goods_name: item.goods_name,\r\n goods_brand: item.goods_brand,\r\n goods_stock: [\r\n {\r\n id: goodsStock.id,\r\n name: goodsStock.name,\r\n price: GoodsPrice,\r\n stock: customCount\r\n }\r\n ]\r\n }\r\n this.list = [...this.list, _template_]\r\n }\r\n },\r\n\r\n handleSelectSheet(action, idx) {\r\n switch (idx) {\r\n case 0:\r\n this.handleDownloadTemplate()\r\n break\r\n case 1:\r\n this.$refs.importTemlate.click()\r\n break\r\n }\r\n },\r\n /**\r\n * @description 下载文件模板\r\n */\r\n async handleDownloadTemplate() {\r\n try {\r\n const formData = {\r\n module: this.type\r\n }\r\n const result = await getImportTemplate(formData)\r\n if (result.code === 1) {\r\n const { url } = result.data\r\n if (url) { // url 存在下载\r\n downloadFileUseATarget(url)\r\n } else this.$toast('请联系网络管理员')\r\n }\r\n } catch (error) {\r\n console.log('%c handleDownloadTemplate >>>', 'background: blue; color: #fff', error);\r\n }\r\n },\r\n\r\n // listener input:file change\r\n async handleInputFileChange(event) {\r\n let files = event.target.files\r\n if (files.length) {\r\n let file = files[0]\r\n event.target.value = null\r\n console.log('%c change file >>>', 'background: blue; color: #fff', file);\r\n await this.handleImportFile(file)\r\n } else {\r\n this.$refs.importTemlate.value = ''\r\n }\r\n },\r\n\r\n // import file\r\n async handleImportFile(file) {\r\n try {\r\n // update file\r\n const fileHref = await upload(file)\r\n // post import file\r\n const result = await postImportFile({\r\n module: this.type,\r\n file: fileHref.url\r\n })\r\n\r\n if (result.code === 1) {\r\n const { error_data = [], apply_goods_data = [] } = result.data\r\n if (error_data.length) {\r\n // error_list => { msg: String }[]\r\n this.handleTipsImport(error_data, apply_goods_data)\r\n } else if (apply_goods_data.length) {\r\n this.list = [\r\n ...this.list,\r\n ...apply_goods_data\r\n ]\r\n }\r\n }\r\n } catch (error) {\r\n console.log('%c handleImportFileError >>>', 'background: blue; color: #fff', error);\r\n }\r\n\r\n },\r\n\r\n // XXX: 下载批量导入说明\r\n // Useless. 功能忽略\r\n handleDownloadHelp() {\r\n // util/downloadFileUseATarget\r\n this.$toast('点击下载模板进行编辑上传')\r\n },\r\n\r\n // NOTE: 提醒某某商品库存不足。让用户选择是否申领/采购\r\n handleTipsImport(errs, arrs) {\r\n this.$dialog.confirm({\r\n message: errs.map((item, idx) => `${idx + 1}、${item.msg}`).join('\\t\\n'),\r\n confirmButtonText: '取消申领',\r\n confirmButtonColor: 'rgba(0, 122, 255, 1)',\r\n cancelButtonText: '按已有的库存申领'\r\n }).catch(() => {\r\n this.list = [\r\n ...this.list,\r\n ...arrs\r\n ]\r\n })\r\n },\r\n\r\n // NOTE: 删除单项\r\n handleRemoveRow(item, idx) {\r\n let article = item.goods_name\r\n this.$dialog.confirm({\r\n title: `删除${this.title}`,\r\n message: `请确认是否删除“${article}”的信息`,\r\n confirmButtonText: '否',\r\n confirmButtonColor: '#576B95',\r\n cancelButtonText: '是'\r\n }).catch(() => {\r\n this.list.splice(idx, 1)\r\n })\r\n },\r\n\r\n // NOTE: 编辑Row\r\n handleUpdateRow(item) {\r\n this.$store.commit({\r\n type: \"app/ROUTE_ADD\",\r\n value: \"Goods\"\r\n })\r\n\r\n this.$nextTick(() => {\r\n this.$router.push({\r\n name: 'Goods',\r\n query: {\r\n flag: '3',\r\n type: this.type,\r\n flagtxt: this.$route.query.flag,\r\n edit: JSON.stringify(item)\r\n }\r\n })\r\n })\r\n },\r\n\r\n // 前往商品库列表\r\n handleGoPStore() {\r\n this.$router.push({\r\n name: 'ProductStore',\r\n query: {\r\n module: this.type\r\n }\r\n })\r\n },\r\n\r\n // NOTE: 添加新商品\r\n handleAddGoods() {\r\n // 添加路由缓存\r\n this.$store.commit({\r\n type: \"app/ROUTE_ADD\",\r\n value: \"Goods\"\r\n })\r\n\r\n this.$nextTick(() => {\r\n this.$router.push({\r\n name: 'Goods',\r\n query: {\r\n type: this.type\r\n }\r\n })\r\n })\r\n }\r\n },\r\n\r\n filters: {\r\n // NOTE: 累加器\r\n sumPrice(arrs) {\r\n let sum = 0\r\n return arrs.reduce((accumulator, cur) => (accumulator + (Number(cur.price) * Number(cur.stock))), sum)\r\n },\r\n },\r\n watch: {\r\n list: {\r\n handler(arrs) {\r\n if (Array.isArray(arrs) && arrs.length) {\r\n this.$listeners['input'] && this.$emit('input', arrs)\r\n }\r\n }\r\n\r\n }\r\n },\r\n beforeDestroy() {\r\n vueBus.$off('updateProductList')\r\n vueBus.$off('changeGoods')\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!./CProductStore.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!./CProductStore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CProductStore.vue?vue&type=template&id=7d067ce3&scoped=true\"\nimport script from \"./CProductStore.vue?vue&type=script&lang=js\"\nexport * from \"./CProductStore.vue?vue&type=script&lang=js\"\nimport style0 from \"./CProductStore.vue?vue&type=style&index=0&id=7d067ce3&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 \"7d067ce3\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"type6-container\">\r\n <c-input title=\"申请事由\" :required=\"true\" input-type=\"textarea\" :maxlength=\"800\" v-model=\"reason\" />\r\n\r\n <c-select title=\"采购类型\" :required=\"true\" v-model=\"type\" :list=\"applyTypeList\" pickerValueKey=\"name\"\r\n pickerValueId=\"id\" />\r\n\r\n <!-- NOTE: 只有货物采购才有 采购明细 -->\r\n <template v-if=\"type == '1'\">\r\n <c-product-store ref=\"productStoreRef\" v-model=\"apply_goods\" type=\"1\" />\r\n </template>\r\n\r\n <!-- :disabled=\"type == '1'\" -->\r\n <c-input title=\"总金额(元)\" :required=\"true\" input-type=\"number\" v-model=\"total_amount\" />\r\n\r\n <c-date title=\"预计申购完成日期\" v-model=\"start_time\" />\r\n\r\n <c-files ref=\"documentRef\" v-model=\"document\" />\r\n\r\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\r\n\r\n <c-select title=\"支付方式\" :required=\"true\" :list=\"applyPayTypeList\" v-model=\"pay_type\" pickerValueKey=\"name\"\r\n pickerValueId=\"id\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n/**\r\n * @description 申购申请\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\nimport CProductStore from './CProductStore.vue'\r\n\r\nimport { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType1',\r\n mixins: [\r\n indexMixin\r\n ],\r\n components: {\r\n CProductStore\r\n },\r\n data() {\r\n return {\r\n pageTitle: '申购申请',\r\n pageRightTitle: '我的申购',\r\n degreeList: this.$store.state.enum.degreeList,\r\n applyTypeList: this.$store.state.enum.applyTypeList,\r\n applyPayTypeList: this.$store.state.enum.applyPayTypeList,\r\n\r\n // ===> formData start\r\n way: 'create',\r\n id: '',\r\n module: 1,\r\n reason: '', // 申购事由\r\n type: '', // 采购类型\r\n document: [], // 附件\r\n images: [],\r\n total_amount: '', // 总金额\r\n pay_type: '', // 支付方式\r\n start_time: '', // 预计申购完成日期(日期)\r\n apply_goods: [],\r\n approve_user: [],\r\n copy_user: []\r\n // ===> formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type1 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.reason = data.reason\r\n this.type = data.type\r\n\r\n const mif = data.module_info\r\n\r\n this.total_amount = `${Number(mif.total_amount)}`\r\n this.pay_type = mif.pay_type\r\n\r\n if (mif.start_time) {\r\n this.start_time = mif.start_time\r\n }\r\n\r\n this.apply_goods = data.apply_goods.map(goods => ({\r\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\r\n ...goods,\r\n goods_stock: JSON.parse(goods.goods_stock)\r\n }))\r\n\r\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\r\n this.images = data.module_info.images_text.map(img => {\r\n const { name = '' } = getStaticLinkInfo(img)\r\n return {\r\n name,\r\n url: img\r\n }\r\n })\r\n }\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n // NOTE: 主动触发子组件渲染\r\n this.$nextTick(() => {\r\n this.$refs.productStoreRef.handleUpdateValues()\r\n this.$refs.imageRef.handleUpdateValues()\r\n this.$refs.documentRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n type: this.type,\r\n total_amount: this.total_amount,\r\n pay_type: this.pay_type,\r\n start_time: this.start_time,\r\n apply_goods: this.apply_goods,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let images = this.images\r\n if (Array.isArray(images) && images.length) {\r\n templateObj.images = images.map(image => image.url).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n\r\n validate(data) {\r\n let mapTxt = {\r\n 'reason': '申购事由',\r\n 'type': '采购类型',\r\n 'apply_goods': '申购明细',\r\n 'total_amount': '总金额',\r\n 'pay_type': '支付方式'\r\n }\r\n let requiredKey = [\r\n 'reason',\r\n 'type',\r\n // 'apply_goods',\r\n 'total_amount',\r\n 'pay_type'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n }, (data, hasEmpty, hasKey) => {\r\n // 判断当type == 1 市内出差时。 判断是否出境\r\n if (data.type == 1 && !(Array.isArray(data.apply_goods) && data.apply_goods.length)) {\r\n hasEmpty = true\r\n hasKey = 'apply_goods'\r\n }\r\n return [hasEmpty, hasKey]\r\n })\r\n },\r\n\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n },\r\n\r\n watch: {\r\n apply_goods: {\r\n handler(val) {\r\n // 非编辑时可以变更\r\n // !this.$route.query.edit\r\n if (Array.isArray(val) && val.length && this.type == 1) {\r\n let sum = 0\r\n for (const item of val) {\r\n let currentItem = 0\r\n sum += item.goods_stock.reduce((accumulator, cur) => (accumulator + (Number(cur.price) * Number(cur.stock))), currentItem)\r\n }\r\n this.total_amount = `${sum}`\r\n }\r\n },\r\n deep: true\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!./IndexType1.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!./IndexType1.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType1.vue?vue&type=template&id=6f8d46b2\"\nimport script from \"./IndexType1.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType1.vue?vue&type=script&lang=js\"\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 null,\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:\"type6-container\"},[_c('c-select',{attrs:{\"title\":\"呈批类型\",\"required\":true,\"list\":_vm.offerList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),_c('c-input',{attrs:{\"title\":\"发文字号\",\"required\":true},model:{value:(_vm.word_size),callback:function ($$v) {_vm.word_size=$$v},expression:\"word_size\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"印制份数\",\"input-type\":\"number\"},model:{value:(_vm.number),callback:function ($$v) {_vm.number=$$v},expression:\"number\"}}),_c('c-input',{attrs:{\"title\":\"申请标题\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-input',{attrs:{\"title\":\"申请内容\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-files',{ref:\"fileRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <c-select title=\"呈批类型\" :required=\"true\" v-model=\"type\" :list=\"offerList\" pickerValueKey=\"name\" pickerValueId=\"id\" />\r\n\r\n <c-input title=\"发文字号\" :required=\"true\" v-model=\"word_size\" />\r\n\r\n <c-select title=\"缓急程度\" :required=\"true\" v-model=\"desc\" :list=\"degreeList\" pickerValueKey=\"name\"\r\n pickerValueId=\"id\" />\r\n\r\n <c-input title=\"印制份数\" input-type=\"number\" v-model=\"number\" />\r\n\r\n <c-input title=\"申请标题\" :required=\"true\" v-model=\"reason\" />\r\n\r\n <c-input title=\"申请内容\" input-type=\"textarea\" v-model=\"remark\" />\r\n\r\n <c-files ref=\"fileRef\" v-model=\"document\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n/**\r\n * @description 呈批申请\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\n// import { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType2',\r\n mixins: [\r\n indexMixin\r\n ],\r\n data: () => ({\r\n pageTitle: '呈批申请',\r\n pageRightTitle: '我的呈批',\r\n degreeList: [],\r\n offerList: [],\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 2,\r\n reason: '', // 申请标题\r\n type: '', // 呈批类型\r\n desc: '', // 缓急程度\r\n remark: '', // 申请内容\r\n word_size: '', // 发文字号\r\n number: '', // 印制份数\r\n document: [], // 附件\r\n\r\n approve_user: [],\r\n copy_user: []\r\n // formData end\r\n }),\r\n created() {\r\n // SetList\r\n this.degreeList = this.$store.state.enum.degreeList\r\n this.offerList = this.$store.state.enum.offerTypeList\r\n\r\n this.getCommonFlowPathData()\r\n },\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n const mif = data.module_info\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n this.reason = mif.reason\r\n this.type = mif.type\r\n this.desc = mif.desc\r\n this.remark = mif.remark\r\n this.word_size = mif.word_size\r\n this.number = mif.number\r\n\r\n // NOTE: 主动触发子组件渲染\r\n this.$nextTick(() => {\r\n this.$refs.fileRef.handleUpdateValues()\r\n })\r\n },\r\n\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n type: this.type,\r\n desc: this.desc,\r\n remark: this.remark,\r\n word_size: this.word_size,\r\n number: this.number,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let documents = this.document\r\n\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n\r\n validate(data) {\r\n let mapTxt = {\r\n 'type': '呈批类型',\r\n 'word_size': '发文字号',\r\n 'desc': '缓急程度',\r\n 'reason': '申请标题'\r\n }\r\n let requiredKey = [\r\n 'type',\r\n 'word_size',\r\n 'desc',\r\n 'reason'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it2, __post__', e);\r\n }\r\n },\r\n },\r\n}\r\n\r\n</script>\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!./IndexType2.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!./IndexType2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType2.vue?vue&type=template&id=48105b7e\"\nimport script from \"./IndexType2.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType2.vue?vue&type=script&lang=js\"\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 null,\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:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"采购审批单\",\"value\":_vm.selOrd_text,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":_vm.handleClickSelOrdRow,\"clear\":_vm.handleCloseSelOrd}}),_c('c-product-store',{ref:\"cproductstoreRef\",attrs:{\"type\":\"3\",\"disabled\":_vm.flag === 'approve'},model:{value:(_vm.stock_goods),callback:function ($$v) {_vm.stock_goods=$$v},expression:\"stock_goods\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-input',{attrs:{\"title\":\"其他补充说明\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <c-select-imitate title=\"采购审批单\" :value=\"selOrd_text\" @click=\"handleClickSelOrdRow\" @clear=\"handleCloseSelOrd\"\r\n :hide-remove=\"flag === 'approve'\" />\r\n\r\n <c-product-store ref=\"cproductstoreRef\" type=\"3\" v-model=\"stock_goods\" :disabled=\"flag === 'approve'\" />\r\n\r\n <c-files ref=\"documentRef\" v-model=\"document\" />\r\n\r\n <c-files ref=\"imageRef\" v-model=\"images\" ctype=\"images\" />\r\n\r\n <c-input title=\"其他补充说明\" input-type=\"textarea\" v-model=\"remark\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/**\r\n * @description 入库申请 页面\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\nimport CProductStore from './CProductStore.vue'\r\n\r\nimport vueBus from '@/utils/vueBus'\r\n\r\nimport { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType3',\r\n mixins: [\r\n indexMixin\r\n ],\r\n components: {\r\n CProductStore\r\n },\r\n computed: {\r\n selOrd_text() {\r\n if (this.selOrd_arrs.length) return '已设置'\r\n return ''\r\n },\r\n apply_id() {\r\n let arrs = this.selOrd_arrs\r\n if (!arrs.length) return 0\r\n return arrs.map(item => (item.id)).join(',')\r\n },\r\n },\r\n data() {\r\n return {\r\n pageTitle: '入库申请',\r\n pageRightTitle: '我的入库',\r\n degreeList: this.$store.state.enum.degreeList,\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 3,\r\n document: [], // 附件\r\n images: [],\r\n remark: '', // 其他补充说明\r\n\r\n // selOrd: '', // 关联审批单\r\n stock_goods: [], // 入库明细\r\n\r\n approve_user: [],\r\n copy_user: [],\r\n // formData end\r\n selOrd_arrs: [],\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n vueBus.$on('listenApprovalFormList', this.handleApprovalFormList)\r\n },\r\n\r\n methods: {\r\n // 监听 `vueBus.$on` `listenApprovalFormList`\r\n handleApprovalFormList(arrs, flag = 1) {\r\n // NOTE: 新增商品时 需要定义一个 `__id__` 字段\r\n\r\n arrs = arrs.map((item, idx) => ({\r\n ...item,\r\n flag,\r\n __id__: `${Date.now()}-${idx}`\r\n }))\r\n\r\n this.selOrd_arrs = [...arrs]\r\n\r\n this.$nextTick(() => {\r\n arrs.forEach(item => {\r\n item.apply_goods.forEach(goods => {\r\n this.$refs.cproductstoreRef.handleAddOrUpdateData({\r\n ...goods,\r\n __flag_x__: 'approve-form',\r\n __flag_id__: item.__id__\r\n })\r\n })\r\n })\r\n })\r\n },\r\n\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type3 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n\r\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\r\n this.images = data.module_info.images_text.map(img => {\r\n const { name = '' } = getStaticLinkInfo(img)\r\n return {\r\n name,\r\n url: img\r\n }\r\n })\r\n }\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n\r\n this.remark = data.module_info.remark\r\n\r\n let goods = data.stock_goods.map(goods => ({\r\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\r\n ...goods,\r\n goods_stock: JSON.parse(goods.goods_stock)\r\n })) || []\r\n\r\n this.stock_goods = goods\r\n\r\n // if (data.apply_id !== 0 && data.apply_id) {\r\n if (data.apply) {\r\n // let ids = data.apply_id.split(',')\r\n // if (ids.length) {\r\n // this.selOrd_arrs = ids.map(id => ({\r\n // id\r\n // }))\r\n // }\r\n this.selOrd_arrs = {\r\n id: data.apply.order_no\r\n }\r\n }\r\n\r\n // NOTE: 主动触发子组件渲染\r\n this.$nextTick(() => {\r\n this.$refs.imageRef.handleUpdateValues()\r\n this.$refs.documentRef.handleUpdateValues()\r\n this.$refs.cproductstoreRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n apply_id: this.apply_id,\r\n remark: this.remark,\r\n stock_goods: this.stock_goods,\r\n\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let images = this.images\r\n\r\n if (Array.isArray(images) && images.length) {\r\n templateObj.images = images.map(image => image.url).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'stock_goods': '入库明细'\r\n }\r\n let requiredKey = [\r\n 'stock_goods'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n\r\n handleClickSelOrdRow() {\r\n // NOTE: 审批人不可修改\r\n if (this.flag === 'approve') return\r\n let query = {}\r\n if (this.apply_id) {\r\n query.sel = this.apply_id\r\n }\r\n this.$router.push({\r\n name: 'CApprovalForm',\r\n query\r\n })\r\n },\r\n handleCloseSelOrd() {\r\n try {\r\n\r\n let stock_goods = [...this.stock_goods]\r\n let selOldIds = this.selOrd_arrs.map(order => (order.__id__ || order.id))\r\n let tempStockGoods = []\r\n\r\n stock_goods.forEach(good => {\r\n if (!selOldIds.includes(good.__flag_id__)) tempStockGoods.push(good)\r\n })\r\n\r\n this.stock_goods = [...tempStockGoods]\r\n this.$forceUpdate()\r\n this.$nextTick(() => {\r\n this.selOrd_arrs = []\r\n this.$refs.cproductstoreRef.handleUpdateValues()\r\n })\r\n } catch (error) {\r\n console.log('%c handleCloseSelOrd >>>', 'background: blue; color: #fff', error);\r\n }\r\n },\r\n\r\n // NOTE: 根据arrs 更新 采购单\r\n __about_selarrs__(arrs) {\r\n let targetArrs = [...this.selOrd_arrs]\r\n let targetIds = targetArrs.map(item => (item.__id__ || item.id))\r\n\r\n let stockGoodsIds = arrs.filter(item => (item.__flag_x__ === 'approve-form')).map(item => (item.__flag_id__))\r\n let xmIds = [...new Set(stockGoodsIds)]\r\n\r\n if (xmIds.length) {\r\n xmIds.forEach(xmId => {\r\n if (!targetIds.includes(xmId)) { // NOTE: 说明当前采购单没用了\r\n let idx = targetIds.findIndex(id => id == xmId)\r\n if (idx >= 0) {\r\n targetArrs.splice(idx, 1)\r\n }\r\n }\r\n })\r\n } else {\r\n targetArrs = []\r\n }\r\n\r\n this.selOrd_arrs = [...targetArrs]\r\n\r\n this.$forceUpdate()\r\n }\r\n },\r\n\r\n beforeDestroy() {\r\n vueBus.$off('listenApprovalFormList', this.handleApprovalFormList)\r\n },\r\n watch: {\r\n stock_goods: {\r\n handler(arrs, oldArrs) {\r\n // NOTE: 监听入库明细.操作采购单参数\r\n if (arrs.length && this.selOrd_arrs.length) {\r\n this.__about_selarrs__(oldArrs)\r\n } else this.selOrd_arrs = []\r\n },\r\n deep: true\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!./IndexType3.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!./IndexType3.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType3.vue?vue&type=template&id=bdb7430e\"\nimport script from \"./IndexType3.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType3.vue?vue&type=script&lang=js\"\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 null,\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:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"物品用途\"},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-product-store',{ref:\"cproductstoreRef\",attrs:{\"type\":\"4\"},model:{value:(_vm.use_goods),callback:function ($$v) {_vm.use_goods=$$v},expression:\"use_goods\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-input',{attrs:{\"title\":\"其他补充说明\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <c-input title=\"物品用途\" v-model=\"reason\" />\r\n\r\n <c-product-store ref=\"cproductstoreRef\" type=\"4\" v-model=\"use_goods\" />\r\n\r\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-input title=\"其他补充说明\" input-type=\"textarea\" v-model=\"remark\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 领用申请页面\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\nimport CProductStore from './CProductStore.vue'\r\n\r\n// import { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType4',\r\n mixins: [\r\n indexMixin\r\n ],\r\n components: {\r\n CProductStore\r\n },\r\n data() {\r\n return {\r\n pageTitle: '领用申请',\r\n pageRightTitle: '我的领用',\r\n degreeList: this.$store.state.enum.degreeList,\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 4,\r\n reason: '', // 物品用途\r\n document: [], // 附件\r\n remark: '', // 补充说明\r\n\r\n use_goods: [], // 明细\r\n\r\n approve_user: [],\r\n copy_user: []\r\n // formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n\r\n const mif = data.module_info\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n this.reason = mif.reason\r\n this.remark = mif.remark\r\n\r\n this.use_goods = data.use_goods.map(goods => ({\r\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\r\n ...goods,\r\n goods_stock: JSON.parse(goods.goods_stock)\r\n })) || []\r\n\r\n this.$nextTick(() => {\r\n this.$refs.fileRef.handleUpdateValues()\r\n this.$refs.cproductstoreRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n remark: this.remark,\r\n use_goods: this.use_goods,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n // document\r\n if (this.document.length) {\r\n templateObj.document = this.document.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'use_goods': '领用明细'\r\n }\r\n let requiredKey = [\r\n 'use_goods'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\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!./IndexType4.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!./IndexType4.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType4.vue?vue&type=template&id=b36e3818&scoped=true\"\nimport script from \"./IndexType4.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType4.vue?vue&type=script&lang=js\"\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 \"b36e3818\",\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:\"type5-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.isApprove},on:{\"click\":function($event){_vm.flag !== 'approve' ? _vm.handleEditApplyofUser() : null},\"clear\":_vm.handleRemoveApplyUser}}),_c('c-input',{attrs:{\"title\":\"填写事由\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('peers',{model:{value:(_vm.peer_user),callback:function ($$v) {_vm.peer_user=$$v},expression:\"peer_user\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"出差开始时间\",\"required\":true,\"value\":_vm.start_time,\"hide-remove\":_vm.isApprove}}):_c('c-date',{attrs:{\"title\":\"出差开始时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"出差结束时间\",\"required\":true,\"value\":_vm.end_time,\"hide-remove\":_vm.isApprove}}):_c('c-date',{attrs:{\"title\":\"出差结束时间\",\"required\":true},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"类型\",\"required\":true,\"value\":_vm.getEvectionTypeList(_vm.type),\"hide-remove\":_vm.isApprove}}):_c('c-select',{attrs:{\"title\":\"类型\",\"required\":true,\"list\":_vm.awayArr,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.type == 1)?_c('c-switch',{attrs:{\"title\":\"是否跨关内关外\",\"required\":true,\"activeValue\":1,\"inactiveValue\":0},model:{value:(_vm.is_who),callback:function ($$v) {_vm.is_who=$$v},expression:\"is_who\"}}):_vm._e(),_c('c-input',{attrs:{\"title\":'预算金额',\"required\":Boolean(_vm.is_who),\"input-type\":\"textarea\",\"placeholder\":\"请输入预算金额\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"peers-info-container\"},[_c('div',{staticClass:\"peers__header flex flex-row flex-row-aic\"},[_c('span',{staticClass:\"left-title\"},[_vm._v(\"同行人员\")]),_c('span',{staticClass:\"right-addd\",on:{\"click\":_vm.handleAddPeerData}},[_vm._v(\"添加人员\")])]),(!_vm.peerList.length)?[_c('div',{staticClass:\"peers__emptybox\"},[_vm._v(\" 还未添加同行人员 \")])]:[_c('div',{staticClass:\"peers__mainlist\"},_vm._l((_vm.peersListCom),function(item,idx){return _c('div',{key:idx,staticClass:\"peers__row\"},[_c('div',{staticClass:\"peers__row__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"peers__row__header__left\"},[_c('span',[_vm._v(_vm._s(_vm.InsideOutMap[item.xtype]))]),_c('span',[_vm._v(_vm._s(_vm._f(\"filterDepText\")(item)))])]),_c('div',{staticClass:\"operate\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.xtype === 'out'),expression:\"item.xtype === 'out'\"}],staticClass:\"update\",on:{\"click\":function($event){return _vm.handleUpdateRow(item, idx)}}},[_vm._v(\"更新\")]),_c('span',{staticClass:\"remove\",on:{\"click\":function($event){return _vm.handleRemoveRow(item, idx)}}},[_vm._v(\"删除\")])])]),_c('div',{staticClass:\"peers__row__foot\"},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(item.name))])])])}),0),(_vm.peerList.length > 2)?_c('div',{staticClass:\"peers__more\"},[_c('span',{on:{\"click\":_vm.handleShowMore}},[_vm._v(_vm._s(_vm.isShowMore ? '收起' : '展开'))]),(_vm.isShowMore)?_c('van-icon',{attrs:{\"size\":14,\"name\":\"arrow-up\"},on:{\"click\":_vm.handleShowMore}}):_c('van-icon',{attrs:{\"size\":14,\"name\":\"arrow-down\"},on:{\"click\":_vm.handleShowMore}})],1):_vm._e()],_c('van-action-sheet',{attrs:{\"actions\":_vm.actions,\"cancel-text\":\"取消\",\"close-on-click-action\":\"\"},on:{\"select\":_vm.handleActionSheetSelected},model:{value:(_vm.actionSheetVisibility),callback:function ($$v) {_vm.actionSheetVisibility=$$v},expression:\"actionSheetVisibility\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"peers-info-container\">\r\n <div class=\"peers__header flex flex-row flex-row-aic\">\r\n <span class=\"left-title\">同行人员</span>\r\n <span class=\"right-addd\" @click=\"handleAddPeerData\">添加人员</span>\r\n </div>\r\n <template v-if=\"!peerList.length\">\r\n <div class=\"peers__emptybox\">\r\n 还未添加同行人员\r\n </div>\r\n </template>\r\n <template v-else>\r\n <!-- 同行人员渲染列表 -->\r\n <div class=\"peers__mainlist\">\r\n <div class=\"peers__row\" v-for=\"(item, idx) in peersListCom\" :key=\"idx\">\r\n <div class=\"peers__row__header flex flex-row flex-row-aic\">\r\n <div class=\"peers__row__header__left\">\r\n <span>{{ InsideOutMap[item.xtype] }}</span>\r\n <span>{{ item | filterDepText }}</span>\r\n </div>\r\n <div class=\"operate\">\r\n <!-- 只有外部人员可以修改。 -->\r\n <span v-show=\"item.xtype === 'out'\" @click=\"handleUpdateRow(item, idx)\" class=\"update\">更新</span>\r\n <span @click=\"handleRemoveRow(item, idx)\" class=\"remove\">删除</span>\r\n </div>\r\n </div>\r\n <div class=\"peers__row__foot\">\r\n <span class=\"name\">{{ item.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"peers__more\" v-if=\"peerList.length > 2\">\r\n <span @click=\"handleShowMore\">{{ isShowMore ? '收起' : '展开' }}</span>\r\n <van-icon @click=\"handleShowMore\" v-if=\"isShowMore\" :size=\"14\" name=\"arrow-up\" />\r\n <van-icon @click=\"handleShowMore\" v-else :size=\"14\" name=\"arrow-down\" />\r\n </div>\r\n </template>\r\n\r\n <van-action-sheet v-model=\"actionSheetVisibility\" :actions=\"actions\" @select=\"handleActionSheetSelected\"\r\n cancel-text=\"取消\" close-on-click-action />\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.peers {\r\n &__header {\r\n justify-content: space-between;\r\n padding: 4px 12px;\r\n box-sizing: border-box;\r\n\r\n .left-title {\r\n font-size: @font-size-third;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 24px;\r\n }\r\n\r\n .right-addd {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: @link-color;\r\n line-height: 24px;\r\n }\r\n }\r\n\r\n &__emptybox {\r\n padding: 15px 12px;\r\n background-color: #fff;\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 20px;\r\n }\r\n\r\n &__mainlist {\r\n padding: 8px 0;\r\n background-color: @white;\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.4);\r\n }\r\n\r\n &__row {\r\n padding: 8px 12px 0;\r\n\r\n &__header {\r\n justify-content: space-between;\r\n\r\n &__left {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 20px;\r\n }\r\n\r\n .operate {\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: #3290C4;\r\n line-height: 20px;\r\n\r\n .remove {\r\n color: #F45642;\r\n padding-left: 10px;\r\n }\r\n }\r\n }\r\n\r\n &__foot {\r\n border-bottom: 1px solid rgba(151, 151, 151, 0.4);\r\n\r\n .name {\r\n font-size: 16px;\r\n font-weight: 400;\r\n color: #191A1E;\r\n line-height: 30px;\r\n }\r\n }\r\n\r\n &:last-child {\r\n .peers__row__foot {\r\n border-bottom: initial;\r\n }\r\n }\r\n }\r\n\r\n &__more {\r\n padding: 12px 0;\r\n text-align: center;\r\n background-color: @white;\r\n font-size: 14px;\r\n font-weight: 400;\r\n color: @link-color;\r\n line-height: 16px;\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n/**\r\n * @description 同行人员 组件\r\n */\r\n\r\nimport bus from '@/utils/vueBus'\r\nimport { dingtalkComplexPicker } from '@/utils/dingtalk'\r\nimport { Dialog } from 'vant'\r\n\r\nconst InsideOutMap = {\r\n 'inside': '内部人员',\r\n 'out': '外部人员'\r\n}\r\n\r\nexport default {\r\n name: 'Peers',\r\n computed: {\r\n peersListCom() {\r\n if (this.isShowMore) return [...this.peerList]\r\n return [...this.peerList.slice(0, 2)]\r\n }\r\n },\r\n props: {\r\n value: {\r\n type: Array,\r\n require: true\r\n }\r\n },\r\n created() {\r\n bus.$on('addOutPeersEvent', this.__listenChangePeersEvent__)\r\n },\r\n data() {\r\n return {\r\n InsideOutMap,\r\n isShowMore: true,\r\n actionSheetVisibility: false,\r\n actions: [{ name: '内部人员', type: 'in' }, { name: '外部人员', type: 'out' }],\r\n peerList: [], // 同行人员数据\r\n // example\r\n // { name, orgUserName, nick, avatar, empId, corpId, selectDeptId, selectDeptName }\r\n // {\r\n // xtype: [inside, out], // 内部人员/外部人员\r\n // name: '刘北方',\r\n // \r\n // selectDeptName: '教师' // 内部部门\r\n // remark: '其他学校教授' // 外部备注\r\n // }\r\n }\r\n },\r\n mounted() {\r\n this.renderValue()\r\n },\r\n methods: {\r\n // NOTE: 监听修改(新增)同行人员的 event\r\n // 调用外部人员[增加/修改]人员增加\r\n __listenChangePeersEvent__(data) {\r\n this.__handle_out_peers(data)\r\n },\r\n\r\n // 可以外部调用次方法用于更新value字段\r\n renderValue() {\r\n if (Array.isArray(this.value) && this.value.length) {\r\n this.peerList = [...this.value].map(user => {\r\n let temps = {\r\n ...user,\r\n xtype: user.is_who ? 'out' : 'inside',\r\n }\r\n user[user.is_who ? 'remark' : 'selectDeptName'] = user.desc\r\n return temps\r\n })\r\n }\r\n },\r\n async handleActionSheetSelected(item) {\r\n const { type } = item\r\n if (type === 'in') { // 内部人员\r\n try {\r\n const data = await dingtalkComplexPicker({\r\n title: '请选择内部人员',\r\n multiple: false,\r\n maxUsers: 1,\r\n limitTips: '单次只可选择1人',\r\n\r\n // 以选中的用户\r\n pickedUsers: this.peerList.filter(user => (user.xtype === 'inside')).map(user => (user.emplId)),\r\n\r\n responseUserOnly: false,\r\n startWithDepartmentId: 0,\r\n deptId: -1,\r\n })\r\n this.__handle_in_press__(data)\r\n } catch (e) {\r\n console.log('err', e);\r\n }\r\n } else if (type === 'out') {\r\n this.$router.push({\r\n name: 'PeersOutForm'\r\n })\r\n }\r\n },\r\n\r\n // NOTE: 展开/收齐更多\r\n handleShowMore() {\r\n this.isShowMore = !this.isShowMore\r\n },\r\n\r\n // 更新当前人员信息\r\n handleUpdateRow(row, idx) {\r\n const { xtype } = row\r\n console.log('handleUpdateRow', row, idx);\r\n if (xtype === 'out') {\r\n this.$router.push({\r\n name: 'PeersOutForm',\r\n query: {\r\n idx: row.idx,\r\n name: row.name,\r\n remark: row.remark,\r\n isUpdate: '1'\r\n }\r\n })\r\n }\r\n },\r\n\r\n // 删除当前人员\r\n handleRemoveRow(row, idx) {\r\n Dialog.confirm({\r\n title: '温馨提示',\r\n message: `是否删除同行人员“${row.name}”`,\r\n }).then(() => {\r\n this.peerList.splice(idx, 1)\r\n })\r\n },\r\n\r\n // NOTE: 选择添加内部/外部人员\r\n handleAddPeerData() {\r\n this.actionSheetVisibility = true\r\n },\r\n\r\n // 新增/更新外部人员\r\n __handle_out_peers(data) {\r\n if (data.isUpdate == '1') { // Update\r\n let fIdx = this.peerList.findIndex(item => item.idx === data.idx)\r\n this.peerList.splice(fIdx, 1, {\r\n ...this.peerList[fIdx],\r\n ...data\r\n })\r\n } else {\r\n this.peerList.push({\r\n idx: `${Date.now()}`,\r\n xtype: 'out',\r\n ...data\r\n })\r\n }\r\n },\r\n\r\n // 更新内部人员\r\n __handle_in_press__(data) {\r\n console.log('handle_in_press', data);\r\n const { users } = data\r\n users.forEach(item => {\r\n // 判断empId是否存在。 存在意味着更新\r\n let hasEmpIdIdx = this.peerList.findIndex(user => (user.emplId == item.emplId))\r\n if (hasEmpIdIdx >= 0) { // Update\r\n this.peerList[hasEmpIdIdx] = {\r\n ...this.peerList[hasEmpIdIdx],\r\n ...item\r\n }\r\n } else {\r\n this.peerList.push({\r\n idx: Date.now(),\r\n xtype: 'inside',\r\n ...item,\r\n })\r\n }\r\n })\r\n this.$emit('input', this.peerList)\r\n }\r\n },\r\n beforeDestroy() {\r\n bus.$off('__listenChangePeersEvent__', this.__listenChangePeersEvent__)\r\n },\r\n filters: {\r\n // 根据 `item` 内容展示部门或外部人员\r\n filterDepText(item) {\r\n const { xtype } = item\r\n if (xtype === 'inside' && item.selectDeptName) {\r\n return `(${item.selectDeptName})`\r\n } else if (xtype === 'out' && item.remark) {\r\n return `(${item.remark})`\r\n }\r\n return ''\r\n }\r\n },\r\n watch: {\r\n peerList: {\r\n handler(vals) {\r\n if (vals.length) {\r\n this.$emit('input', vals)\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!./Peers.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!./Peers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Peers.vue?vue&type=template&id=3493da67&scoped=true\"\nimport script from \"./Peers.vue?vue&type=script&lang=js\"\nexport * from \"./Peers.vue?vue&type=script&lang=js\"\nimport style0 from \"./Peers.vue?vue&type=style&index=0&id=3493da67&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 \"3493da67\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"type5-container\">\r\n <c-select-imitate\r\n title=\"申请人\"\r\n :value=\"apply_user_name\"\r\n @click=\"flag !== 'approve' ? handleEditApplyofUser() : null\"\r\n :hide-remove=\"isApprove\"\r\n @clear=\"handleRemoveApplyUser\"\r\n />\r\n\r\n <c-input title=\"填写事由\" :required=\"true\" v-model=\"reason\" />\r\n\r\n <peers v-model=\"peer_user\" />\r\n\r\n <c-select-imitate\r\n v-if=\"isApprove\"\r\n title=\"出差开始时间\"\r\n :required=\"true\"\r\n :value=\"start_time\"\r\n :hide-remove=\"isApprove\"\r\n />\r\n <c-date v-else title=\"出差开始时间\" :required=\"true\" v-model=\"start_time\" />\r\n\r\n <c-select-imitate\r\n v-if=\"isApprove\"\r\n title=\"出差结束时间\"\r\n :required=\"true\"\r\n :value=\"end_time\"\r\n :hide-remove=\"isApprove\"\r\n />\r\n <c-date v-else title=\"出差结束时间\" :required=\"true\" v-model=\"end_time\" />\r\n\r\n <c-files ref=\"documentRef\" v-model=\"document\" />\r\n\r\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\r\n\r\n <c-select-imitate\r\n v-if=\"isApprove\"\r\n title=\"类型\"\r\n :required=\"true\"\r\n :value=\"getEvectionTypeList(type)\"\r\n :hide-remove=\"isApprove\"\r\n />\r\n <c-select\r\n v-else\r\n title=\"类型\"\r\n :required=\"true\"\r\n :list=\"awayArr\"\r\n pickerValueKey=\"name\"\r\n pickerValueId=\"id\"\r\n v-model=\"type\"\r\n />\r\n\r\n <c-switch\r\n v-if=\"type == 1\"\r\n title=\"是否跨关内关外\"\r\n :required=\"true\"\r\n v-model=\"is_who\"\r\n :activeValue=\"1\"\r\n :inactiveValue=\"0\"\r\n />\r\n\r\n <!--\r\n NOTE: 与产品沟通。 备注去掉,只留预算\r\n <c-input :title=\"is_who ? '预算金额' : '备注'\" :required=\"Boolean(is_who)\" v-model=\"remark\" input-type=\"textarea\"\r\n :placeholder=\"is_who ? '请输入预算金额' : '请输入往返主要方式、预算金额'\" /> -->\r\n\r\n <c-input\r\n :title=\"'预算金额'\"\r\n :required=\"Boolean(is_who)\"\r\n v-model=\"remark\"\r\n input-type=\"textarea\"\r\n placeholder=\"请输入预算金额\"\r\n />\r\n\r\n <c-flow-path\r\n :approve=\"approvePeople\"\r\n :copy.sync=\"copyPeople\"\r\n :isAllowCopy=\"isCopy\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n\r\n</style>\r\n\r\n<script>\r\n/**\r\n * @description 出差申请页面\r\n */\r\nimport { postCreateInfo } from \"@/api/approveinfo\";\r\nimport Peers from \"./Peers.vue\";\r\nimport indexMixin from \"../indexMixins\";\r\n\r\nimport { dingtalkComplexPicker } from \"@/utils/dingtalk\";\r\n\r\nimport { getStaticLinkInfo } from \"@/utils/util\";\r\n\r\nimport { mapState, mapGetters } from \"vuex\";\r\n\r\nexport default {\r\n name: \"IndexType5\",\r\n\r\n mixins: [indexMixin],\r\n\r\n components: {\r\n Peers,\r\n },\r\n computed: {\r\n isApprove() {\r\n return this.flag === \"approve\";\r\n },\r\n ...mapState(\"user\", [\"token\", \"userinfo\"]),\r\n ...mapGetters(\"enum\", [\"getEvectionTypeList\"]),\r\n },\r\n data() {\r\n return {\r\n pageTitle: \"出差申请\",\r\n pageRightTitle: \"我的出差\",\r\n formType: 5,\r\n awayArr: this.$store.state.enum.evectionTypeList, // 出差类型\r\n\r\n // 必填字段\r\n requiredKey: [\r\n \"reason\",\r\n \"start_time\",\r\n \"end_time\",\r\n \"type\",\r\n // 是否出境需要在 type === 1 时才必传\r\n ],\r\n\r\n // formData =========\r\n way: \"create\", // create/update/edit\r\n module: 5,\r\n id: undefined, // id存在,表示编辑\r\n reason: \"\", // 申请理由\r\n start_time: \"\", // 开始时间\r\n end_time: \"\", // 结束时间\r\n type: undefined, // 市内,市外\r\n\r\n document: [], // 附件\r\n images: [], // 图片\r\n remark: \"\", // 备注\r\n is_who: 0, // 是否出境\r\n\r\n // 同行人员信息\r\n // { is_who, user_id, name, desc }\r\n peer_user: [],\r\n approve_user: \"\",\r\n copy_user: \"\",\r\n\r\n // 申请人\r\n apply_user_id: \"\",\r\n apply_user_name: \"\",\r\n // ===========================\r\n };\r\n },\r\n async created() {\r\n this.init();\r\n\r\n // NOTE: 申请人 => 默认是账号本人\r\n if (this.token) {\r\n this.apply_user_id = this.userinfo.userid;\r\n this.apply_user_name = this.userinfo.name;\r\n }\r\n },\r\n methods: {\r\n init() {\r\n this.getCommonFlowPathData();\r\n },\r\n\r\n // NOTE: 格式化编辑数据\r\n handleFormatEditData(data) {\r\n const { module_info, peerUser } = data;\r\n const { end_time, is_who, reason, remark, start_time, type } =\r\n module_info; /* eslint-disable-line */\r\n\r\n const IS_EDIT = this.flag === \"approve\";\r\n this.way = IS_EDIT ? \"edit\" : \"update\";\r\n this.id = IS_EDIT ? data.approve_id : data.id;\r\n // this.id = id\r\n this.peer_user = peerUser;\r\n this.reason = reason;\r\n this.start_time = start_time;\r\n this.end_time = end_time;\r\n this.type = type;\r\n this.remark = remark;\r\n this.is_who = is_who;\r\n\r\n if (data.apply_user) {\r\n this.apply_user_id = data.apply_user.userid;\r\n this.apply_user_name = data.apply_user.name;\r\n }\r\n\r\n if (\r\n Array.isArray(data.module_info.document_text) &&\r\n data.module_info.document_text.length\r\n ) {\r\n this.document = module_info.document_text.map((doc) => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size,\r\n }));\r\n }\r\n\r\n if (\r\n Array.isArray(data.module_info.images_text) &&\r\n data.module_info.images_text.length\r\n ) {\r\n this.images = data.module_info.images_text.map((img) => {\r\n const { name = \"\" } = getStaticLinkInfo(img);\r\n return {\r\n name,\r\n url: img,\r\n };\r\n });\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.$refs.imageRef.handleUpdateValues();\r\n this.$refs.documentRef.handleUpdateValues();\r\n });\r\n },\r\n\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__();\r\n console.log(\"format data>>>\", formData);\r\n let bol = this.validate(formData);\r\n if (bol) return;\r\n console.log(\"execute handleSubmitData\");\r\n this.__post__(formData);\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data);\r\n if (res.code === 1) {\r\n this.$toast(res.msg);\r\n if (this.flag === \"approve\") {\r\n this.$router.go(-1);\r\n } else this.__jump2apply_state__();\r\n }\r\n } catch (e) {\r\n console.log(\"it5, __post__\", e);\r\n }\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n reason: \"申请事由\",\r\n start_time: \"开始时间\",\r\n end_time: \"结束时间\",\r\n type: \"出差类型\",\r\n is_who: \"跨关内外\",\r\n };\r\n let requiredKey = [\"type\", \"start_time\", \"end_time\", \"reason\"];\r\n return this.__validtor__(\r\n {\r\n mapTxt,\r\n requiredKey,\r\n data,\r\n },\r\n (data, hasEmpty, hasKey) => {\r\n // 判断当type == 1 市内出差时。 判断是否出境\r\n if (data.type == 1 && ![\"0\", \"1\"].includes(String(data.is_who))) {\r\n hasEmpty = true;\r\n hasKey = \"is_who\";\r\n }\r\n return [hasEmpty, hasKey];\r\n }\r\n );\r\n },\r\n __format_data__() {\r\n let params = {};\r\n try {\r\n params = {\r\n way: this.way,\r\n module: 5,\r\n reason: this.reason, // 申请理由\r\n start_time: this.start_time, // 开始时间\r\n end_time: this.end_time, // 结束时间\r\n type: this.type,\r\n document: \"\", // 附件\r\n images: \"\", // 图片\r\n remark: this.remark, // 备注\r\n is_who: this.is_who,\r\n peer_user: [], // 同行人员信息\r\n approve_user: this.approvePeople\r\n .map((user) => user.userid || user.emplId)\r\n .join(\",\"),\r\n copy_user: this.copyPeople\r\n .map((user) => user.userid || user.emplId)\r\n .join(\",\"),\r\n apply_user_id: this.apply_user_id,\r\n };\r\n\r\n let images = this.images;\r\n if (Array.isArray(images) && images.length) {\r\n params.images = images.map((image) => image.url).join(\",\");\r\n }\r\n\r\n let documents = this.document;\r\n if (Array.isArray(documents) && documents.length) {\r\n params.document = documents.map((document) => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size,\r\n }));\r\n }\r\n\r\n if (Array.isArray(this.peer_user) && this.peer_user.length) {\r\n params.peer_user = this.peer_user.map((item) => ({\r\n is_who: item.xtype === \"inside\" ? 0 : 1,\r\n name: item.name,\r\n desc: item.xtype === \"inside\" ? item.selectDeptName : item.remark,\r\n user_id: item.emplId || item.user_id || \"\",\r\n }));\r\n }\r\n\r\n if (this.id) params.id = this.id;\r\n } catch (error) {\r\n console.log(\r\n \"%c IndexType5 format >>>\",\r\n \"background: blue; color: #fff\",\r\n error\r\n );\r\n }\r\n return params;\r\n },\r\n\r\n // NOTE: 跳转申请人列表页面 进行选择\r\n async handleEditApplyofUser() {\r\n try {\r\n const result = await dingtalkComplexPicker({\r\n title: \"请选择出差申请人\",\r\n multiple: false,\r\n maxUsers: 1,\r\n limitTips: \"单次只可选择1人\",\r\n responseUserOnly: true,\r\n startWithDepartmentId: 0,\r\n deptId: -1,\r\n showLabelPick: false,\r\n });\r\n let users = result.users;\r\n if (users.length) {\r\n let { name, emplId } = users[0];\r\n this.apply_user_id = emplId;\r\n this.apply_user_name = name;\r\n } else this.$toast(\"选择失败, 请重新选择\");\r\n } catch (error) {\r\n if (error.errorMessage !== \"Cancel\") {\r\n this.$toast(error.message);\r\n }\r\n }\r\n },\r\n handleRemoveApplyUser() {\r\n this.apply_user_id = \"\";\r\n this.apply_user_name = \"\";\r\n },\r\n },\r\n watch: {\r\n type: {\r\n handler(val, oldv) {\r\n if (val && val !== oldv) {\r\n this.getCommonFlowPathData({\r\n flow_item: val,\r\n });\r\n }\r\n },\r\n immediate: true,\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!./IndexType5.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!./IndexType5.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType5.vue?vue&type=template&id=e317b09c&scoped=true\"\nimport script from \"./IndexType5.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType5.vue?vue&type=script&lang=js\"\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 \"e317b09c\",\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:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":function($event){_vm.flag !== 'approve' ? _vm.handleEditApplyofUser() : null},\"clear\":_vm.handleRemoveApplyUser}}),_c('c-select',{attrs:{\"title\":\"请假类型\",\"required\":true,\"list\":_vm.askForleaveTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"请假开始时间\",\"required\":true,\"value\":_vm.start_time,\"hide-remove\":_vm.flag === 'approve'}}):_c('c-date',{attrs:{\"title\":\"请假开始时间\",\"required\":true,\"has-am\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"请假结束时间\",\"required\":true,\"value\":_vm.end_time,\"hide-remove\":_vm.flag === 'approve'}}):_c('c-date',{ref:\"cdateEndTimeRef\",attrs:{\"title\":\"请假结束时间\",\"required\":true,\"has-am\":true},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-input',{attrs:{\"title\":\"请假时长(天)\",\"placeholder\":\"自动填充请假时长\",\"disabled\":true,\"input-type\":\"number\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}}),_c('c-input',{attrs:{\"title\":\"原因\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":300},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-files',{ref:\"documentRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-input',{attrs:{\"title\":\"是否离“深”\",\"input-type\":\"textarea\",\"placeholder\":\"需写清目的地(到街道)、是否涉疫、出行方式及班次\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{ref:\"cFlowPathRef\",attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n\r\n <c-select-imitate title=\"申请人\" :value=\"apply_user_name\" @click=\"flag !== 'approve' ? handleEditApplyofUser() : null\"\r\n :hide-remove=\"flag === 'approve'\" @clear=\"handleRemoveApplyUser\" />\r\n\r\n <c-select title=\"请假类型\" :required=\"true\" :list=\"askForleaveTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"type\" />\r\n\r\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"请假开始时间\" :required=\"true\" :value=\"start_time\"\r\n :hide-remove=\"flag === 'approve'\" />\r\n <c-date v-else title=\"请假开始时间\" :required=\"true\" :has-am=\"true\" v-model=\"start_time\" />\r\n\r\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"请假结束时间\" :required=\"true\" :value=\"end_time\"\r\n :hide-remove=\"flag === 'approve'\" />\r\n <c-date v-else ref=\"cdateEndTimeRef\" title=\"请假结束时间\" :required=\"true\" :has-am=\"true\" v-model=\"end_time\" />\r\n\r\n <c-input title=\"请假时长(天)\" placeholder=\"自动填充请假时长\" :disabled=\"true\" input-type=\"number\" v-model=\"time\" />\r\n\r\n <c-input title=\"原因\" :required=\"true\" input-type=\"textarea\" :maxlength=\"300\" v-model=\"reason\" />\r\n\r\n <c-files ref=\"documentRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\r\n\r\n <c-input title=\"是否离“深”\" input-type=\"textarea\" placeholder=\"需写清目的地(到街道)、是否涉疫、出行方式及班次\" v-model=\"remark\" />\r\n\r\n <c-flow-path ref=\"cFlowPathRef\" :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 请假申请页面\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\nimport { mapState } from 'vuex'\r\n\r\nimport { dingtalkComplexPicker } from \"@/utils/dingtalk\"\r\n\r\nimport { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType6',\r\n mixins: [\r\n indexMixin\r\n ],\r\n computed: {\r\n ...mapState(\"user\", [\r\n \"token\",\r\n \"userinfo\"\r\n ]),\r\n ...mapState(\"enum\", {\r\n \"askForleaveTypeList\": \"leaveTypeList\", // 请假类型\r\n \"timeList\": \"timeList\"\r\n })\r\n },\r\n data() {\r\n return {\r\n pageTitle: '请假申请',\r\n pageRightTitle: '我的请假',\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 6,\r\n reason: '', // 请假原因\r\n type: '', // 请假类型\r\n document: [],\r\n images: [],\r\n remark: '', // 是否离深\r\n start_time: '',\r\n end_time: '',\r\n start_am: '', // 开始时间段(上午/下午)\r\n end_am: '', // 结束时间段(上午/下午)\r\n time: '', // 请假时长\r\n approve_user: [],\r\n copy_user: [],\r\n\r\n // 申请人\r\n apply_user_id: '',\r\n apply_user_name: '',\r\n // formData end\r\n\r\n flow_item: '',\r\n }\r\n },\r\n\r\n created() {\r\n // NOTE: 判断是否有请假类型。 无请假类型router.replace到请假类型上\r\n let type = this.$route.query.asktype\r\n let edit = this.$route.query.edit == '1'\r\n if (!edit && !type) {\r\n this.$router.replace({\r\n name: 'AskForLeave'\r\n })\r\n } else this.type = type\r\n\r\n // NOTE: 申请人 => 默认是账号本人\r\n if (this.token) {\r\n this.apply_user_id = this.userinfo.userid\r\n this.apply_user_name = this.userinfo.name\r\n }\r\n\r\n this.init()\r\n },\r\n\r\n methods: {\r\n init() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n handleGetAskLeaveTykpe(type) {\r\n console.log('%c get type value >>>', 'background: blue; color: #fff', type);\r\n },\r\n\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n const { module_info } = data\r\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\r\n\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n\r\n this.reason = module_info.reason // 请假原因\r\n this.type = module_info.type // 请假类型\r\n this.remark = module_info.remark // 是否离深\r\n this.start_time = `${module_info.start_time} ${module_info.start_am}`\r\n this.end_time = `${module_info.end_time} ${module_info.end_am}`\r\n this.start_am = module_info.start_am // 开始时间段(上午/下午)\r\n this.end_am = module_info.end_am // 结束时间段(上午/下午)\r\n this.time = module_info.time // 请假时长\r\n\r\n if (data.apply_user) {\r\n this.apply_user_id = data.apply_user.userid\r\n this.apply_user_name = data.apply_user.name\r\n }\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\r\n this.images = data.module_info.images_text.map(img => {\r\n const { name = '' } = getStaticLinkInfo(img)\r\n return {\r\n name,\r\n url: img\r\n }\r\n })\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.$refs.imageRef.handleUpdateValues()\r\n this.$refs.documentRef.handleUpdateValues()\r\n })\r\n },\r\n\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n type: this.type,\r\n remark: this.remark,\r\n time: this.time,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(','),\r\n apply_user_id: this.apply_user_id\r\n }\r\n if (this.start_time) {\r\n const [date, amOrPm] = this.start_time.split(' ')\r\n templateObj.start_time = date\r\n templateObj.start_am = amOrPm\r\n }\r\n if (this.end_time) {\r\n const [date, amOrPm] = this.end_time.split(' ')\r\n templateObj.end_time = date\r\n templateObj.end_am = amOrPm\r\n }\r\n\r\n let images = this.images\r\n if (Array.isArray(images) && images.length) {\r\n templateObj.images = images.map(image => image.url).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'type': '请假类型',\r\n 'start_time': '开始时间',\r\n 'end_time': '结束时间',\r\n 'reason': '原因',\r\n }\r\n let requiredKey = [\r\n 'type',\r\n 'start_time',\r\n 'end_time',\r\n 'reason',\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n\r\n __sum_days__(start, end) {\r\n const [day, am] = start.split(' ')\r\n const [eday, eam] = end.split(' ')\r\n let snow = new Date(day)\r\n let enow = new Date(eday)\r\n let differV = enow.getTime() - snow.getTime()\r\n if (differV >= 0) {\r\n let dayLen = differV / (60 * 1000 * 60 * 24)\r\n if ((am === '上午' && eam === '上午') || (am === '下午' && eam === '下午')) {\r\n return `${dayLen += 0.5}`\r\n } else if (am === '下午' && eam === '上午') {\r\n return `${dayLen}`\r\n } else if (am === '上午' && eam === '下午') {\r\n return `${dayLen += 1}`\r\n }\r\n } else {\r\n return ''\r\n }\r\n },\r\n\r\n // NOTE: 检查时间并且查询流程数据\r\n checkTimeAndGetFlow() {\r\n let start_time = this.start_time\r\n let end_time = this.end_time\r\n\r\n if (!(start_time && end_time)) return\r\n\r\n let label = ''\r\n this.time = ''\r\n if (start_time === end_time) {\r\n label = '半天'\r\n this.time = '0.5'\r\n } else if (start_time.split(' ')[0] === end_time.split(' ')[0]) {\r\n label = '一天'\r\n this.time = '1'\r\n } else {\r\n label = '一天以上'\r\n this.time = this.__sum_days__(start_time, end_time)\r\n }\r\n let target = this.timeList.filter(timeItem => timeItem.name === label)\r\n let id = undefined\r\n if (target.length) {\r\n id = target[0].id\r\n this.flow_item = id\r\n this.getCommonFlowPathData({\r\n flow_item: id\r\n }, () => {\r\n this.$refs.cFlowPathRef.__render_a__()\r\n this.$refs.cFlowPathRef.__render_c__()\r\n })\r\n }\r\n },\r\n\r\n // NOTE: 跳转申请人列表页面 进行选择\r\n async handleEditApplyofUser() {\r\n try {\r\n const result = await dingtalkComplexPicker({\r\n title: '请选择请假申请人',\r\n multiple: false,\r\n maxUsers: 1,\r\n limitTips: '单次只可选择1人',\r\n responseUserOnly: true,\r\n startWithDepartmentId: 0,\r\n deptId: -1,\r\n showLabelPick: false\r\n })\r\n let users = result.users\r\n if (users.length) {\r\n let { name, emplId } = users[0]\r\n this.apply_user_id = emplId\r\n this.apply_user_name = name\r\n } else this.$toast('选择失败, 请重新选择')\r\n } catch (error) {\r\n if (error.errorMessage !== 'Cancel') {\r\n this.$toast(error.message)\r\n }\r\n }\r\n },\r\n handleRemoveApplyUser() {\r\n this.apply_user_id = ''\r\n this.apply_user_name = ''\r\n }\r\n },\r\n\r\n watch: {\r\n // Useless\r\n // type(val, valo) {\r\n // if (val && val !== valo) {\r\n // this.getCommonFlowPathData({\r\n // flow_item: val\r\n // }, () => {\r\n // this.$refs.cFlowPathRef.__render_a__()\r\n // this.$refs.cFlowPathRef.__render_c__()\r\n // })\r\n // }\r\n // },\r\n\r\n start_time() {\r\n this.checkTimeAndGetFlow()\r\n },\r\n end_time(val) {\r\n // NOTE: 请假日期不可小于开始时间\r\n if (this.start_time && val) {\r\n let sd = this.start_time.split(' ')[0]\r\n let ed = val.split(' ')[0]\r\n\r\n let sdt = new Date(sd).getTime()\r\n let edt = new Date(ed).getTime()\r\n if (edt < sdt) {\r\n this.$toast('请假结束时间错误!')\r\n this.end_time = ''\r\n this.$refs.cdateEndTimeRef.reset()\r\n }\r\n }\r\n this.checkTimeAndGetFlow()\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!./IndexType6.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!./IndexType6.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType6.vue?vue&type=template&id=47a04166&scoped=true\"\nimport script from \"./IndexType6.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType6.vue?vue&type=script&lang=js\"\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 \"47a04166\",\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:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":_vm.handleEditApplyofUser,\"clear\":_vm.handleRemoveApplyUser}}),_c('div',{staticClass:\"group-box\"},[_c('div',{staticClass:\"group__title\"},[_vm._v(\"用车信息\")]),_c('c-input',{attrs:{\"title\":\"出发地点\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-date',{attrs:{\"title\":\"出发时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}})],1),_c('div',{staticClass:\"group-box m-t-10\"},[_c('c-input',{attrs:{\"title\":\"到达地点\",\"required\":true},model:{value:(_vm.reach_address),callback:function ($$v) {_vm.reach_address=$$v},expression:\"reach_address\"}}),_c('c-date',{attrs:{\"title\":\"返回时间\"},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-input',{attrs:{\"title\":\"返回地点\"},model:{value:(_vm.end_address),callback:function ($$v) {_vm.end_address=$$v},expression:\"end_address\"}})],1),_c('c-files',{ref:\"documentRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n\r\n <c-select-imitate title=\"申请人\" :value=\"apply_user_name\" @click=\"handleEditApplyofUser\"\r\n :hide-remove=\"flag === 'approve'\" @clear=\"handleRemoveApplyUser\" />\r\n\r\n <div class=\"group-box\">\r\n <div class=\"group__title\">用车信息</div>\r\n <c-input title=\"出发地点\" :required=\"true\" v-model=\"reason\" />\r\n <c-date title=\"出发时间\" :required=\"true\" v-model=\"start_time\" />\r\n </div>\r\n\r\n <div class=\"group-box m-t-10\">\r\n <c-input title=\"到达地点\" :required=\"true\" v-model=\"reach_address\" />\r\n <c-date title=\"返回时间\" v-model=\"end_time\" />\r\n <c-input title=\"返回地点\" v-model=\"end_address\" />\r\n </div>\r\n\r\n <c-files ref=\"documentRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 用车申请页面\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\nimport { mapState } from 'vuex'\r\n\r\nimport { dingtalkComplexPicker } from \"@/utils/dingtalk\"\r\n\r\nimport { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType7',\r\n mixins: [\r\n indexMixin\r\n ],\r\n computed: {\r\n ...mapState(\"user\", [\r\n 'token',\r\n 'userinfo'\r\n ])\r\n },\r\n data() {\r\n return {\r\n pageTitle: '用车申请',\r\n pageRightTitle: '我的用车',\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 7,\r\n reason: '', // 出发地点\r\n start_time: '', // 出发时间\r\n end_time: '', // 返回时间\r\n document: [],\r\n images: [],\r\n reach_address: '', // 到达地点\r\n end_address: '', // 返回地点\r\n approve_user: [],\r\n copy_user: [],\r\n // 申请人\r\n apply_user_id: '',\r\n apply_user_name: '',\r\n // formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n\r\n // NOTE: 申请人 => 默认是账号本人\r\n if (this.token) {\r\n this.apply_user_id = this.userinfo.userid\r\n this.apply_user_name = this.userinfo.name\r\n }\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n const { module_info } = data\r\n\r\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n\r\n this.reason = module_info.reason // 出发地点\r\n this.start_time = module_info.start_time // 出发时间\r\n this.end_time = module_info.end_time // 返回时间\r\n // this.start_time = `${module_info.start_time} ${module_info.start_am}`\r\n // this.end_time = `${module_info.end_time} ${module_info.end_am}`\r\n\r\n this.reach_address = module_info.reach_address // 到达地点\r\n this.end_address = module_info.end_address // 返回地点\r\n\r\n if (data.apply_user) {\r\n this.apply_user_id = data.apply_user.userid\r\n this.apply_user_name = data.apply_user.name\r\n }\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\r\n this.images = data.module_info.images_text.map(img => {\r\n const { name = '' } = getStaticLinkInfo(img)\r\n return {\r\n name,\r\n url: img\r\n }\r\n })\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.$refs.imageRef.handleUpdateValues()\r\n this.$refs.documentRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n reach_address: this.reach_address,\r\n end_address: this.end_address,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(','),\r\n apply_user_id: this.apply_user_id,\r\n start_time: this.start_time,\r\n end_time: this.end_time\r\n }\r\n\r\n // Useless.\r\n // if (this.start_time) {\r\n // const [date, amOrPm] = this.start_time.split(' ')\r\n // templateObj.start_time = date\r\n // templateObj.start_am = amOrPm\r\n // }\r\n // if (this.end_time) {\r\n // const [date, amOrPm] = this.end_time.split(' ')\r\n // templateObj.end_time = date\r\n // templateObj.end_am = amOrPm\r\n // }\r\n\r\n let images = this.images\r\n if (Array.isArray(images) && images.length) {\r\n templateObj.images = images.map(image => image.url).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n if (this.id) templateObj.id = this.id\r\n\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'start_time': '出发时间',\r\n 'end_time': '返回时间',\r\n 'reason': '出发地点',\r\n }\r\n let requiredKey = [\r\n 'reason',\r\n 'start_time',\r\n 'reach_address',\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n\r\n // NOTE: 跳转申请人列表页面 进行选择\r\n async handleEditApplyofUser() {\r\n try {\r\n const result = await dingtalkComplexPicker({\r\n title: '请选择用车申请人',\r\n multiple: false,\r\n maxUsers: 1,\r\n limitTips: '单次只可选择1人',\r\n responseUserOnly: true,\r\n startWithDepartmentId: 0,\r\n deptId: -1,\r\n showLabelPick: false\r\n })\r\n let users = result.users\r\n if (users.length) {\r\n let { name, emplId } = users[0]\r\n this.apply_user_id = emplId\r\n this.apply_user_name = name\r\n } else this.$toast('选择失败, 请重新选择')\r\n } catch (error) {\r\n if (error.errorMessage !== 'Cancel') {\r\n this.$toast(error.message)\r\n }\r\n }\r\n },\r\n\r\n handleRemoveApplyUser() {\r\n this.apply_user_id = ''\r\n this.apply_user_name = ''\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!./IndexType7.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!./IndexType7.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType7.vue?vue&type=template&id=fbd427f8&scoped=true\"\nimport script from \"./IndexType7.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType7.vue?vue&type=script&lang=js\"\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 \"fbd427f8\",\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:\"type6-container\"},[_c('div',{staticClass:\"group-box\"},[_c('div',{staticClass:\"group__title\"},[_vm._v(\"报修信息\")]),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"维修分类\",\"value\":_vm.getMaintainText(_vm.type),\"hide-remove\":_vm.flag === 'approve'}}):_c('c-select',{attrs:{\"title\":\"维修分类\",\"required\":true,\"list\":_vm.maintainTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),_c('c-input',{attrs:{\"title\":\"维修地点\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}})],1),_c('c-input',{attrs:{\"title\":\"具体内容\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":800},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-files',{ref:\"imageM8Ref\",attrs:{\"ctype\":\"images\",\"placeholder\":\"最多九张\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <div class=\"group-box\">\r\n <div class=\"group__title\">报修信息</div>\r\n\r\n <!-- NOTE: 审批人维修分类不能修改 -->\r\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"维修分类\" :value=\"getMaintainText(type)\"\r\n :hide-remove=\"flag === 'approve'\" />\r\n <c-select v-else title=\"维修分类\" :required=\"true\" :list=\"maintainTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"type\" />\r\n\r\n <c-input title=\"维修地点\" :required=\"true\" v-model=\"reason\" />\r\n </div>\r\n\r\n <c-input title=\"具体内容\" :required=\"true\" input-type=\"textarea\" :maxlength=\"800\" v-model=\"desc\" />\r\n\r\n <c-files ref=\"imageM8Ref\" ctype=\"images\" v-model=\"images\" placeholder=\"最多九张\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 维修申请\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\n\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\nimport { getStaticLinkInfo } from '@/utils/util'\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n name: 'IndexType8',\r\n mixins: [\r\n indexMixin\r\n ],\r\n computed: {\r\n ...mapGetters('enum', [\r\n 'getMaintainText'\r\n ])\r\n },\r\n data() {\r\n return {\r\n pageTitle: '维修申请',\r\n pageRightTitle: '我的维修',\r\n\r\n maintainTypeList: this.$store.state.enum.maintainTypeList,\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 8,\r\n reason: '', // 维修地点\r\n type: '', // 维修类型\r\n desc: '', // 维修具体内容\r\n images: [],\r\n approve_user: [],\r\n copy_user: []\r\n // formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type8 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.reason = data.reason\r\n this.desc = data.desc\r\n this.type = data.type\r\n if (data.module_info.images) {\r\n this.images = data.module_info.images_text.map(img => {\r\n const { name = '' } = getStaticLinkInfo(img)\r\n return {\r\n name,\r\n url: img\r\n }\r\n })\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.$refs.imageM8Ref.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n type: this.type,\r\n desc: this.desc,\r\n\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n if (Array.isArray(this.images) && this.images.length) {\r\n templateObj.images = this.images.map(item => item.url).join(',')\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'type': '维修分类',\r\n 'reason': '维修地点',\r\n 'desc': '具体内容'\r\n }\r\n let requiredKey = [\r\n 'type',\r\n 'reason',\r\n 'desc'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n },\r\n watch: {\r\n type: {\r\n handler(val, oldv) {\r\n if (val && val !== oldv) {\r\n this.getCommonFlowPathData({\r\n flow_item: val\r\n })\r\n }\r\n },\r\n immediate: true\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!./IndexType8.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!./IndexType8.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType8.vue?vue&type=template&id=fcb80678&scoped=true\"\nimport script from \"./IndexType8.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType8.vue?vue&type=script&lang=js\"\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 \"fcb80678\",\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:\"type6-container\"},[(_vm.apply_id || _vm.way !== 'create')?[_c('c-select-imitate',{attrs:{\"required\":true,\"title\":\"合同类型\",\"value\":_vm.getContractTypeList(_vm.type),\"hide-remove\":true}})]:[_c('c-select',{attrs:{\"title\":\"合同类型\",\"required\":true,\"list\":_vm.contractTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}})],(_vm.apply_id)?_c('c-select-imitate',{attrs:{\"title\":\"关联申购申请-采购订单\",\"value\":_vm.apply_order_no,\"hide-remove\":true}}):_vm._e(),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"印制份数\",\"input-type\":\"number\"},model:{value:(_vm.number),callback:function ($$v) {_vm.number=$$v},expression:\"number\"}}),_c('c-input',{attrs:{\"title\":\"发放范围\",\"placeholder\":\"请输入发放范围,比如合同双方\"},model:{value:(_vm.scope),callback:function ($$v) {_vm.scope=$$v},expression:\"scope\"}}),_c('c-input',{attrs:{\"title\":\"法务意见\",\"placeholder\":\"本合同已经法律顾问审核同意,详见附件《法律意见书》\"},model:{value:(_vm.legal_opinion),callback:function ($$v) {_vm.legal_opinion=$$v},expression:\"legal_opinion\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-input',{attrs:{\"title\":\"备注说明\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n\r\n <template v-if=\"apply_id || way !== 'create'\">\r\n <c-select-imitate :required=\"true\" title=\"合同类型\" :value=\"getContractTypeList(type)\" :hide-remove=\"true\" />\r\n </template>\r\n <template v-else>\r\n <c-select title=\"合同类型\" :required=\"true\" :list=\"contractTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"type\" />\r\n </template>\r\n\r\n <c-select-imitate v-if=\"apply_id\" title=\"关联申购申请-采购订单\" :value=\"apply_order_no\" :hide-remove=\"true\" />\r\n\r\n <!--\r\n useless.\r\n <c-input title=\"合同编号\" :required=\"true\" v-model=\"reason\" /> -->\r\n\r\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"desc\" />\r\n\r\n <c-input title=\"印制份数\" input-type=\"number\" v-model=\"number\" />\r\n\r\n <c-input title=\"发放范围\" placeholder=\"请输入发放范围,比如合同双方\" v-model=\"scope\" />\r\n\r\n <c-input title=\"法务意见\" placeholder=\"本合同已经法律顾问审核同意,详见附件《法律意见书》\" v-model=\"legal_opinion\" />\r\n\r\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-input title=\"备注说明\" v-model=\"remark\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 合同呈批\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\n// import { getStaticLinkInfo } from '@/utils/util'\r\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n name: 'IndexType9',\r\n mixins: [\r\n indexMixin\r\n ],\r\n computed: {\r\n ...mapGetters('enum', [\r\n 'getContractTypeList'\r\n ])\r\n },\r\n data() {\r\n return {\r\n pageTitle: '合同呈批',\r\n pageRightTitle: '我的呈批',\r\n contractTypeList: this.$store.state.enum.contractTypeList,\r\n degreeList: this.$store.state.enum.degreeList,\r\n // formData start\r\n way: 'create',\r\n id: '',\r\n module: 9,\r\n // reason: '', // 合同编号\r\n type: '', // 合同类型\r\n desc: '', // 缓急程度\r\n document: [], // 附件\r\n remark: '', // 备注说明\r\n number: '', // 印制份数\r\n scope: '', // 发放范围\r\n legal_opinion: '', // 法务意见\r\n approve_user: [],\r\n copy_user: [],\r\n // formData end\r\n apply_id: 0,\r\n apply_order_no: '',\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n // 关联采购订单\r\n if (this.$route.query.order_no) {\r\n this.apply_id = `${this.$route.query.apply_id}`\r\n this.apply_order_no = `${this.$route.query.order_no}`\r\n this.type = `${1}`\r\n }\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type9 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n const mif = data.module_info\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n this.reason = mif.reason\r\n this.type = mif.type\r\n this.desc = mif.desc\r\n this.remark = mif.remark\r\n this.number = `${mif.number}`\r\n this.scope = mif.scope\r\n this.legal_opinion = mif.legal_opinion\r\n\r\n if (data.apply) {\r\n this.apply_id = data.apply.id\r\n this.apply_order_no = data.apply.order_no\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.$refs.fileRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n type: this.type,\r\n desc: this.desc,\r\n remark: this.remark,\r\n number: this.number,\r\n scope: this.scope,\r\n legal_opinion: this.legal_opinion,\r\n apply_id: this.apply_id,\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'type': '合同类型',\r\n // 'reason': '合同编号',\r\n 'desc': '缓急程度',\r\n 'legal_opinion': '法务意见'\r\n }\r\n let requiredKey = [\r\n 'type',\r\n // 'reason',\r\n 'desc',\r\n 'legal_opinion'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\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!./IndexType9.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!./IndexType9.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType9.vue?vue&type=template&id=7217b97a&scoped=true\"\nimport script from \"./IndexType9.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType9.vue?vue&type=script&lang=js\"\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 \"7217b97a\",\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:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"创建人\"},model:{value:(_vm.founder),callback:function ($$v) {_vm.founder=$$v},expression:\"founder\"}}),_c('c-input',{attrs:{\"title\":\"来文单位名称\",\"required\":true},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"收文序号\",\"required\":true},model:{value:(_vm.serial_number),callback:function ($$v) {_vm.serial_number=$$v},expression:\"serial_number\"}}),_c('c-input',{attrs:{\"title\":\"文件名称\"},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-date',{attrs:{\"title\":\"收文日期\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-input',{attrs:{\"title\":\"内容摘要\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.degree),callback:function ($$v) {_vm.degree=$$v},expression:\"degree\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <c-input title=\"创建人\" v-model=\"founder\" />\r\n\r\n <c-input title=\"来文单位名称\" :required=\"true\" v-model=\"desc\" />\r\n <c-input title=\"收文序号\" :required=\"true\" v-model=\"serial_number\" />\r\n <c-input title=\"文件名称\" v-model=\"reason\" />\r\n <c-date title=\"收文日期\" :required=\"true\" v-model=\"start_time\" />\r\n <c-input title=\"内容摘要\" input-type=\"textarea\" v-model=\"remark\" />\r\n\r\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"degree\" />\r\n\r\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped></style>\r\n\r\n<script>\r\n/**\r\n * @description 收文批阅页面\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\n// import { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType10',\r\n mixins: [\r\n indexMixin\r\n ],\r\n data() {\r\n return {\r\n pageTitle: '收文批阅',\r\n pageRightTitle: '我的批阅',\r\n degreeList: this.$store.state.enum.degreeList,\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 10,\r\n reason: '', // 文件名称\r\n desc: '', // 来文单位名称\r\n document: [], // 附件\r\n remark: '', // 内容摘要\r\n founder: '', // 创建人\r\n serial_number: '', // 收文序号\r\n start_time: '', // 收文日期\r\n degree: '', // 缓急程度\r\n\r\n approve_user: [],\r\n copy_user: []\r\n // formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type10 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n const mif = data.module_info\r\n\r\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\r\n this.document = data.module_info.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n this.reason = mif.reason\r\n this.desc = mif.desc\r\n this.remark = mif.remark\r\n this.founder = mif.founder\r\n this.serial_number = mif.serial_number\r\n this.start_time = mif.start_time\r\n this.degree = mif.degree\r\n\r\n this.$nextTick(() => {\r\n this.$refs.fileRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n reason: this.reason,\r\n desc: this.desc,\r\n remark: this.remark,\r\n founder: this.founder,\r\n serial_number: this.serial_number,\r\n start_time: this.start_time,\r\n degree: this.degree,\r\n\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'desc': '来文单位名称',\r\n 'serial_number': '收文序号',\r\n 'start_time': '收文日期',\r\n 'degree': '缓急程度'\r\n }\r\n let requiredKey = [\r\n 'desc',\r\n 'serial_number',\r\n 'start_time',\r\n 'degree',\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\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!./IndexType10.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!./IndexType10.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType10.vue?vue&type=template&id=6db0bf40&scoped=true\"\nimport script from \"./IndexType10.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType10.vue?vue&type=script&lang=js\"\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 \"6db0bf40\",\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:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"拟稿部门\",\"required\":true,\"value\":_vm.department},on:{\"click\":function($event){return _vm.handleChooseDepartments('department')},\"clear\":function($event){return _vm.handleRemoveDepartment('department')}}}),_c('c-input',{attrs:{\"title\":\"文件名称\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-select-imitate',{attrs:{\"title\":\"落款\",\"required\":true,\"value\":_vm.department_sign},on:{\"click\":function($event){return _vm.handleChooseDepartments('department_sign')},\"clear\":function($event){return _vm.handleRemoveDepartment('department_sign')}}}),_c('c-input',{attrs:{\"title\":\"上会情况\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-date',{attrs:{\"title\":\"拟发文时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-input',{attrs:{\"title\":\"文件号\",\"required\":true},model:{value:(_vm.serial_number),callback:function ($$v) {_vm.serial_number=$$v},expression:\"serial_number\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"type6-container\">\r\n <c-select-imitate title=\"拟稿部门\" :required=\"true\" :value=\"department\" @click=\"handleChooseDepartments('department')\"\r\n @clear=\"handleRemoveDepartment('department')\" />\r\n\r\n <c-input title=\"文件名称\" :required=\"true\" v-model=\"reason\" />\r\n\r\n <c-select-imitate title=\"落款\" :required=\"true\" :value=\"department_sign\"\r\n @click=\"handleChooseDepartments('department_sign')\" @clear=\"handleRemoveDepartment('department_sign')\" />\r\n\r\n <c-input title=\"上会情况\" input-type=\"textarea\" v-model=\"remark\" />\r\n\r\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\r\n\r\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\r\n v-model=\"desc\" />\r\n\r\n <c-date title=\"拟发文时间\" :required=\"true\" v-model=\"start_time\" />\r\n\r\n <c-input title=\"文件号\" :required=\"true\" v-model=\"serial_number\" />\r\n\r\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/**\r\n * @description 学校文件\r\n */\r\n\r\nimport indexMixin from '../indexMixins'\r\nimport { postCreateInfo } from '@/api/approveinfo'\r\n\r\nimport { dingtalkDepartmentsPicker } from '@/utils/dingtalk'\r\n\r\n// import { getStaticLinkInfo } from '@/utils/util'\r\n\r\nexport default {\r\n name: 'IndexType11',\r\n mixins: [\r\n indexMixin\r\n ],\r\n data() {\r\n return {\r\n pageTitle: '学校文件',\r\n pageRightTitle: '我的文件',\r\n\r\n degreeList: this.$store.state.enum.degreeList,\r\n\r\n // formData start\r\n way: 'create', // create/update/edit\r\n id: '',\r\n module: 11,\r\n reason: '', // 文件名称\r\n desc: '', // 缓急程度\r\n document: [], // 附件\r\n remark: '', // 上会情况\r\n serial_number: '', // 文件号\r\n start_time: '', // 拟发文时间(日期)\r\n department: '', // 部门\r\n department_id: '', // 部门id\r\n department_sign: '', // 落款\r\n department_sign_id: '', // 落款部门\r\n\r\n approve_user: [],\r\n copy_user: []\r\n // formData end\r\n }\r\n },\r\n\r\n created() {\r\n this.getCommonFlowPathData()\r\n },\r\n\r\n methods: {\r\n // 获取编辑数据\r\n handleFormatEditData(data) {\r\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\r\n const IS_EDIT = this.flag === 'approve'\r\n this.way = IS_EDIT ? 'edit' : 'update'\r\n this.id = IS_EDIT ? data.approve_id : data.id\r\n this.module = data.module\r\n const mif = data.module_info\r\n\r\n if (Array.isArray(mif.document_text) && mif.document_text.length) {\r\n this.document = mif.document_text.map(doc => ({\r\n url: doc.fullurl,\r\n name: doc.name,\r\n size: doc.size\r\n }))\r\n }\r\n\r\n this.reason = mif.reason\r\n this.desc = mif.desc\r\n this.remark = mif.remark\r\n this.serial_number = mif.serial_number\r\n this.start_time = mif.start_time\r\n this.department = mif.department\r\n this.department_sign = mif.department_sign\r\n\r\n this.$nextTick(() => {\r\n this.$refs.fileRef.handleUpdateValues()\r\n })\r\n },\r\n /**\r\n * @description 提交数据默认函数\r\n */\r\n handleSubmitData() {\r\n let formData = this.__format_data__()\r\n console.log('format data>>>', formData);\r\n let bol = this.validate(formData)\r\n if (bol) return\r\n console.log('execute handleSubmitData', formData);\r\n this.__post__(formData)\r\n },\r\n __format_data__() {\r\n let templateObj = {\r\n way: this.way,\r\n module: this.module,\r\n\r\n reason: this.reason,\r\n desc: this.desc,\r\n remark: this.remark,\r\n serial_number: this.serial_number,\r\n start_time: this.start_time,\r\n department: this.department,\r\n department_sign: this.department_sign,\r\n\r\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\r\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\r\n }\r\n\r\n let documents = this.document\r\n if (Array.isArray(documents) && documents.length) {\r\n templateObj.document = documents.map(document => ({\r\n fullurl: document.url,\r\n name: document.name,\r\n size: document.size\r\n }))\r\n }\r\n\r\n if (this.id) templateObj.id = this.id\r\n return templateObj\r\n },\r\n validate(data) {\r\n let mapTxt = {\r\n 'department': '拟稿部门',\r\n 'reason': '文件名称',\r\n 'department_sign': '落款',\r\n 'desc': '缓急程度',\r\n 'start_time': '拟发文时间',\r\n 'serial_number': '文件号'\r\n }\r\n let requiredKey = [\r\n 'department',\r\n 'reason',\r\n 'department_sign',\r\n 'desc',\r\n 'start_time',\r\n 'serial_number'\r\n ]\r\n return this.__validtor__({\r\n mapTxt,\r\n requiredKey,\r\n data\r\n })\r\n },\r\n\r\n async __post__(data) {\r\n try {\r\n const res = await postCreateInfo(data)\r\n if (res.code === 1) {\r\n this.$toast(res.msg)\r\n if (this.flag === 'approve') {\r\n this.$router.go(-1)\r\n } else this.__jump2apply_state__()\r\n }\r\n } catch (e) {\r\n console.log('it5, __post__', e);\r\n }\r\n },\r\n\r\n // NOTE: 选择拟稿部门/落款\r\n async handleChooseDepartments(keyword) {\r\n try {\r\n const result = await dingtalkDepartmentsPicker({\r\n title: '请选择部门',\r\n multiple: false,\r\n maxDepartments: 1,\r\n limitTips: '只能选择一个部门',\r\n pickedDepartments: [this[`${keyword}_id`]],\r\n })\r\n console.log('%c handleChooseDepartments >>>', 'background: blue; color: #fff', result);\r\n\r\n let departments = result.departments\r\n if (departments.length >= 2) {\r\n let { name, id } = departments[1]\r\n this[`${keyword}_id`] = id\r\n this[`${keyword}`] = name\r\n } else this.$toast('选择失败, 请重新选择')\r\n } catch (error) {\r\n if (error.errorMessage !== 'Cancel') {\r\n this.$toast(error.message)\r\n }\r\n }\r\n },\r\n handleRemoveDepartment(keyword) {\r\n this[`${keyword}_id`] = ''\r\n this[`${keyword}`] = ''\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!./IndexType11.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!./IndexType11.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType11.vue?vue&type=template&id=0d84f561\"\nimport script from \"./IndexType11.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType11.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"apply-for-container\">\r\n <component ref=\"rendeRef\" :flag=\"flag\" :editId=\"editId\" :edit-data=\"editData\" :is=\"renderComponent\" />\r\n <div class=\"btnbox\">\r\n <div class=\"btn\" @click=\"handleSubmitData\">{{ flag === 'approve' ? '更新内容' : '提交' }}</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\">\r\n@import url(\"@/styles/variables.less\");\r\n\r\n.apply-for {\r\n &-container {\r\n .layout-container {\r\n margin-top: 10px !important;\r\n }\r\n\r\n .custom-files-container {\r\n margin-top: 10px;\r\n }\r\n\r\n .group-box {\r\n .group__title {\r\n font-size: @font-size-third;\r\n font-family: PingFangSC-Regular, PingFang SC;\r\n font-weight: 400;\r\n color: #727273;\r\n line-height: 28px;\r\n padding: 0 12px;\r\n }\r\n\r\n .layout-container {\r\n margin-top: 0 !important;\r\n }\r\n\r\n >div:not(.group__title, :last-child) {\r\n border-bottom: 1px solid rgba(199, 199, 199, 0.2) !important;\r\n }\r\n }\r\n\r\n .btnbox {\r\n margin-top: 10px;\r\n padding: 10px 14px 40px;\r\n box-sizing: border-box;\r\n background-color: #FFFFFF;\r\n\r\n .btn {\r\n height: 41px;\r\n background: #3290C4;\r\n border-radius: 11px;\r\n font-size: 16px;\r\n font-weight: 400;\r\n color: #FFFFFF;\r\n line-height: 41px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n// components\r\n// import bizCont from '@/components/jsapi/biz.contact.complexPicker' // useless\r\n\r\n// components\r\nimport IndexType1 from './components/IndexType1.vue';\r\nimport IndexType2 from './components/IndexType2.vue';\r\nimport IndexType3 from './components/IndexType3.vue';\r\nimport IndexType4 from './components/IndexType4.vue';\r\nimport IndexType5 from './components/IndexType5.vue';\r\nimport IndexType6 from './components/IndexType6.vue';\r\nimport IndexType7 from './components/IndexType7.vue';\r\nimport IndexType8 from './components/IndexType8.vue';\r\nimport IndexType9 from './components/IndexType9.vue';\r\nimport IndexType10 from './components/IndexType10.vue';\r\nimport IndexType11 from './components/IndexType11.vue';\r\n\r\n// Api\r\nimport * as approveInfoApi from '@/api/approveinfo'\r\n\r\nimport * as approveApi from '@/api/approve'\r\n\r\nimport store from '@/store';\r\n\r\nexport default {\r\n // NOTE: 只有退出applyfor/xxx页面时才清除缓存\r\n beforeRouteEnter(to, from, next) {\r\n store.commit({\r\n type: \"app/ROUTE_ADD\",\r\n value: 'Applyfor'\r\n })\r\n next()\r\n },\r\n beforeRouteLeave(to, from, next) {\r\n // old modifyed\r\n // if (!to.path.includes('applyfor')) {\r\n // store.commit({\r\n // type: 'app/ROUTE_REMOVE',\r\n // value: 'Applyfor'\r\n // })\r\n // } else {\r\n // store.commit({\r\n // type: \"app/ROUTE_ADD\",\r\n // value: 'Applyfor'\r\n // })\r\n // }\r\n if (to.path.includes('applyfor')) {\r\n store.commit({\r\n type: \"app/ROUTE_ADD\",\r\n value: 'Applyfor'\r\n })\r\n }\r\n next()\r\n },\r\n name: 'Applyfor',\r\n components: {\r\n IndexType1,\r\n IndexType2,\r\n IndexType3,\r\n IndexType4,\r\n IndexType5,\r\n IndexType6,\r\n IndexType7,\r\n IndexType8,\r\n IndexType9,\r\n IndexType10,\r\n IndexType11,\r\n },\r\n\r\n computed: {\r\n // 获取需要渲染的组件\r\n renderComponent() {\r\n const TYPE = this.formType\r\n return `IndexType${TYPE}`\r\n },\r\n },\r\n\r\n created() {\r\n if (this.$route.query.type) this.formType = Number(this.$route.query.type)\r\n\r\n // check is edit\r\n if (this.$route.query.edit == 1) {\r\n this.editId = Number(this.$route.query.id)\r\n this.isEdit = true\r\n this.flag = this.$route.query.flag\r\n }\r\n\r\n this.init()\r\n },\r\n\r\n data() {\r\n return {\r\n formType: -1, // 代表某申请类型\r\n flag: '', // [info, approve] // 页面状态 info: 申请 approve: 审核\r\n isEdit: false, // 是否编辑\r\n editId: -1, // 编辑Id\r\n editData: null, // 编辑时存放数据\r\n }\r\n },\r\n\r\n methods: {\r\n init() {\r\n if (this.isEdit) this.__detail__()\r\n },\r\n\r\n async __detail__() {\r\n try {\r\n const func = this.flag === 'info' ? approveInfoApi.getInfo : approveApi.getInfo\r\n let paramsId = this.flag === 'info' ? 'id' : 'approve_id'\r\n const params = {\r\n [paramsId]: this.editId\r\n }\r\n const result = await func(params)\r\n if (result.code === 1) {\r\n this.editData = result.data\r\n }\r\n } catch (error) {\r\n console.log('aplyof error >>>', error)\r\n }\r\n },\r\n\r\n handleSubmitData() {\r\n let callback = this.$refs.rendeRef.handleSubmitData\r\n callback && callback()\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!./index.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!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=02352823\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=02352823&prod&lang=less\"\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 null,\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!./Peers.vue?vue&type=style&index=0&id=3493da67&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!./CProductStore.vue?vue&type=style&index=0&id=7d067ce3&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:\"approve-container flex flex-col\"},[_c('van-tabs',{attrs:{\"before-change\":_vm.handleTabBeforeChangeEvnet},model:{value:(_vm.tabVal),callback:function ($$v) {_vm.tabVal=$$v},expression:\"tabVal\"}},_vm._l((_vm.tabs),function(tab,idx){return _c('van-tab',{key:idx,attrs:{\"title\":tab.title,\"name\":tab.name,\"color\":\"#000\"}})}),1),_c('div',{staticClass:\"filter-container p-h-12 flex flex-row flex-row-aic\"},[_c('van-field',{attrs:{\"clearable\":\"\",\"placeholder\":\"搜索\",\"left-icon\":\"search\",\"disabled\":true,\"readonly\":true},on:{\"click\":_vm.handleClickSearchBox},model:{value:(_vm.searchVal),callback:function ($$v) {_vm.searchVal=$$v},expression:\"searchVal\"}}),_c('div',{class:[\n 'filterbox flex flex-row flex-0shrink',\n _vm.hasFilter ? 'filterbox--sel' : ''\n ],on:{\"click\":function () { return _vm.popupVisibility = true; }}},[_c('van-icon',{attrs:{\"name\":\"filter-o\",\"size\":\"20\"}}),_c('span',[_vm._v(\"筛选\")])],1)],1),_c('div',{staticClass:\"approve-main\"},[_c('van-list',{attrs:{\"finished\":_vm.finished,\"finished-text\":_vm.finishedText},on:{\"load\":_vm.onLoadData},model:{value:(_vm.listLoading),callback:function ($$v) {_vm.listLoading=$$v},expression:\"listLoading\"}},_vm._l((_vm.tableData),function(item,idx){return _c('approve-item',{key:idx,attrs:{\"approve-type\":\"xx\",\"title\":_vm.rendeTitleCom,\"time\":item.apply_date,\"rows\":item.__rows_item__,\"person\":item.approve_one ? item.approve_one.user.name : '',\"flag\":\"info\",\"flag-state\":Number(item.status)},on:{\"click\":function($event){return _vm.handleGoInfo(item)}}})}),1),_c('my-empty',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEmpty),expression:\"showEmpty\"}],attrs:{\"tip\":\"暂无数据\"}})],1),_c('van-popup',{staticClass:\"popupxx\",style:({ height: '60%' }),attrs:{\"position\":\"bottom\",\"closeable\":\"\",\"close-icon-position\":\"top-left\"},on:{\"click-close-icon\":_vm.handleClosePopup},model:{value:(_vm.popupVisibility),callback:function ($$v) {_vm.popupVisibility=$$v},expression:\"popupVisibility\"}},[_c('div',[_c('div',{staticClass:\"popup__title\"},[_vm._v(\"全部筛选\")]),_c('div',{staticClass:\"popup__rangetime\"},[_c('div',{staticClass:\"popup__typebox__header\"},[_c('span',[_vm._v(\"申请时间\")])]),_c('div',{staticClass:\"popup__rangetime__main flex flex-row flex-row-aic\"},[_c('van-field',{attrs:{\"value\":_vm.timeStart,\"disabled\":true,\"clearable\":\"\",\"placeholder\":\"开始时间\",\"center\":true},on:{\"click\":_vm.handleClickTimeStart}}),_c('span',{staticClass:\"horization\"}),_c('van-field',{attrs:{\"value\":_vm.timeEnd,\"disabled\":true,\"clearable\":\"\",\"placeholder\":\"结束时间\",\"center\":true},on:{\"click\":_vm.handleClickTimeEnd}})],1)])]),_c('div',{staticClass:\"btn-popup\",on:{\"click\":_vm.handleSubmitFilter}},[_c('span',[_vm._v(\"搜索\")])])]),_c('ChooseTime',{ref:\"chooseTimeRef\",attrs:{\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate},model:{value:(_vm.timeVal),callback:function ($$v) {_vm.timeVal=$$v},expression:\"timeVal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"approve-container flex flex-col\">\r\n <van-tabs v-model=\"tabVal\" :before-change=\"handleTabBeforeChangeEvnet\">\r\n <van-tab v-for=\"(tab, idx) in tabs\" :key=\"idx\" :title=\"tab.title\" :name=\"tab.name\" color=\"#000\" />\r\n </van-tabs>\r\n <div class=\"filter-container p-h-12 flex flex-row flex-row-aic\">\r\n <van-field v-model=\"searchVal\" clearable placeholder=\"搜索\" left-icon=\"search\" :disabled=\"true\" :readonly=\"true\"\r\n @click=\"handleClickSearchBox\" />\r\n <div :class=\"[\r\n 'filterbox flex flex-row flex-0shrink',\r\n hasFilter ? 'filterbox--sel' : ''\r\n ]\" @click=\"() => popupVisibility = true\">\r\n <van-icon name=\"filter-o\" size=\"20\" />\r\n <span>筛选</span>\r\n </div>\r\n </div>\r\n <div class=\"approve-main\">\r\n <van-list v-model=\"listLoading\" :finished=\"finished\" :finished-text=\"finishedText\" @load=\"onLoadData\">\r\n <approve-item v-for=\"(item, idx) in tableData\" :key=\"idx\" approve-type=\"xx\" :title=\"rendeTitleCom\"\r\n :time=\"item.apply_date\" :rows=\"item.__rows_item__\"\r\n :person=\"item.approve_one ? item.approve_one.user.name : ''\" flag=\"info\"\r\n :flag-state=\"Number(item.status)\" @click=\"handleGoInfo(item)\" />\r\n </van-list>\r\n <my-empty v-show=\"showEmpty\" tip=\"暂无数据\" />\r\n </div>\r\n\r\n <!-- 弹窗 全部筛选 -->\r\n <van-popup class=\"popupxx\" v-model=\"popupVisibility\" position=\"bottom\" :style=\"{ height: '60%' }\" closeable\r\n close-icon-position=\"top-left\" @click-close-icon=\"handleClosePopup\">\r\n <div>\r\n <div class=\"popup__title\">全部筛选</div>\r\n <!-- <div class=\"popup__typebox\">\r\n <div class=\"popup__typebox__header\">\r\n <span>全部类型</span>\r\n </div>\r\n <div class=\"popup__typebox__list flex\">\r\n <span v-for=\"(type, idx) in types\" :key=\"idx\" class=\"item\"\r\n @click=\"handleTouchThatType(event, type)\">\r\n {{ type.name }}\r\n </span>\r\n </div>\r\n </div> -->\r\n <div class=\"popup__rangetime\">\r\n <div class=\"popup__typebox__header\">\r\n <span>申请时间</span>\r\n </div>\r\n <div class=\"popup__rangetime__main flex flex-row flex-row-aic\">\r\n <van-field :value=\"timeStart\" :disabled=\"true\" clearable placeholder=\"开始时间\" :center=\"true\"\r\n @click=\"handleClickTimeStart\" />\r\n <span class=\"horization\"></span>\r\n <van-field :value=\"timeEnd\" :disabled=\"true\" clearable placeholder=\"结束时间\" :center=\"true\"\r\n @click=\"handleClickTimeEnd\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-popup\" @click=\"handleSubmitFilter\">\r\n <span>搜索</span>\r\n </div>\r\n </van-popup>\r\n\r\n <ChooseTime ref=\"chooseTimeRef\" v-model=\"timeVal\" :min-date=\"minDate\" :max-date=\"maxDate\" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ChooseTime from '@/components/ChooseTime'\r\nimport { getRecordList } from '@/api/approveinfo'\r\nimport ApproveItem from '../approve/components/ApproveItem.vue'\r\nimport store from '@/store'\r\n\r\nimport dayjs from 'dayjs'\r\n\r\nimport { formatApproveItemRow } from '@/utils/approve-item'\r\n\r\nimport { settingNavigationTitle, settingNavigationRight } from '@/utils/dingtalk'\r\n\r\n\r\nimport { MODULE_ENUM } from '@/utils/constant'\r\n\r\nexport default {\r\n nameText: '我的申请状态',\r\n name: 'ApplyState',\r\n components: {\r\n ApproveItem,\r\n ChooseTime\r\n },\r\n computed: {\r\n // 判断是否为筛选\r\n hasFilter() {\r\n return (this.timeStart && this.timeEnd)\r\n },\r\n rendeTitleCom() {\r\n let t = this.formType\r\n let welcomeTxt = `${store.getters.name}提交的`\r\n if (t >= 1 && t <= 11) {\r\n welcomeTxt = `${welcomeTxt}${MODULE_ENUM[t]}`\r\n }\r\n return welcomeTxt\r\n }\r\n },\r\n data() {\r\n return {\r\n timeVal: '',\r\n formType: undefined,\r\n popupVisibility: false,\r\n tabVal: '2',\r\n tabs: [\r\n {\r\n title: '审批中',\r\n name: '2'\r\n },\r\n {\r\n title: '已通过',\r\n name: '3'\r\n },\r\n {\r\n title: '已驳回',\r\n name: '4'\r\n },\r\n {\r\n title: '已撤销',\r\n name: '5'\r\n }\r\n ],\r\n searchVal: '',\r\n // types: [\r\n // { name: '领用申请', id: '' },\r\n // { name: '申请批呈', id: '' },\r\n // { name: '学校文件', id: '' },\r\n // { name: '批阅申请', id: '' },\r\n // { name: '合同批呈', id: '' },\r\n // { name: '维修申请', id: '' },\r\n // { name: '用车申请', id: '' },\r\n // { name: '请假申请', id: '' },\r\n // { name: '出差申请', id: '' },\r\n // { name: '领用申请', id: '' },\r\n // { name: '入库申请', id: '' },\r\n // { name: '申购申请', id: '' },\r\n // ],\r\n // typeVal: '',\r\n\r\n timeStart: '', // 开始时间\r\n timeEnd: '',\r\n\r\n pagination: {\r\n page: 1,\r\n page_num: 10,\r\n },\r\n showEmpty: false,\r\n listLoading: false,\r\n finished: false,\r\n finishedText: '暂无更多数据',\r\n tableData: [],\r\n minDate: '',\r\n maxDate: ''\r\n }\r\n },\r\n created() {\r\n this.navigationSetting()\r\n this.handleNavigationRight()\r\n if (this.$route.query) {\r\n this.formType = this.$route.query.type\r\n }\r\n this.init()\r\n },\r\n methods: {\r\n // NOTE: 设置标题等\r\n navigationSetting() {\r\n let t = this.formType\r\n let tit = '申请列表'\r\n if (t >= 1 && t <= 11) tit = MODULE_ENUM[t]\r\n settingNavigationTitle({\r\n title: `我的${tit}`\r\n })\r\n },\r\n handleNavigationRight() {\r\n settingNavigationRight({\r\n show: false,\r\n })\r\n },\r\n init() {\r\n // NOTE: 设置时间返回是前6个月 - 现在\r\n let now = new Date()\r\n now.setMonth(now.getMonth() - 7)\r\n this.minDate = now\r\n let nowMax = new Date()\r\n this.maxDate = nowMax\r\n },\r\n async __record_list__() {\r\n try {\r\n let THAT = this\r\n const params = {\r\n group: 'list',\r\n module: this.formType,\r\n status: Number(this.tabVal),\r\n ...this.pagination\r\n }\r\n if (this.timeStart && this.timeEnd) {\r\n params.start_time = this.timeStart\r\n params.end_time = this.timeEnd\r\n }\r\n const res = await getRecordList(params)\r\n if (res.code === 1) {\r\n this.listLoading = false\r\n let list = res.data || []\r\n list = list.map(item => ({\r\n ...item,\r\n __rows_item__: formatApproveItemRow(item, THAT.formType)\r\n }))\r\n\r\n if (list.length < this.pagination.page_num) this.finished = true\r\n\r\n else {\r\n this.pagination.page++\r\n }\r\n this.tableData = this.tableData.concat(list)\r\n if (this.finished && !this.tableData.length) {\r\n this.finishedText = ''\r\n this.showEmpty = true\r\n }\r\n }\r\n } catch (e) {\r\n console.log('record list', e);\r\n }\r\n },\r\n\r\n onLoadData() {\r\n this.__record_list__()\r\n },\r\n\r\n handleTabBeforeChangeEvnet(val) {\r\n this.tabVal = val\r\n this.showEmpty = false\r\n this.tableData = []\r\n this.listLoading = true\r\n this.finished = false\r\n this.finishedText = '暂无更多数据'\r\n this.pagination.page = 1\r\n this.onLoadData()\r\n return true\r\n },\r\n\r\n handleClickTimeStart() {\r\n const THAT = this\r\n THAT.timeVal = `${THAT.timeStart}`\r\n this.$refs.chooseTimeRef.openChooseTime(date => {\r\n THAT.timeStart = dayjs(date).format('YYYY-MM-DD HH:mm')\r\n })\r\n },\r\n\r\n handleClickTimeEnd() {\r\n const THAT = this\r\n THAT.timeVal = `${THAT.timeEnd}`\r\n this.$refs.chooseTimeRef.openChooseTime(date => {\r\n THAT.timeEnd = dayjs(date).format('YYYY-MM-DD HH:mm')\r\n })\r\n },\r\n\r\n // NOTE: choosed type\r\n handleTouchThatType(type) {\r\n const { name } = type\r\n this.typeVal = name\r\n },\r\n\r\n // NOTE: 点击跳转搜索页\r\n handleClickSearchBox() {\r\n this.$router.push({\r\n name: 'Search',\r\n query: {\r\n formType: this.formType,\r\n flag: 'info',\r\n flagState: this.tabVal\r\n\r\n }\r\n })\r\n },\r\n\r\n // NOTE: 点击筛选弹出选择内容\r\n handleSwitchFilterBox() {\r\n },\r\n\r\n // NOTE: 提交过滤搜索条件\r\n handleSubmitFilter() {\r\n // 判断时间是不是开始比结束前。\r\n let startTime = new Date(this.timeStart).getTime()\r\n let endTime = new Date(this.timeEnd).getTime()\r\n\r\n if (endTime <= startTime) {\r\n this.$toast('结束时间不可以比开始时间小')\r\n return\r\n }\r\n\r\n // 搜索添加时间\r\n this.popupVisibility = false // close popup window.\r\n this.showEmpty = false\r\n this.tableData = []\r\n this.listLoading = true\r\n this.finished = false\r\n this.finishedText = '暂无更多数据'\r\n this.pagination.page = 1\r\n this.onLoadData()\r\n },\r\n\r\n // NOTE: 前往审核详情页面。 \r\n // BUT. 我收到的不应该存在 control address.\r\n handleGoInfo(data) {\r\n console.log('goInfo>', data);\r\n this.$router.push({\r\n name: 'ExamineDetail',\r\n query: {\r\n id: data.id,\r\n type: 'info'\r\n }\r\n })\r\n },\r\n handleClosePopup() {\r\n this.timeStart = ''\r\n this.timeEnd = ''\r\n },\r\n }\r\n}\r\n</script>\r\n \r\n<style lang=\"less\" scoped>\r\n@import url(\"@/styles/variables.less\");\r\n\r\n.approve {\r\n &-container {\r\n height: 100%;\r\n\r\n .van-tabs {\r\n padding-bottom: 4px;\r\n border-bottom: 1px solid rgba(216, 216, 216, 1);\r\n background-color: white;\r\n }\r\n\r\n .van-tabs__line {\r\n background-color: #000;\r\n }\r\n\r\n .van-popup.van-popup--bottom {\r\n padding: 14px 12px;\r\n box-sizing: border-box;\r\n }\r\n }\r\n\r\n &-main {\r\n flex: 1;\r\n padding: 6px;\r\n\r\n .approve-item-container {\r\n margin-bottom: 6px;\r\n\r\n &:last-child {\r\n margin-bottom: initial;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.filter-container {\r\n padding-top: 7px;\r\n padding-bottom: 7px;\r\n background-color: @white;\r\n\r\n .van-cell.van-field {\r\n background-color: rgba(238, 238, 239, 1);\r\n border-radius: 6px;\r\n padding-top: 6px;\r\n padding-bottom: 6px;\r\n position: relative;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 1;\r\n width: 100%;\r\n height: 100%;\r\n background-color: transparent;\r\n }\r\n }\r\n\r\n .filterbox {\r\n padding-left: 10px;\r\n\r\n span {\r\n font-size: @font-size-third;\r\n font-weight: 500;\r\n color: #727273;\r\n line-height: 22px;\r\n }\r\n\r\n &--sel {\r\n .van-icon.van-icon-filter-o {\r\n color: #3290C4;\r\n }\r\n\r\n span {\r\n color: #3290C4;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.filter-container .van-cell.van-field,\r\n.popup__rangetime__main .van-cell.van-field {\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 1;\r\n width: 100%;\r\n height: 100%;\r\n background-color: transparent;\r\n }\r\n}\r\n\r\n.popup {\r\n &__title {\r\n text-align: center;\r\n font-size: @font-size-common;\r\n font-weight: 600;\r\n color: #0A1629;\r\n line-height: 22px;\r\n padding-bottom: 30px;\r\n }\r\n\r\n &__typebox {\r\n &__header {\r\n font-size: @font-size-secondery;\r\n font-weight: 600;\r\n color: #0A1629;\r\n line-height: 20px;\r\n margin-bottom: 12px;\r\n }\r\n\r\n &__list {\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n padding-bottom: 14px;\r\n\r\n span {\r\n display: inline-block;\r\n width: 111px;\r\n height: 34px;\r\n line-height: 34px;\r\n text-align: center;\r\n background: #F6F6F6;\r\n border-radius: 8px;\r\n font-size: @font-size-third;\r\n font-weight: 400;\r\n color: #191A1E;\r\n margin-bottom: 8px;\r\n }\r\n }\r\n }\r\n\r\n &__rangetime {\r\n &__main {\r\n justify-content: space-between;\r\n }\r\n\r\n .van-cell.van-field {\r\n width: 40%;\r\n background: #F6F6F6;\r\n border-radius: 8px;\r\n text-align: center;\r\n\r\n .van-field__control {\r\n text-align: center;\r\n }\r\n }\r\n\r\n span.horization {\r\n display: inline-block;\r\n width: 30px;\r\n height: 1px;\r\n background-color: #000;\r\n }\r\n }\r\n}\r\n\r\n.popupxx {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n\r\n .btn-popup {\r\n background: #3290C4;\r\n border-radius: 11px;\r\n font-size: @font-size-common;\r\n font-family: PingFangSC-Regular, PingFang SC;\r\n font-weight: 400;\r\n color: #FFFFFF;\r\n line-height: 24px;\r\n text-align: center;\r\n padding: 10px 0;\r\n }\r\n}\r\n</style>\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!./index.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!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3123ab97&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3123ab97&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 \"3123ab97\",\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!./CDate.vue?vue&type=style&index=0&id=74862614&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!./index.vue?vue&type=style&index=0&id=02352823&prod&lang=less\"","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!./index.vue?vue&type=style&index=0&id=3123ab97&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!./CFlowPath.vue?vue&type=style&index=0&id=53b272f5&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!./peersOutForm.vue?vue&type=style&index=0&id=1cb06513&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\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"peers-out-form-container flex flex-col\"},[_c('div',{staticClass:\"content\"},[_c('c-input',{attrs:{\"title\":\"同行姓名\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('c-input',{attrs:{\"title\":\"备注\",\"input-type\":\"textarea\",\"maxlength\":20},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}})],1),_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmSub}},[_vm._v(\"确认\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"peers-out-form-container flex flex-col\">\r\n <div class=\"content\">\r\n <c-input title=\"同行姓名\" v-model=\"name\" />\r\n\r\n <c-input title=\"备注\" v-model=\"remark\" input-type=\"textarea\" :maxlength=\"20\" />\r\n\r\n </div>\r\n <div class=\"btn-container\">\r\n <div class=\"btn-span\" @click=\"handleConfirmSub\">确认</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"less\" scoped>\r\n.peers-out-form-container {\r\n height: 100%;\r\n justify-content: space-between;\r\n align-items: space-between;\r\n\r\n .content {\r\n .layout-container {\r\n margin-top: 10px;\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<script>\r\n/**\r\n * @description 出差申请-同行人员-添加外部人员\r\n */\r\nimport CInput from './components/CInput.vue';\r\nimport vueBus from '@/utils/vueBus';\r\n\r\nimport { settingNavigationRight } from '@/utils/dingtalk'\r\n\r\nexport default {\r\n components: {\r\n CInput\r\n },\r\n data() {\r\n return {\r\n name: '',\r\n remark: ''\r\n }\r\n },\r\n created() {\r\n this.navigationSetting()\r\n let query = this.$route.query\r\n\r\n if (query) {\r\n this.name = query.name || ''\r\n this.remark = query.remark || ''\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 handleConfirmSub() {\r\n if (!this.name) return this.$toast('请填写同行人姓名')\r\n\r\n if (!this.remark) return this.$toast('请填写备注')\r\n\r\n let params = {\r\n name: this.name,\r\n remark: this.remark\r\n }\r\n\r\n let query = this.$route.query\r\n if (query && query.isUpdate == '1') {\r\n params = {\r\n ...this.$route.query,\r\n ...params\r\n }\r\n }\r\n\r\n vueBus.$emit('addOutPeersEvent', params)\r\n\r\n this.$router.go(-1)\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!./peersOutForm.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!./peersOutForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./peersOutForm.vue?vue&type=template&id=1cb06513&scoped=true\"\nimport script from \"./peersOutForm.vue?vue&type=script&lang=js\"\nexport * from \"./peersOutForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./peersOutForm.vue?vue&type=style&index=0&id=1cb06513&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 \"1cb06513\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}