@liuqiongqiong/vue-pages 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -5,7 +5,7 @@ import{ClockJsInfo,JSInfoNew,ClockInfo,wxSettlementInfo,wxSettlementStatisticInf
5
5
  * @author owenm <owen23355@gmail.com>
6
6
  * @license MIT
7
7
  */
8
- function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends(){return _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,l={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(l[n]=e[n]);return l}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,l=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var version="1.15.6";function userAgent(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var IE11OrLess=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Edge=userAgent(/Edge/i),FireFox=userAgent(/firefox/i),Safari=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i),IOS=userAgent(/iP(ad|od|hone)/i),ChromeForAndroid=userAgent(/chrome/i)&&userAgent(/android/i),captureMode={capture:!1,passive:!1};function on(e,t,n){e.addEventListener(t,n,!IE11OrLess&&captureMode)}function off(e,t,n){e.removeEventListener(t,n,!IE11OrLess&&captureMode)}function matches(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function getParentOrHost(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function closest(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&matches(e,t):matches(e,t))||r&&e===n)return e;if(e===n)break}while(e=getParentOrHost(e))}return null}var R_SPACE=/\s+/g,_throttleTimeout;function toggleClass(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(R_SPACE," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(R_SPACE," ")}}function css(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function matrix(e,t){var n="";if("string"==typeof e)n=e;else do{var r=css(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var l=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return l&&new l(n)}function find(e,t,n){if(e){var r=e.getElementsByTagName(t),l=0,i=r.length;if(n)for(;l<i;l++)n(r[l],l);return r}return[]}function getWindowScrollingElement(){var e=document.scrollingElement;return e||document.documentElement}function getRect(e,t,n,r,l){if(e.getBoundingClientRect||e===window){var i,a,s,o,c,d,p;if(e!==window&&e.parentNode&&e!==getWindowScrollingElement()?(a=(i=e.getBoundingClientRect()).top,s=i.left,o=i.bottom,c=i.right,d=i.height,p=i.width):(a=0,s=0,o=window.innerHeight,c=window.innerWidth,d=window.innerHeight,p=window.innerWidth),(t||n)&&e!==window&&(l=l||e.parentNode,!IE11OrLess))do{if(l&&l.getBoundingClientRect&&("none"!==css(l,"transform")||n&&"static"!==css(l,"position"))){var m=l.getBoundingClientRect();a-=m.top+parseInt(css(l,"border-top-width")),s-=m.left+parseInt(css(l,"border-left-width")),o=a+i.height,c=s+i.width;break}}while(l=l.parentNode);if(r&&e!==window){var u=matrix(l||e),h=u&&u.a,f=u&&u.d;u&&(o=(a/=f)+(d/=f),c=(s/=h)+(p/=h))}return{top:a,left:s,bottom:o,right:c,width:p,height:d}}}function isScrolledPast(e,t,n){for(var r=getParentAutoScrollElement(e,!0),l=getRect(e)[t];r;){var i=getRect(r)[n];if(!("top"===n||"left"===n?l>=i:l<=i))return r;if(r===getWindowScrollingElement())break;r=getParentAutoScrollElement(r,!1)}return!1}function getChild(e,t,n,r){for(var l=0,i=0,a=e.children;i<a.length;){if("none"!==a[i].style.display&&a[i]!==Sortable.ghost&&(r||a[i]!==Sortable.dragged)&&closest(a[i],n.draggable,e,!1)){if(l===t)return a[i];l++}i++}return null}function lastChild(e,t){for(var n=e.lastElementChild;n&&(n===Sortable.ghost||"none"===css(n,"display")||t&&!matches(n,t));)n=n.previousElementSibling;return n||null}function index$2(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)"TEMPLATE"===e.nodeName.toUpperCase()||e===Sortable.clone||t&&!matches(e,t)||n++;return n}function getRelativeScrollOffset(e){var t=0,n=0,r=getWindowScrollingElement();if(e)do{var l=matrix(e),i=l.a,a=l.d;t+=e.scrollLeft*i,n+=e.scrollTop*a}while(e!==r&&(e=e.parentNode));return[t,n]}function indexOfObject(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n);return-1}function getParentAutoScrollElement(e,t){if(!e||!e.getBoundingClientRect)return getWindowScrollingElement();var n=e,r=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var l=css(n);if(n.clientWidth<n.scrollWidth&&("auto"==l.overflowX||"scroll"==l.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==l.overflowY||"scroll"==l.overflowY)){if(!n.getBoundingClientRect||n===document.body)return getWindowScrollingElement();if(r||t)return n;r=!0}}}while(n=n.parentNode);return getWindowScrollingElement()}function extend(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function isRectEqual(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function throttle(e,t){return function(){if(!_throttleTimeout){var n=arguments;1===n.length?e.call(this,n[0]):e.apply(this,n),_throttleTimeout=setTimeout(function(){_throttleTimeout=void 0},t)}}}function cancelThrottle(){clearTimeout(_throttleTimeout),_throttleTimeout=void 0}function scrollBy(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function clone(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function getChildContainingRectFromElement(e,t,n){var r={};return Array.from(e.children).forEach(function(l){var i,a,s,o;if(closest(l,t.draggable,e,!1)&&!l.animated&&l!==n){var c=getRect(l);r.left=Math.min(null!==(i=r.left)&&void 0!==i?i:1/0,c.left),r.top=Math.min(null!==(a=r.top)&&void 0!==a?a:1/0,c.top),r.right=Math.max(null!==(s=r.right)&&void 0!==s?s:-1/0,c.right),r.bottom=Math.max(null!==(o=r.bottom)&&void 0!==o?o:-1/0,c.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var expando="Sortable"+(new Date).getTime();function AnimationStateManager(){var e,t=[];return{captureAnimationState:function(){(t=[],this.options.animation)&&[].slice.call(this.el.children).forEach(function(e){if("none"!==css(e,"display")&&e!==Sortable.ghost){t.push({target:e,rect:getRect(e)});var n=_objectSpread2({},t[t.length-1].rect);if(e.thisAnimationDuration){var r=matrix(e,!0);r&&(n.top-=r.f,n.left-=r.e)}e.fromRect=n}})},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice(indexOfObject(t,{target:e}),1)},animateAll:function(n){var r=this;if(!this.options.animation)return clearTimeout(e),void("function"==typeof n&&n());var l=!1,i=0;t.forEach(function(e){var t=0,n=e.target,a=n.fromRect,s=getRect(n),o=n.prevFromRect,c=n.prevToRect,d=e.rect,p=matrix(n,!0);p&&(s.top-=p.f,s.left-=p.e),n.toRect=s,n.thisAnimationDuration&&isRectEqual(o,s)&&!isRectEqual(a,s)&&(d.top-s.top)/(d.left-s.left)===(a.top-s.top)/(a.left-s.left)&&(t=calculateRealTime(d,o,c,r.options)),isRectEqual(s,a)||(n.prevFromRect=a,n.prevToRect=s,t||(t=r.options.animation),r.animate(n,d,s,t)),t&&(l=!0,i=Math.max(i,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(e),l?e=setTimeout(function(){"function"==typeof n&&n()},i):"function"==typeof n&&n(),t=[]},animate:function(e,t,n,r){if(r){css(e,"transition",""),css(e,"transform","");var l=matrix(this.el),i=l&&l.a,a=l&&l.d,s=(t.left-n.left)/(i||1),o=(t.top-n.top)/(a||1);e.animatingX=!!s,e.animatingY=!!o,css(e,"transform","translate3d("+s+"px,"+o+"px,0)"),this.forRepaintDummy=repaint(e),css(e,"transition","transform "+r+"ms"+(this.options.easing?" "+this.options.easing:"")),css(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout(function(){css(e,"transition",""),css(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function repaint(e){return e.offsetWidth}function calculateRealTime(e,t,n,r){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*r.animation}var plugins=[],defaults={initializeByDefault:!0},PluginManager={mount:function(e){for(var t in defaults)defaults.hasOwnProperty(t)&&!(t in e)&&(e[t]=defaults[t]);plugins.forEach(function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),plugins.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var l=e+"Global";plugins.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][l]&&t[r.pluginName][l](_objectSpread2({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](_objectSpread2({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var l in plugins.forEach(function(r){var l=r.pluginName;if(e.options[l]||r.initializeByDefault){var i=new r(e,t,e.options);i.sortable=e,i.options=e.options,e[l]=i,_extends(n,i.defaults)}}),e.options)if(e.options.hasOwnProperty(l)){var i=this.modifyOption(e,l,e.options[l]);void 0!==i&&(e.options[l]=i)}},getEventProperties:function(e,t){var n={};return plugins.forEach(function(r){"function"==typeof r.eventProperties&&_extends(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return plugins.forEach(function(l){e[l.pluginName]&&l.optionListeners&&"function"==typeof l.optionListeners[t]&&(r=l.optionListeners[t].call(e[l.pluginName],n))}),r}};function dispatchEvent(e){var t=e.sortable,n=e.rootEl,r=e.name,l=e.targetEl,i=e.cloneEl,a=e.toEl,s=e.fromEl,o=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,p=e.newDraggableIndex,m=e.originalEvent,u=e.putSortable,h=e.extraEventProperties;if(t=t||n&&n[expando]){var f,g=t.options,v="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||IE11OrLess||Edge?(f=document.createEvent("Event")).initEvent(r,!0,!0):f=new CustomEvent(r,{bubbles:!0,cancelable:!0}),f.to=a||n,f.from=s||n,f.item=l||n,f.clone=i,f.oldIndex=o,f.newIndex=c,f.oldDraggableIndex=d,f.newDraggableIndex=p,f.originalEvent=m,f.pullMode=u?u.lastPutMode:void 0;var b=_objectSpread2(_objectSpread2({},h),PluginManager.getEventProperties(r,t));for(var y in b)f[y]=b[y];n&&n.dispatchEvent(f),g[v]&&g[v].call(t,f)}}var _excluded=["evt"],pluginEvent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,l=_objectWithoutProperties(n,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl:dragEl,parentEl:parentEl,ghostEl:ghostEl,rootEl:rootEl,nextEl:nextEl,lastDownEl:lastDownEl,cloneEl:cloneEl,cloneHidden:cloneHidden,dragStarted:moved,putSortable:putSortable,activeSortable:Sortable.active,originalEvent:r,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(e){_dispatchEvent({sortable:t,name:e,originalEvent:r})}},l))};function _dispatchEvent(e){dispatchEvent(_objectSpread2({putSortable:putSortable,cloneEl:cloneEl,targetEl:dragEl,rootEl:rootEl,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex},e))}var dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,oldIndex,newIndex,oldDraggableIndex,newDraggableIndex,activeGroup,putSortable,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],tapEvt,touchEvt,lastDx,lastDy,tapDistanceLeft,tapDistanceTop,moved,lastTarget,lastDirection,pastFirstInvertThresh=!1,isCircumstantialInvert=!1,targetMoveDistance,ghostRelativeParent,ghostRelativeParentInitialScroll=[],_silent=!1,savedInputChecked=[],documentExists="undefined"!=typeof document,PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable=documentExists&&!ChromeForAndroid&&!IOS&&"draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(documentExists){if(IE11OrLess)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),_detectDirection=function(e,t){var n=css(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),l=getChild(e,0,t),i=getChild(e,1,t),a=l&&css(l),s=i&&css(i),o=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+getRect(l).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+getRect(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(l&&a.float&&"none"!==a.float){var d="left"===a.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return l&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||o>=r&&"none"===n[CSSFloatProperty]||i&&"none"===n[CSSFloatProperty]&&o+c>r)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,n){var r=n?e.left:e.top,l=n?e.right:e.bottom,i=n?e.width:e.height,a=n?t.left:t.top,s=n?t.right:t.bottom,o=n?t.width:t.height;return r===a||l===s||r+i/2===a+o/2},_detectNearestEmptySortable=function(e,t){var n;return sortables.some(function(r){var l=r[expando].options.emptyInsertThreshold;if(l&&!lastChild(r)){var i=getRect(r),a=e>=i.left-l&&e<=i.right+l,s=t>=i.top-l&&t<=i.bottom+l;return a&&s?n=r:void 0}}),n},_prepareGroup=function(e){function t(e,n){return function(r,l,i,a){var s=r.options.group.name&&l.options.group.name&&r.options.group.name===l.options.group.name;if(null==e&&(n||s))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,l,i,a),n)(r,l,i,a);var o=(n?r:l).options.group.name;return!0===e||"string"==typeof e&&e===o||e.join&&e.indexOf(o)>-1}}var n={},r=e.group;r&&"object"==_typeof(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","")};documentExists&&!ChromeForAndroid&&document.addEventListener("click",function(e){if(ignoreNextClick)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ignoreNextClick=!1,!1},!0);var nearestEmptyInsertDetectEvent=function(e){if(dragEl){e=e.touches?e.touches[0]:e;var t=_detectNearestEmptySortable(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[expando]._onDragOver(n)}}},_checkOutsideTargetEl=function(e){dragEl&&dragEl.parentNode[expando]._isOutsideThisEl(e.target)};function Sortable(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=_extends({},t),e[expando]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer&&"PointerEvent"in window&&(!Safari||IOS),emptyInsertThreshold:5};for(var r in PluginManager.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var l in _prepareGroup(t),this)"_"===l.charAt(0)&&"function"==typeof this[l]&&(this[l]=this[l].bind(this));this.nativeDraggable=!t.forceFallback&&supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?on(e,"pointerdown",this._onTapStart):(on(e,"mousedown",this._onTapStart),on(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(on(e,"dragover",this),on(e,"dragenter",this)),sortables.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),_extends(this,AnimationStateManager())}function _globalDragOver(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function _onMove(e,t,n,r,l,i,a,s){var o,c,d=e[expando],p=d.options.onMove;return!window.CustomEvent||IE11OrLess||Edge?(o=document.createEvent("Event")).initEvent("move",!0,!0):o=new CustomEvent("move",{bubbles:!0,cancelable:!0}),o.to=t,o.from=e,o.dragged=n,o.draggedRect=r,o.related=l||t,o.relatedRect=i||getRect(t),o.willInsertAfter=s,o.originalEvent=a,e.dispatchEvent(o),p&&(c=p.call(d,o,a)),c}function _disableDraggable(e){e.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(e,t,n){var r=getRect(getChild(n.el,0,n.options,!0)),l=getChildContainingRectFromElement(n.el,n.options,ghostEl);return t?e.clientX<l.left-10||e.clientY<r.top&&e.clientX<r.right:e.clientY<l.top-10||e.clientY<r.bottom&&e.clientX<r.left}function _ghostIsLast(e,t,n){var r=getRect(lastChild(n.el,n.options.draggable)),l=getChildContainingRectFromElement(n.el,n.options,ghostEl);return t?e.clientX>l.right+10||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>l.bottom+10||e.clientX>r.right&&e.clientY>r.top}function _getSwapDirection(e,t,n,r,l,i,a,s){var o=r?e.clientY:e.clientX,c=r?n.height:n.width,d=r?n.top:n.left,p=r?n.bottom:n.right,m=!1;if(!a)if(s&&targetMoveDistance<c*l){if(!pastFirstInvertThresh&&(1===lastDirection?o>d+c*i/2:o<p-c*i/2)&&(pastFirstInvertThresh=!0),pastFirstInvertThresh)m=!0;else if(1===lastDirection?o<d+targetMoveDistance:o>p-targetMoveDistance)return-lastDirection}else if(o>d+c*(1-l)/2&&o<p-c*(1-l)/2)return _getInsertDirection(t);return(m=m||a)&&(o<d+c*i/2||o>p-c*i/2)?o>d+c/2?1:-1:0}function _getInsertDirection(e){return index$2(dragEl)<index$2(e)?1:-1}function _generateId(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function _saveInputCheckedState(e){savedInputChecked.length=0;for(var t=e.getElementsByTagName("input"),n=t.length;n--;){var r=t[n];r.checked&&savedInputChecked.push(r)}}function _nextTick(e){return setTimeout(e,0)}function _cancelNextTick(e){return clearTimeout(e)}Sortable.prototype={constructor:Sortable,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(lastTarget=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,dragEl):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,l=r.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,s=(a||e).target,o=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=r.filter;if(_saveInputCheckedState(n),!dragEl&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||r.disabled)&&!o.isContentEditable&&(this.nativeDraggable||!Safari||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=closest(s,r.draggable,n,!1))&&s.animated||lastDownEl===s)){if(oldIndex=index$2(s),oldDraggableIndex=index$2(s,r.draggable),"function"==typeof c){if(c.call(this,e,s,this))return _dispatchEvent({sortable:t,rootEl:o,name:"filter",targetEl:s,toEl:n,fromEl:n}),pluginEvent("filter",t,{evt:e}),void(l&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(r){if(r=closest(o,r.trim(),n,!1))return _dispatchEvent({sortable:t,rootEl:r,name:"filter",targetEl:s,fromEl:n,toEl:n}),pluginEvent("filter",t,{evt:e}),!0})))return void(l&&e.preventDefault());r.handle&&!closest(o,r.handle,n,!1)||this._prepareDragStart(e,a,s)}}},_prepareDragStart:function(e,t,n){var r,l=this,i=l.el,a=l.options,s=i.ownerDocument;if(n&&!dragEl&&n.parentNode===i){var o=getRect(n);if(rootEl=i,parentEl=(dragEl=n).parentNode,nextEl=dragEl.nextSibling,lastDownEl=n,activeGroup=a.group,Sortable.dragged=dragEl,tapEvt={target:dragEl,clientX:(t||e).clientX,clientY:(t||e).clientY},tapDistanceLeft=tapEvt.clientX-o.left,tapDistanceTop=tapEvt.clientY-o.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,dragEl.style["will-change"]="all",r=function(){pluginEvent("delayEnded",l,{evt:e}),Sortable.eventCanceled?l._onDrop():(l._disableDelayedDragEvents(),!FireFox&&l.nativeDraggable&&(dragEl.draggable=!0),l._triggerDragStart(e,t),_dispatchEvent({sortable:l,name:"choose",originalEvent:e}),toggleClass(dragEl,a.chosenClass,!0))},a.ignore.split(",").forEach(function(e){find(dragEl,e.trim(),_disableDraggable)}),on(s,"dragover",nearestEmptyInsertDetectEvent),on(s,"mousemove",nearestEmptyInsertDetectEvent),on(s,"touchmove",nearestEmptyInsertDetectEvent),a.supportPointer?(on(s,"pointerup",l._onDrop),!this.nativeDraggable&&on(s,"pointercancel",l._onDrop)):(on(s,"mouseup",l._onDrop),on(s,"touchend",l._onDrop),on(s,"touchcancel",l._onDrop)),FireFox&&this.nativeDraggable&&(this.options.touchStartThreshold=4,dragEl.draggable=!0),pluginEvent("delayStart",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(Edge||IE11OrLess))r();else{if(Sortable.eventCanceled)return void this._onDrop();a.supportPointer?(on(s,"pointerup",l._disableDelayedDrag),on(s,"pointercancel",l._disableDelayedDrag)):(on(s,"mouseup",l._disableDelayedDrag),on(s,"touchend",l._disableDelayedDrag),on(s,"touchcancel",l._disableDelayedDrag)),on(s,"mousemove",l._delayedDragTouchMoveHandler),on(s,"touchmove",l._delayedDragTouchMoveHandler),a.supportPointer&&on(s,"pointermove",l._delayedDragTouchMoveHandler),l._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag),off(e,"touchend",this._disableDelayedDrag),off(e,"touchcancel",this._disableDelayedDrag),off(e,"pointerup",this._disableDelayedDrag),off(e,"pointercancel",this._disableDelayedDrag),off(e,"mousemove",this._delayedDragTouchMoveHandler),off(e,"touchmove",this._delayedDragTouchMoveHandler),off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?on(document,"pointermove",this._onTouchMove):on(document,t?"touchmove":"mousemove",this._onTouchMove):(on(dragEl,"dragend",this),on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var n=this.options;!e&&toggleClass(dragEl,n.dragClass,!1),toggleClass(dragEl,n.ghostClass,!0),Sortable.active=this,e&&this._appendGhost(),_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(touchEvt){this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var e=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY))!==t;)t=e;if(dragEl.parentNode[expando]._isOutsideThisEl(e),t)do{if(t[expando]){if(t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=getParentOrHost(t));_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,l=e.touches?e.touches[0]:e,i=ghostEl&&matrix(ghostEl,!0),a=ghostEl&&i&&i.a,s=ghostEl&&i&&i.d,o=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),c=(l.clientX-tapEvt.clientX+r.x)/(a||1)+(o?o[0]-ghostRelativeParentInitialScroll[0]:0)/(a||1),d=(l.clientY-tapEvt.clientY+r.y)/(s||1)+(o?o[1]-ghostRelativeParentInitialScroll[1]:0)/(s||1);if(!Sortable.active&&!awaitingDragStarted){if(n&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(ghostEl){i?(i.e+=c-(lastDx||0),i.f+=d-(lastDy||0)):i={a:1,b:0,c:0,d:1,e:c,f:d};var p="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");css(ghostEl,"webkitTransform",p),css(ghostEl,"mozTransform",p),css(ghostEl,"msTransform",p),css(ghostEl,"transform",p),lastDx=c,lastDy=d,touchEvt=l}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ghostEl){var e=this.options.fallbackOnBody?document.body:rootEl,t=getRect(dragEl,!0,PositionGhostAbsolutely,!0,e),n=this.options;if(PositionGhostAbsolutely){for(ghostRelativeParent=e;"static"===css(ghostRelativeParent,"position")&&"none"===css(ghostRelativeParent,"transform")&&ghostRelativeParent!==document;)ghostRelativeParent=ghostRelativeParent.parentNode;ghostRelativeParent!==document.body&&ghostRelativeParent!==document.documentElement?(ghostRelativeParent===document&&(ghostRelativeParent=getWindowScrollingElement()),t.top+=ghostRelativeParent.scrollTop,t.left+=ghostRelativeParent.scrollLeft):ghostRelativeParent=getWindowScrollingElement(),ghostRelativeParentInitialScroll=getRelativeScrollOffset(ghostRelativeParent)}toggleClass(ghostEl=dragEl.cloneNode(!0),n.ghostClass,!1),toggleClass(ghostEl,n.fallbackClass,!0),toggleClass(ghostEl,n.dragClass,!0),css(ghostEl,"transition",""),css(ghostEl,"transform",""),css(ghostEl,"box-sizing","border-box"),css(ghostEl,"margin",0),css(ghostEl,"top",t.top),css(ghostEl,"left",t.left),css(ghostEl,"width",t.width),css(ghostEl,"height",t.height),css(ghostEl,"opacity","0.8"),css(ghostEl,"position",PositionGhostAbsolutely?"absolute":"fixed"),css(ghostEl,"zIndex","100000"),css(ghostEl,"pointerEvents","none"),Sortable.ghost=ghostEl,e.appendChild(ghostEl),css(ghostEl,"transform-origin",tapDistanceLeft/parseInt(ghostEl.style.width)*100+"% "+tapDistanceTop/parseInt(ghostEl.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,l=n.options;pluginEvent("dragStart",this,{evt:e}),Sortable.eventCanceled?this._onDrop():(pluginEvent("setupClone",this),Sortable.eventCanceled||((cloneEl=clone(dragEl)).removeAttribute("id"),cloneEl.draggable=!1,cloneEl.style["will-change"]="",this._hideClone(),toggleClass(cloneEl,this.options.chosenClass,!1),Sortable.clone=cloneEl),n.cloneId=_nextTick(function(){pluginEvent("clone",n),Sortable.eventCanceled||(n.options.removeCloneOnHide||rootEl.insertBefore(cloneEl,dragEl),n._hideClone(),_dispatchEvent({sortable:n,name:"clone"}))}),!t&&toggleClass(dragEl,l.dragClass,!0),t?(ignoreNextClick=!0,n._loopId=setInterval(n._emulateDragOver,50)):(off(document,"mouseup",n._onDrop),off(document,"touchend",n._onDrop),off(document,"touchcancel",n._onDrop),r&&(r.effectAllowed="move",l.setData&&l.setData.call(n,r,dragEl)),on(document,"drop",n),css(dragEl,"transform","translateZ(0)")),awaitingDragStarted=!0,n._dragStartId=_nextTick(n._dragStarted.bind(n,t,e)),on(document,"selectstart",n),moved=!0,window.getSelection().removeAllRanges(),Safari&&css(document.body,"user-select","none"))},_onDragOver:function(e){var t,n,r,l,i=this.el,a=e.target,s=this.options,o=s.group,c=Sortable.active,d=activeGroup===o,p=s.sort,m=putSortable||c,u=this,h=!1;if(!_silent){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),a=closest(a,s.draggable,i,!0),L("dragOver"),Sortable.eventCanceled)return h;if(dragEl.contains(e.target)||a.animated&&a.animatingX&&a.animatingY||u._ignoreWhileAnimating===a)return P(!1);if(ignoreNextClick=!1,c&&!s.disabled&&(d?p||(r=parentEl!==rootEl):putSortable===this||(this.lastPutMode=activeGroup.checkPull(this,c,dragEl,e))&&o.checkPut(this,c,dragEl,e))){if(l="vertical"===this._getDirection(e,a),t=getRect(dragEl),L("dragOverValid"),Sortable.eventCanceled)return h;if(r)return parentEl=rootEl,$(),this._hideClone(),L("revert"),Sortable.eventCanceled||(nextEl?rootEl.insertBefore(dragEl,nextEl):rootEl.appendChild(dragEl)),P(!0);var f=lastChild(i,s.draggable);if(!f||_ghostIsLast(e,l,this)&&!f.animated){if(f===dragEl)return P(!1);if(f&&i===e.target&&(a=f),a&&(n=getRect(a)),!1!==_onMove(rootEl,i,dragEl,t,a,n,e,!!a))return $(),f&&f.nextSibling?i.insertBefore(dragEl,f.nextSibling):i.appendChild(dragEl),parentEl=i,N(),P(!0)}else if(f&&_ghostIsFirst(e,l,this)){var g=getChild(i,0,s,!0);if(g===dragEl)return P(!1);if(n=getRect(a=g),!1!==_onMove(rootEl,i,dragEl,t,a,n,e,!1))return $(),i.insertBefore(dragEl,g),parentEl=i,N(),P(!0)}else if(a.parentNode===i){n=getRect(a);var v,b,y,_=dragEl.parentNode!==i,x=!_dragElInRowColumn(dragEl.animated&&dragEl.toRect||t,a.animated&&a.toRect||n,l),A=l?"top":"left",w=isScrolledPast(a,"top","top")||isScrolledPast(dragEl,"top","top"),k=w?w.scrollTop:void 0;if(lastTarget!==a&&(b=n[A],pastFirstInvertThresh=!1,isCircumstantialInvert=!x&&s.invertSwap||_),0!==(v=_getSwapDirection(e,a,n,l,x?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,isCircumstantialInvert,lastTarget===a))){var C=index$2(dragEl);do{C-=v,y=parentEl.children[C]}while(y&&("none"===css(y,"display")||y===ghostEl))}if(0===v||y===a)return P(!1);lastTarget=a,lastDirection=v;var S=a.nextElementSibling,E=!1,D=_onMove(rootEl,i,dragEl,t,a,n,e,E=1===v);if(!1!==D)return 1!==D&&-1!==D||(E=1===D),_silent=!0,setTimeout(_unsilent,30),$(),E&&!S?i.appendChild(dragEl):a.parentNode.insertBefore(dragEl,E?S:a),w&&scrollBy(w,0,k-w.scrollTop),parentEl=dragEl.parentNode,void 0===b||isCircumstantialInvert||(targetMoveDistance=Math.abs(b-getRect(a)[A])),N(),P(!0)}if(i.contains(dragEl))return P(!1)}return!1}function L(s,o){pluginEvent(s,u,_objectSpread2({evt:e,isOwner:d,axis:l?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:p,fromSortable:m,target:a,completed:P,onMove:function(n,r){return _onMove(rootEl,i,dragEl,t,n,getRect(n),e,r)},changed:N},o))}function $(){L("dragOverAnimationCapture"),u.captureAnimationState(),u!==m&&m.captureAnimationState()}function P(t){return L("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(u),u!==m&&(toggleClass(dragEl,putSortable?putSortable.options.ghostClass:c.options.ghostClass,!1),toggleClass(dragEl,s.ghostClass,!0)),putSortable!==u&&u!==Sortable.active?putSortable=u:u===Sortable.active&&putSortable&&(putSortable=null),m===u&&(u._ignoreWhileAnimating=a),u.animateAll(function(){L("dragOverAnimationComplete"),u._ignoreWhileAnimating=null}),u!==m&&(m.animateAll(),m._ignoreWhileAnimating=null)),(a===dragEl&&!dragEl.animated||a===i&&!a.animated)&&(lastTarget=null),s.dragoverBubble||e.rootEl||a===document||(dragEl.parentNode[expando]._isOutsideThisEl(e.target),!t&&nearestEmptyInsertDetectEvent(e)),!s.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),h=!0}function N(){newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,s.draggable),_dispatchEvent({sortable:u,name:"change",toEl:i,newIndex:newIndex,newDraggableIndex:newDraggableIndex,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){off(document,"mousemove",this._onTouchMove),off(document,"touchmove",this._onTouchMove),off(document,"pointermove",this._onTouchMove),off(document,"dragover",nearestEmptyInsertDetectEvent),off(document,"mousemove",nearestEmptyInsertDetectEvent),off(document,"touchmove",nearestEmptyInsertDetectEvent)},_offUpEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._onDrop),off(e,"touchend",this._onDrop),off(e,"pointerup",this._onDrop),off(e,"pointercancel",this._onDrop),off(e,"touchcancel",this._onDrop),off(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,n.draggable),pluginEvent("drop",this,{evt:e}),parentEl=dragEl&&dragEl.parentNode,newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,n.draggable),Sortable.eventCanceled||(awaitingDragStarted=!1,isCircumstantialInvert=!1,pastFirstInvertThresh=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),_cancelNextTick(this.cloneId),_cancelNextTick(this._dragStartId),this.nativeDraggable&&(off(document,"drop",this),off(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Safari&&css(document.body,"user-select",""),css(dragEl,"transform",""),e&&(moved&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ghostEl&&ghostEl.parentNode&&ghostEl.parentNode.removeChild(ghostEl),(rootEl===parentEl||putSortable&&"clone"!==putSortable.lastPutMode)&&cloneEl&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),dragEl&&(this.nativeDraggable&&off(dragEl,"dragend",this),_disableDraggable(dragEl),dragEl.style["will-change"]="",moved&&!awaitingDragStarted&&toggleClass(dragEl,putSortable?putSortable.options.ghostClass:this.options.ghostClass,!1),toggleClass(dragEl,this.options.chosenClass,!1),_dispatchEvent({sortable:this,name:"unchoose",toEl:parentEl,newIndex:null,newDraggableIndex:null,originalEvent:e}),rootEl!==parentEl?(newIndex>=0&&(_dispatchEvent({rootEl:parentEl,name:"add",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"remove",toEl:parentEl,originalEvent:e}),_dispatchEvent({rootEl:parentEl,name:"sort",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),putSortable&&putSortable.save()):newIndex!==oldIndex&&newIndex>=0&&(_dispatchEvent({sortable:this,name:"update",toEl:parentEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex,newDraggableIndex=oldDraggableIndex),_dispatchEvent({sortable:this,name:"end",toEl:parentEl,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){pluginEvent("nulling",this),rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=cloneHidden=tapEvt=touchEvt=moved=newIndex=newDraggableIndex=oldIndex=oldDraggableIndex=lastTarget=lastDirection=putSortable=activeGroup=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,savedInputChecked.forEach(function(e){e.checked=!0}),savedInputChecked.length=lastDx=lastDy=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(e),_globalDragOver(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,l=n.length,i=this.options;r<l;r++)closest(e=n[r],i.draggable,this.el,!1)&&t.push(e.getAttribute(i.dataIdAttr)||_generateId(e));return t},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var l=r.children[t];closest(l,this.options.draggable,r,!1)&&(n[e]=l)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return closest(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];var r=PluginManager.modifyOption(this,e,t);n[e]=void 0!==r?r:t,"group"===e&&_prepareGroup(n)},destroy:function(){pluginEvent("destroy",this);var e=this.el;e[expando]=null,off(e,"mousedown",this._onTapStart),off(e,"touchstart",this._onTapStart),off(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(off(e,"dragover",this),off(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(e){e.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),sortables.splice(sortables.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!cloneHidden){if(pluginEvent("hideClone",this),Sortable.eventCanceled)return;css(cloneEl,"display","none"),this.options.removeCloneOnHide&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),cloneHidden=!0}},_showClone:function(e){if("clone"===e.lastPutMode){if(cloneHidden){if(pluginEvent("showClone",this),Sortable.eventCanceled)return;dragEl.parentNode!=rootEl||this.options.group.revertClone?nextEl?rootEl.insertBefore(cloneEl,nextEl):rootEl.appendChild(cloneEl):rootEl.insertBefore(cloneEl,dragEl),this.options.group.revertClone&&this.animate(dragEl,cloneEl),css(cloneEl,"display",""),cloneHidden=!1}}else this._hideClone()}},documentExists&&on(document,"touchmove",function(e){(Sortable.active||awaitingDragStarted)&&e.cancelable&&e.preventDefault()}),Sortable.utils={on:on,off:off,css:css,find:find,is:function(e,t){return!!closest(e,t,e,!1)},extend:extend,throttle:throttle,closest:closest,toggleClass:toggleClass,clone:clone,index:index$2,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:_detectDirection,getChild:getChild,expando:expando},Sortable.get=function(e){return e[expando]},Sortable.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]),t.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),e.utils)),PluginManager.mount(e)})},Sortable.create=function(e,t){return new Sortable(e,t)},Sortable.version=version;var autoScrolls=[],scrollEl,scrollRootEl,scrolling=!1,lastAutoScrollX,lastAutoScrollY,touchEvt$1,pointerElemChangedInterval;function AutoScrollPlugin(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?on(document,"dragover",this._handleAutoScroll):this.options.supportPointer?on(document,"pointermove",this._handleFallbackAutoScroll):t.touches?on(document,"touchmove",this._handleFallbackAutoScroll):on(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?off(document,"dragover",this._handleAutoScroll):(off(document,"pointermove",this._handleFallbackAutoScroll),off(document,"touchmove",this._handleFallbackAutoScroll),off(document,"mousemove",this._handleFallbackAutoScroll)),clearPointerElemChangedInterval(),clearAutoScrolls(),cancelThrottle()},nulling:function(){touchEvt$1=scrollRootEl=scrollEl=scrolling=pointerElemChangedInterval=lastAutoScrollX=lastAutoScrollY=null,autoScrolls.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,l=(e.touches?e.touches[0]:e).clientY,i=document.elementFromPoint(r,l);if(touchEvt$1=e,t||this.options.forceAutoScrollFallback||Edge||IE11OrLess||Safari){autoScroll(e,this.options,i,t);var a=getParentAutoScrollElement(i,!0);!scrolling||pointerElemChangedInterval&&r===lastAutoScrollX&&l===lastAutoScrollY||(pointerElemChangedInterval&&clearPointerElemChangedInterval(),pointerElemChangedInterval=setInterval(function(){var i=getParentAutoScrollElement(document.elementFromPoint(r,l),!0);i!==a&&(a=i,clearAutoScrolls()),autoScroll(e,n.options,i,t)},10),lastAutoScrollX=r,lastAutoScrollY=l)}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(i,!0)===getWindowScrollingElement())return void clearAutoScrolls();autoScroll(e,this.options,getParentAutoScrollElement(i,!1),!1)}}},_extends(e,{pluginName:"scroll",initializeByDefault:!0})}function clearAutoScrolls(){autoScrolls.forEach(function(e){clearInterval(e.pid)}),autoScrolls=[]}function clearPointerElemChangedInterval(){clearInterval(pointerElemChangedInterval)}var autoScroll=throttle(function(e,t,n,r){if(t.scroll){var l,i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,s=t.scrollSensitivity,o=t.scrollSpeed,c=getWindowScrollingElement(),d=!1;scrollRootEl!==n&&(scrollRootEl=n,clearAutoScrolls(),scrollEl=t.scroll,l=t.scrollFn,!0===scrollEl&&(scrollEl=getParentAutoScrollElement(n,!0)));var p=0,m=scrollEl;do{var u=m,h=getRect(u),f=h.top,g=h.bottom,v=h.left,b=h.right,y=h.width,_=h.height,x=void 0,A=void 0,w=u.scrollWidth,k=u.scrollHeight,C=css(u),S=u.scrollLeft,E=u.scrollTop;u===c?(x=y<w&&("auto"===C.overflowX||"scroll"===C.overflowX||"visible"===C.overflowX),A=_<k&&("auto"===C.overflowY||"scroll"===C.overflowY||"visible"===C.overflowY)):(x=y<w&&("auto"===C.overflowX||"scroll"===C.overflowX),A=_<k&&("auto"===C.overflowY||"scroll"===C.overflowY));var D=x&&(Math.abs(b-i)<=s&&S+y<w)-(Math.abs(v-i)<=s&&!!S),L=A&&(Math.abs(g-a)<=s&&E+_<k)-(Math.abs(f-a)<=s&&!!E);if(!autoScrolls[p])for(var $=0;$<=p;$++)autoScrolls[$]||(autoScrolls[$]={});autoScrolls[p].vx==D&&autoScrolls[p].vy==L&&autoScrolls[p].el===u||(autoScrolls[p].el=u,autoScrolls[p].vx=D,autoScrolls[p].vy=L,clearInterval(autoScrolls[p].pid),0==D&&0==L||(d=!0,autoScrolls[p].pid=setInterval(function(){r&&0===this.layer&&Sortable.active._onTouchMove(touchEvt$1);var t=autoScrolls[this.layer].vy?autoScrolls[this.layer].vy*o:0,n=autoScrolls[this.layer].vx?autoScrolls[this.layer].vx*o:0;"function"==typeof l&&"continue"!==l.call(Sortable.dragged.parentNode[expando],n,t,e,touchEvt$1,autoScrolls[this.layer].el)||scrollBy(autoScrolls[this.layer].el,n,t)}.bind({layer:p}),24))),p++}while(t.bubbleScroll&&m!==c&&(m=getParentAutoScrollElement(m,!1)));scrolling=d}},30),drop=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,l=e.activeSortable,i=e.dispatchSortableEvent,a=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var o=n||l;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,d=document.elementFromPoint(c.clientX,c.clientY);s(),o&&!o.el.contains(d)&&(i("spill"),this.onSpill({dragEl:r,putSortable:n}))}};function Revert(){}function Remove(){}Revert.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var r=getChild(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:drop},_extends(Revert,{pluginName:"revertOnSpill"}),Remove.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:drop},_extends(Remove,{pluginName:"removeOnSpill"}),Sortable.mount(new AutoScrollPlugin),Sortable.mount(Remove,Revert);var script$9={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({renyuanxinxi:[],institutionList:[],customerData:[],checklist:[],searchContent:"",disabilityLv:{"01":"基本正常","02":"轻度失能","03":"中度失能","04":"重度失能Ⅰ级","05":"重度失能ⅠⅠ级","06":"重度失能ⅠⅠⅠ级","":"请选择护理对象"},calendarTime:"",rangeTime:[],exportTime:{startDate:[]},unitType:null,nowdate:new Date,dialogVisibleExp:!1,loadExp:!1,expApi:"",expApiName:"",expBtn:[{key:1,name:"导出护理计划",api:"wxOrderInfo",fileName:"护理计划"},{key:2,name:"导出护理项明细",api:"wxOrderItemInfo",fileName:"护理计划明细"},{key:3,name:"导出分配信息",api:"wxOrderItemUserInfo",fileName:"护理计划分配信息"},{key:4,name:"导出排班信息",api:"wxOrderSchedulingInfo",fileName:"护理计划排班信息"},{key:5,name:"自动生成当月护理计划",api:"repeatedGeneration",fileName:"自动生成当月护理计划信息"}],file:{fileurl:"",dialogVisible:!1,title:"",type:""},workerObj:{},ruleForm:{SchedulingData:[]},value:new Date,title:"排班",SchedulingLoading:!0,SchedulingDialogVisible:!1,detailsDialogVisible:!1,expObjVisible:!1,expObj:{},expObjPrint:{},templateSelection:"",allocationData:[],allocationLoading:!0,allocationDialogVisible:!1,priceType:null,NursingArrData:[],placeOrder:[],nurseObject:[],FormData:{},fileList:[],NursingLoading:!0,dialogVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},NursingData:[],institutionData:[],institutionArrData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{status:[{required:!0,message:"请选择审核结果",trigger:"change"}],title:[{required:!0,message:"请输入套餐名称",trigger:"blur"}],no:[{required:!0,message:"请输入套餐编号",trigger:"blur"}],clockDate:[{required:!0,validator:(e,t,n)=>{t?n():n(new Error("请选择排班日期"))},trigger:"blur"}],startDate:[{required:!0,message:"请选择计划开始日期",trigger:"change"}],endDate:[{required:!0,message:"请选择计划结束日期",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}],projectPlanId:[{required:!0,message:"请选择护理内容",trigger:"change"}],priceType:[{required:!0,message:"请选择护理类型",trigger:"change"}],familyId:[{required:!0,message:"请选择护理对象",trigger:"change"}],familyLv:[{required:!0,message:"请选择失能等级",trigger:"change"}]},data:new Date,time:"",temp:{},setData:[],dates:[],downloadLoading:!1,checkAll:!1,dialogVisible:!1,projectList:[]}),computed:{ScheduleDate:()=>function(e){let t;return t=!(!e.clockDate||!e.id)&&e.clockDate<this.$moment().format("YYYY-MM-DD"),t},Summary:()=>function(e,t){return(e*t).toFixed(2)},getTimeDate:()=>function(e){if(e)return this.$moment(e).format("MM月DD号")},setTimeDate:()=>function(e){if(e)return this.$moment(e).format("HH:mm:ss")},getDate(){return this.$moment().format("YYYY-MM-DD")},compareDate:()=>function(e,t,n){if(e)var r=e.lastIndexOf("-"),l=e.substring(r+1,e.length),i=e.substring(0,r);if(this.$moment(t).format("HH:mm:ss")<i&&this.$moment(n).format("HH:mm:ss")>l)return!0}},created(){this.getList(),this.getinstitution()},updated(){this.$nextTick(()=>{this.$refs.standTable&&this.$refs.standTable.doLayout()})},methods:{initDrag(){new Sortable(document.querySelector(".draggable-table .el-table__body-wrapper tbody"),{handle:".handle",animation:150,onEnd:({newIndex:e,oldIndex:t})=>{const n=this.NursingData[t];this.NursingData.splice(t,1),this.NursingData.splice(e,0,n),this.NursingData.map((e,t)=>{e.sort=t+1}),console.log(this.NursingData)}})},addNurse(){this.dialogVisible=!0,this.projectList=[];const e=[];this.temp.itemList&&(this.temp.itemList.map(t=>{e.push(t.projectId)}),this.projectList=e)},determine(){this.dialogVisible=!1,setTimeout(()=>{this.NursingLoading=!1},1500);for(var e=0;e<this.projectList.length;e++){const t=this.institutionData.find((t,n)=>(t.projectPrice3=t.price3,t.threePrice=t.threePrice,t.value=t.value,t.type=t.type,t.value==this.projectList[e]));this.NursingData.some(e=>e.value===t.value)||(this.NursingData.push(t),this.NursingData.map((e,t)=>{e.sort=t+1}))}this.initDrag()},removeDataArr(e){var t={};return e=e.reduce(function(e,n){return!t[n.projectId]&&(t[n.projectId]=e.push(n)),e},[])},handleCheckAllChange(e){this.dates.map(t=>{t.show=!!e})},onPrint(){this.$print(this.$refs.printDom1)},getExpPrint(e){ClockJsInfo({yearMonth:e}).then(e=>{1===e.status&&(this.expObjPrint=e.result)})},PlanexpExcel(e){wxSettlementInfo({id:e.id,orderNo:e.no}).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`结算信息导出/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}})},expExcel2(e){ClockInfo({orderNo:e.no}).then(e=>{if(1===e.status){this.unitType=e.result.unitType;const t={},n=e.result.list[e.result.list.length-1];for(const e in n)"string"==typeof n[e]&&n[e].includes("-")?t[e]=n[e].split(/-/):t[e]=n[e];e.result.list[e.result.list.length-1]=t,this.expObj=e.result,this.expObjVisible=!0}})},familyChange(e){if(e){const t=this.nurseObject.find(t=>t.value==e);return void this.$set(this.temp,"familyLv",t.lv)}this.$set(this.temp,"familyLv","")},allcalendar(e,t){e.show=!e.show},getSummaries(e){const{columns:t,data:n}=e,r=[];return t.forEach((e,t)=>{if(0!==t){if("汇总价格"==e.label){const e=n.map(e=>Number(e.num)),l=n.map(e=>Number(e.projectPrice3));e.every(e=>isNaN(e))?r[t]="":r[t]=e.reduce((e,t,n)=>{const r=Number(t);return isNaN(r)?e:e+t*l[n]},0),r[t]&&(r[t]=r[t].toFixed(2))}}else r[t]="总价"}),r},expShow(e){if(5==e.key){const e=this.$createElement;var t=this;return void this.$msgbox({title:"请选择日期",message:e(Vue.component("msgboxDatePicker",{render:e=>e("div",null,[e("el-date-picker",{props:{value:t.value,type:"date",valueFormat:"yyyy-MM-dd",placeholder:"请选择日期"},on:{input:e=>{t.value=e,t.$emit("input",e)},change:e=>{t.data=e,t.$emit("change",e)}}})])})),showCancelButton:!0,closeOnClickModal:!1,confirmButtonText:"确定",cancelButtonText:"取消"}).then(()=>{repeatedGeneration({data:this.data}).then(e=>{1!=e.status?t.$notify({title:"提示",message:e.info,type:"error",duration:2e3}):t.$notify({title:"提示",message:e.info,type:"success",duration:2e3})})}).catch(()=>{this.$notify({title:"提示",message:"已取消",type:"error",duration:2e3})})}this.dialogVisibleExp=!0,this.expApi=e.api,this.expApiName=e.fileName,this.exportTime.startDate=[]},handleClose(){this.dialogVisibleExp=!1,this.expObjVisible=!1,this.exportTime.startDate=[],this.expApi="",this.expApiName=""},expExcel(){try{this.loadExp=!0;const e={startDate:this.exportTime.startDate[0],endDate:this.exportTime.startDate[1],url:this.expApi,familyId:this.exportTime.familyId,orderNo:this.exportTime.orderNo};ExportExcel(e).then(e=>{const t=new Blob([e]),n=this.expApiName;if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`${n}/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},complete(e){this.$confirm("此操作将更新订单状态, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{WxOrderFinish({id:e.id}).then(e=>{if(1==e.status)return this.$notify({title:"提示",message:e.info,type:"success",duration:2e3}),void this.getList();this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消"})})},details(e){WxOrderDetail({no:e.no}).then(t=>{if(this.temp=t.result,t.result.clockList||t.result.orderSchedulingList){this.calendarTime=this.temp.startDate;const e=this.$moment(this.temp.startDate).clone().subtract(1,"months").endOf("month"),n=e.clone().subtract((e.day()+6)%7,"days"),r=this.$moment(this.temp.endDate).clone().add(1,"months").startOf("month"),l=r.clone().add((7-r.day())%7,"days");this.rangeTime=[n.format("YYYY-MM-DD"),l.format("YYYY-MM-DD")];let i=[],a=[];t.result.clockList&&(i=t.result.clockList),t.result.orderSchedulingList&&(a=t.result.orderSchedulingList);const s=[...i,...a],o=[],c=new Map;s.forEach(e=>{const t=e.clockDate;if(c.has(t)){const n=c.get(t);n.upCreateTime=n.upCreateTime||e.upCreateTime,n.dnCreateTime=n.dnCreateTime||e.dnCreateTime,n.timeSlot=n.timeSlot||e.timeSlot}else c.set(t,e)}),o.push(...c.values()),this.setData=o}this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>(console.log(e),{label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),WxOrderItemgetOrderNoDetails({orderNo:e.no}).then(e=>{this.NursingData=e.result.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.type,threePrice:e.threePrice?e.threePrice:"-",projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3,alreadyNum:e.alreadyNum})),setTimeout(()=>{this.NursingLoading=!1},1500)}),e.pdfUrl&&this.fileList.push({name:e.pdfUrl,url:e.pdfUrl}),this.detailsDialogVisible=!0})},addScheduling(){this.ruleForm.SchedulingData.push({clockDate:"",time:[this.$moment().startOf("day").add(6,"hours").format("HH:mm"),this.$moment().startOf("day").add(10,"hours").format("HH:mm")],isUntime:""})},changeInput(e){console.log(e),0==e.isUntime?e.time=[this.$moment().startOf("day").format("HH:mm"),this.$moment().endOf("day").format("HH:mm")]:e.time=[this.$moment().startOf("day").add(6,"hours").format("HH:mm"),this.$moment().startOf("day").add(10,"hours").format("HH:mm")]},removeDomain(e,t){"新增排班"!=this.title&&e.id?WxOrderSchedulingDel({id:e.id}).then(e=>{if(1==e.status)return this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3}),void this.ruleForm.SchedulingData.splice(t,1);this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})}):this.ruleForm.SchedulingData.splice(t,1)},SchedulingConfirmation(){if(!this.time)return void this.$notify({title:"提示",message:"请选择排班时间",type:"error",duration:2e3});if(!this.dates.some(e=>!0===e.show))return void this.$notify({title:"提示",message:"请选择排班日期",type:"error",duration:2e3});const e={},t=[];for(let e=0;e<this.dates.length;e++)this.dates[e].show&&t.push({clockDate:this.dates[e].dataTime,IsUntime:"1",timeSlot:`${this.time[0]}-${this.time[1]}`});e.orderNo=this.temp.no,e.orderSchedulingList=t,WxOrderSchedulingSave(e).then(e=>{if(1==e.status)return this.SchedulingDialogVisible=!1,this.SchedulingLoading=!1,this.checkAll=!1,this.getList(),void this.$notify({title:e.info,message:"排班成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"排班失败",type:"error",duration:2e3})})},Scheduling(e){this.dates=[],this.temp=e;this.getAllDatesOfMonth(this.$moment(this.temp.startDate).format("YYYY"),this.$moment(this.temp.startDate).format("MM")).forEach(e=>{const t=this.$moment(e).format("YYYY-MM-DD");this.dates.push({show:!1,dataTime:t})}),this.ruleForm.SchedulingData=[],this.SchedulingDialogVisible=!0,this.SchedulingLoading=!0,setTimeout(()=>{WxOrderSchedulingGetByOrderNo({orderNo:e.no}).then(e=>{e.result.length>0?(this.title="编辑排班",this.ruleForm.SchedulingData=e.result.map(e=>{for(var t=0;t<this.dates.length;t++)this.dates[t].dataTime==e.clockDate&&(this.dates[t].show=!0);return e.isUntime=Number(e.isUntime),e.time=e.timeSlot.split("-"),e}),this.time=this.ruleForm.SchedulingData[0].time):this.title="新增排班"}),this.SchedulingLoading=!1},100)},getAllDatesOfMonth(e,t){const n=[],r=this.$moment([e,t-1,1]),l=r.clone().endOf("month"),i=r;for(;i.isBefore(l)||i.isSame(l,"day");)n.push(i.clone()),i.add(1,"days");return n},confirm(){this.templateSelection?WxOrderItemUserSave(this.workerObj).then(e=>{if(1==e.status)return this.allocationDialogVisible=!1,this.getList(),this.$notify({title:e.info,message:"分配成功",type:"success",duration:2e3}),void(this.templateSelection="");this.$notify({title:e.info,message:"分配失败",type:"error",duration:2e3})}):this.$message({message:"请选择护工",type:"warning",center:!0})},singleElection(e){this.templateSelection=e.id,this.workerObj.personId=this.templateSelection},selectTable(e){const t=JSON.parse(JSON.stringify(this.allocationData));let n;n=e.trim()?t.filter(t=>Object.keys(t).some(n=>String(t.name).toLowerCase().match(e.trim()))):this.allocationData,this.checklist=n},allocation(e){this.workerObj.orderNo=e.no,this.allocationDialogVisible=!0,SPersonAll().then(e=>{this.allocationData=e.result,this.checklist=e.result}),setTimeout(()=>{this.allocationLoading=!1},1500)},changePrice(e){this.priceType=e},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["PDF","pdf"].indexOf(n)<0?(this.$message({message:"只能pdf文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadPDF(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.pdfUrl=e.result.url)})},nurseDelete(e,t){"1"!=this.temp.projectPlanId?this.$message({message:"套餐内的护理项不能删除",type:"warning"}):this.NursingData.splice(t,1)},modify(e){e.edit=!0},InputBlur(e){e.edit=!1},getinstitution(){SProjectAll().then(e=>{this.institutionData=e.result.map((e,t)=>({label:e.title,type:e.type,value:e.id,threePrice:e.threePrice,price1:e.price1,price3:e.price3,edit:!1,num:"1",projectId:e.id}))}),SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))}),WxUserCustomAll().then(e=>{this.placeOrder=e.result.map((e,t)=>({label:e.nickName,value:e.id}))}),WxUserFamilyAll().then(e=>{this.nurseObject=e.result.map((e,t)=>({label:e.name,value:e.id,isDelete:e.isDelete,lv:e.lv?e.lv:""}))})},getList(){const e=JSON.parse(JSON.stringify(this.listQuery));e.playTime&&(e.startDate=e.playTime[0],e.endDate=e.playTime[1],delete e.playTime),WxOrderPage(e).then(e=>{this.list=e.result.data,this.total=e.result.count}),WxUserFamilyAll().then(e=>{this.customerData=e.result.map(e=>({label:e.name,value:e.name}))}),SysUnitAll().then(e=>{this.institutionList=e.result.map(e=>({label:e.name,value:e.id}))}),SPersonAll().then(e=>{this.renyuanxinxi=e.result.map(e=>({label:e.name,value:e.name}))})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>({label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),setTimeout(()=>{this.NursingLoading=!1},1500)},edit(e){"2"!=e.status?(this.dialogStatus="update",this.dialogFormVisible=!0,this.temp=e,this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>({label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),WxOrderItemgetOrderNoDetails({orderNo:e.no}).then(e=>{this.NursingData=e.result.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.type,threePrice:e.threePrice?e.threePrice:"-",projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3}))}),e.pdfUrl&&this.fileList.push({name:e.pdfUrl,url:e.pdfUrl}),setTimeout(()=>{this.NursingLoading=!1},1500)):this.$message({message:"已完成不允许编辑",type:"warning"})},NursingChange(e){console.log(e),"1"==e?this.NursingData=[]:SProjectPlanDetail({id:e}).then(e=>{e.result.itemList&&(this.NursingData=e.result.itemList.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.projectType,projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3})))})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.orderItemSaveList=this.NursingData,WxOrderSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})}))})},updateData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.orderItemSaveList=this.NursingData,WxOrderSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})}))})},handleDelete(e,t){"1"!=e.status&&"2"!=e.status?WxOrderDel({orderNo:e.no}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})}):this.$message({message:"进行中或已完成不允许删除",type:"warning"})}}};const __vue_script__$9=script$9;var __vue_render__$9=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"机构名称",prop:"unitName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择机构名称"},model:{value:e.listQuery.unitName,callback:function(t){e.$set(e.listQuery,"unitName",t)},expression:"listQuery.unitName"}},e._l(e.institutionList,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.label}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"护理对象",prop:"familyName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理对象"},model:{value:e.listQuery.familyName,callback:function(t){e.$set(e.listQuery,"familyName",t)},expression:"listQuery.familyName"}},e._l(e.customerData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.label}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"护工姓名",prop:"personName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.personName,callback:function(t){e.$set(e.listQuery,"personName",t)},expression:"listQuery.personName"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"计划时间",prop:"playTime"}},[n("el-date-picker",{attrs:{size:"small","value-format":"yyyy-MM-dd",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.listQuery.playTime,callback:function(t){e.$set(e.listQuery,"playTime",t)},expression:"listQuery.playTime"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),e._l(e.expBtn,function(t){return n("el-form-item",{key:t.key},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(n){return e.expShow(t)}}},[e._v("\n "+e._s(t.name)+"\n ")])],1)})],2)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"所属机构",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理对象",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.familyName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划流水号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划开始日期",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.startDate))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划结束日期",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.endDate))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理计划状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"2"==r.status?"success":""}},[e._v(e._s("1"==r.status?"进行中":"2"==r.status?"已完成":"3"==r.status?"已取消":"0"==r.status?"待执行":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"分配护工",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.personName?r.personName:"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"380","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return["2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.Scheduling(r,l)}}},[e._v("\n 排班\n ")]):e._e(),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.allocation(r,l)}}},[e._v("\n 分配护工\n ")]):e._e(),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]):e._e(),e._v(" "),"0"==r.status?n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")]):e._e(),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.details(r,l)}}},[e._v("\n 详情\n ")]),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.complete(r,l)}}},[e._v("\n 订单完成\n ")]):e._e(),e._v(" "),"2"==r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.PlanexpExcel(r,l)}}},[e._v("\n 导出\n ")]):e._e(),e._v(" "),n("el-button",{staticStyle:{"margin-top":"8px"},attrs:{size:"mini",type:"success"},on:{click:function(t){return e.expExcel2(r,l)}}},[e._v("\n 打印\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"60%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理对象",prop:"familyId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},on:{change:e.familyChange},model:{value:e.temp.familyId,callback:function(t){e.$set(e.temp,"familyId",t)},expression:"temp.familyId"}},e._l(e.nurseObject,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("状态:"+e._s("0"==t.isDelete?"正常":"1"==t.isDelete?"注销":"-"))])])}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划开始日期",prop:"startDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划开始日期"},model:{value:e.temp.startDate,callback:function(t){e.$set(e.temp,"startDate",t)},expression:"temp.startDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划结束日期",prop:"endDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划结束日期"},model:{value:e.temp.endDate,callback:function(t){e.$set(e.temp,"endDate",t)},expression:"temp.endDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理内容",prop:"projectPlanId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理内容"},on:{change:e.NursingChange},model:{value:e.temp.projectPlanId,callback:function(t){e.$set(e.temp,"projectPlanId",t)},expression:"temp.projectPlanId"}},e._l(e.NursingArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"失能等级",prop:"familyLv"}},[n("el-tag",{attrs:{type:"success"}},[e._v(e._s(e.disabilityLv[e.temp.familyLv]))])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件",prop:"pdfUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),"1"==e.temp.projectPlanId?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项组合",prop:"projectPlanId"}},[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.addNurse}},[e._v("新增护理项")])],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],ref:"standTable",staticClass:"draggable-table",staticStyle:{width:"100%"},attrs:{border:"",height:"35vh",data:e.NursingData,"summary-method":e.getSummaries,"show-summary":"","row-key":"projectId"}},[n("el-table-column",{attrs:{label:"鼠标长按",width:"100",align:"center"}},[n("el-button",{staticClass:"handle",attrs:{link:"",type:"text",size:"small",icon:"el-icon-s-operation"}},[e._v("拖拽")])],1),e._v(" "),n("el-table-column",{attrs:{label:"序号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sort))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"类别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"生活照料":"02"==r.type?"精神慰藉":"03"==r.type?"安全巡视":"04"==r.type?"医疗护理":"05"==r.type?"康复护理":"06"==r.type?"辅助器具":"07"==r.type?"居家护理":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"次数",align:"center",prop:"num"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[r.edit?n("el-input",{attrs:{placeholder:"次数"},on:{blur:function(t){return e.InputBlur(r,l)}},model:{value:r.num,callback:function(t){e.$set(r,"num",t)},expression:"row.num"}}):n("span",[e._v(e._s(r.num))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构护理价",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.projectPrice3))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"省厅价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.threePrice))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"汇总价格",align:"center",prop:"projectPrice1"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(e.Summary(r.num,r.projectPrice3)))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"200","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 修改次数\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.nurseDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"分配护工",visible:e.allocationDialogVisible,width:"45%"},on:{"update:visible":function(t){e.allocationDialogVisible=t}}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{staticStyle:{"margin-bottom":"20px"},attrs:{span:6}},[n("el-input",{attrs:{size:"mini",placeholder:"输入护工名称搜索"},on:{input:e.selectTable},model:{value:e.searchContent,callback:function(t){e.searchContent=t},expression:"searchContent"}})],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.allocationLoading,expression:"allocationLoading"}],staticStyle:{width:"100%"},attrs:{border:"",height:"50vh",data:e.checklist},on:{"row-click":e.singleElection}},[n("el-table-column",{attrs:{align:"center",width:"55",label:"选择"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-radio",{staticClass:"radio",attrs:{label:t.row.id},model:{value:e.templateSelection,callback:function(t){e.templateSelection=t},expression:"templateSelection"}},[n("span")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工联系号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工地址",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])})],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.allocationDialogVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.confirm}},[e._v("\n 分 配\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.title,visible:e.SchedulingDialogVisible,width:"40%"},on:{"update:visible":function(t){e.SchedulingDialogVisible=t}}},[n("el-form",{ref:"ruleForm",attrs:{model:e.ruleForm,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"排班时间"}},[n("el-time-picker",{staticStyle:{width:"80%"},attrs:{size:"small","is-range":"","range-separator":"至","start-placeholder":"开始时间",format:"HH:mm","end-placeholder":"结束时间",placeholder:"请选择服务时间","value-format":"HH:mm"},model:{value:e.time,callback:function(t){e.time=t},expression:"time"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"是否全选"}},[n("el-checkbox",{on:{change:e.handleCheckAllChange},model:{value:e.checkAll,callback:function(t){e.checkAll=t},expression:"checkAll"}},[e._v(e._s(e.checkAll?"是":"否"))])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("div",{staticClass:"list"},e._l(e.dates,function(t,r){return n("div",{key:r,staticClass:"item",on:{click:function(n){return e.allcalendar(t,r)}}},[e._v("\n "+e._s(t.dataTime)+" "+e._s(t.show?"✔️":""))])}),0)])],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.SchedulingDialogVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){return e.SchedulingConfirmation("ruleForm")}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"详情",visible:e.detailsDialogVisible,width:"45%"},on:{"update:visible":function(t){e.detailsDialogVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理对象",prop:"familyId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},model:{value:e.temp.familyId,callback:function(t){e.$set(e.temp,"familyId",t)},expression:"temp.familyId"}},e._l(e.nurseObject,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划开始日期",prop:"startDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",disabled:"",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划开始日期"},model:{value:e.temp.startDate,callback:function(t){e.$set(e.temp,"startDate",t)},expression:"temp.startDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划结束日期",prop:"endDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",disabled:"",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划结束日期"},model:{value:e.temp.endDate,callback:function(t){e.$set(e.temp,"endDate",t)},expression:"temp.endDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理内容",prop:"projectPlanId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"选择护理内容"},on:{change:e.NursingChange},model:{value:e.temp.projectPlanId,callback:function(t){e.$set(e.temp,"projectPlanId",t)},expression:"temp.projectPlanId"}},e._l(e.NursingArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"失能等级"}},["06"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能ⅠⅠⅠ级")]):e._e(),e._v(" "),"05"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能ⅠⅠ级")]):e._e(),e._v(" "),"04"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能Ⅰ级")]):e._e(),e._v(" "),"03"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("中度失能")]):e._e(),e._v(" "),"02"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("轻度失能")]):e._e(),e._v(" "),"01"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("基本正常")]):e._e()],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件",prop:"pdfUrl"}},[n("el-upload",{attrs:{action:"#",disabled:"",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",disabled:"",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("div",{staticClass:"calendar-dialog"},[n("el-calendar",{scopedSlots:e._u([{key:"dateCell",fn:function(t){t.date;var r=t.data;return[n("div",{staticClass:"card-group"},[n("div",{class:(r.isSelected,"card-calendar-text")},[n("span",[e._v(e._s(e.getTimeDate(r.day)))]),e._v(" "),r.isSelected?n("el-icon",[n("Select")],1):e._e()],1),e._v(" "),e._l(e.setData,function(t,l){return n("span",{key:t.id,staticClass:"card"},[t.clockDate===r.day?n("div",{staticClass:"card-flag"},[n("div",{class:e.getDate<t.clockDate?"card-text5":e.compareDate(t.timeSlot,t.upCreateTime,t.dnCreateTime)?" card-text1":" card-text2"},[n("span",[e._v(e._s(e.getTimeDate(r.day)))]),e._v(" "),t.timeSlot?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("排班:"+e._s(t.timeSlot))]):e._e(),e._v(" "),t.upCreateTime?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("上班:"+e._s(e.setTimeDate(t.upCreateTime)))]):e._e(),e._v(" "),t.dnCreateTime?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("下班:"+e._s(e.setTimeDate(t.dnCreateTime)))]):e._e()])]):n("div")])})],2)]}}]),model:{value:e.calendarTime,callback:function(t){e.calendarTime=t},expression:"calendarTime"}})],1)]),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],staticStyle:{width:"100%"},attrs:{border:"",height:"30vh",data:e.NursingData}},[n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"需要护理次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.num))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"实际护理次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.alreadyNum?r.alreadyNum:"-"))])]}}])})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){e.detailsDialogVisible=!1}}},[e._v("\n 关 闭\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"30%","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{ref:"dataForm",staticClass:"demo-form-inline",attrs:{model:e.exportTime,rules:e.rules,"label-position":"right","label-width":"90px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("请根据护理计划的开始日期和结束日期选择时间")])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.exportTime.startDate,callback:function(t){e.$set(e.exportTime,"startDate",t)},expression:"exportTime.startDate"}})],1)],1),e._v(" "),"护理计划信息"==this.expApiName?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"护理对象"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},model:{value:e.exportTime.familyId,callback:function(t){e.$set(e.exportTime,"familyId",t)},expression:"exportTime.familyId"}},e._l(e.nurseObject,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),"护理计划信息"!=this.expApiName?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"计划流水号"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入计划流水号"},model:{value:e.exportTime.orderNo,callback:function(t){e.$set(e.exportTime,"orderNo",t)},expression:"exportTime.orderNo"}})],1)],1):e._e()],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),"机构护理"==e.unitType?n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"打印",visible:e.expObjVisible,width:"100%","before-close":e.handleClose,top:"3vh"},on:{"update:visible":function(t){e.expObjVisible=t}}},[n("div",{ref:"printDom1",staticClass:"exptable",attrs:{id:"printDom1",border:"1"}},[n("div",{staticClass:"thead"},[e._v("\n "+e._s(e.expObj.orderYearMonth)+"\n ")]),e._v(" "),n("div",{staticClass:"tbody"},[n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("参保人姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personName))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("身份证")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personIdCode))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("年龄")]),e._v(" "),n("div",[e._v("\n "+e._s(e.expObj.personAge)+"\n ")]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("参保类型")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalType))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("制表人")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.unitName))])]),e._v(" "),n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("所属参保区划")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalCounty))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("失能等级")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.lv))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("家属姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.familyName))])]),e._v(" "),n("div",{staticClass:"leftXuhao loop"},[n("div",{staticClass:"num"},[e._v("序号")]),e._v(" "),n("div",{staticClass:"name"},[e._v("服务项目")]),e._v(" "),n("div",{staticClass:"day headday"},[n("span",[e._v("护理服务执行日期及次数")]),e._v(" "),n("div",{staticClass:"forday"},e._l(31,function(t){return n("span",{key:t},[e._v(e._s(t)+"日")])}),0)]),e._v(" "),n("div",{staticClass:"total"},[e._v("床日合计")])]),e._v(" "),e._l(e.expObj.list,function(t,r){return n("div",{key:r,staticClass:"tr loop"},[n("div",{staticClass:"num"},[e._v(e._s(r+1))]),e._v(" "),n("div",{staticClass:"name"},[e._v(e._s(t.title))]),e._v(" "),n("div",{staticClass:"day bodyday"},[n("div",{staticClass:"forday"},[e._l(31,function(r){return[Array.isArray(t["day"+r])?n("span",{key:r},e._l(t["day"+r],function(t,r){return n("p",{key:r,staticStyle:{margin:"0"}},[e._v("\n "+e._s(t)+"\n ")])}),0):n("span",{key:r},[e._v(e._s(t["day"+r]))])]})],2)]),e._v(" "),n("div",{staticClass:"total"},[e._v(e._s(t.num))])])})],2),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("协议服务机构负责人签字:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("家属确认签字按手印:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("盖章:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("日期:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("日期:")])])]),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{directives:[{name:"print",rawName:"v-print",value:e.print,expression:"print"}],attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.onPrint}},[e._v("\n 打 印\n ")])],1)]):e._e(),e._v(" "),"居家护理"==e.unitType?n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"打印",visible:e.expObjVisible,width:"100%","before-close":e.handleClose,top:"3vh"},on:{"update:visible":function(t){e.expObjVisible=t}}},[n("div",{ref:"printDom1",staticClass:"exptable",attrs:{id:"printDom1",border:"1"}},[n("div",{staticClass:"thead"},[e._v("\n "+e._s(e.expObj.orderYearMonth)+"\n ")]),e._v(" "),n("div",{staticClass:"tbody"},[n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("参保人姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personName))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("身份证")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personIdCode))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("年龄")]),e._v(" "),n("div",[e._v("\n "+e._s(e.expObj.personAge)+"\n ")]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("参保类型")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalType))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("制表人")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.unitName))])]),e._v(" "),n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("所属参保区划")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalCounty))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("失能等级")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.lv))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("家属姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.familyName))])]),e._v(" "),n("div",{staticClass:"leftXuhao loop"},[n("div",{staticClass:"num"},[e._v("序号")]),e._v(" "),n("div",{staticClass:"name"},[e._v("服务项目")]),e._v(" "),n("div",{staticClass:"day headday"},[n("span",[e._v("护理服务执行日期及护理项目次数(分钟)")]),e._v(" "),n("div",{staticClass:"forday"},e._l(31,function(t){return n("span",{key:t},[e._v(e._s(t)+"日")])}),0)])]),e._v(" "),e._l(e.expObj.list,function(t,r){return n("div",{key:r,staticClass:"tr loop"},[n("div",{staticClass:"num"},[e._v(e._s(r+1))]),e._v(" "),n("div",{staticClass:"name"},[e._v(e._s(t.title))]),e._v(" "),"当月服务总时长(小时)"==t.title?n("div",{staticClass:"day bodyday merged-cell"},[e._v("\n "+e._s(t.num)+"(小时)\n ")]):n("div",{staticClass:"day bodyday"},[n("div",{staticClass:"forday"},[e._l(31,function(r){return[Array.isArray(t["day"+r])?n("span",{key:r},e._l(t["day"+r],function(t,r){return n("p",{key:r,staticStyle:{margin:"0"}},[e._v("\n "+e._s(t)+"\n ")])}),0):n("span",{key:r},[e._v(e._s(t["day"+r]))])]})],2)])])})],2),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("协议服务机构负责人签字:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("家属确认签字按手印:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("盖章:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("日期:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("日期:")])])]),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{directives:[{name:"print",rawName:"v-print",value:e.print,expression:"print"}],attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.onPrint}},[e._v("\n 打 印\n ")])],1)]):e._e(),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"新增护理项",visible:e.dialogVisible,width:"30%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理项组合",multiple:""},model:{value:e.projectList,callback:function(t){e.projectList=t},expression:"projectList"}},e._l(e.institutionData,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("护理类型:"+e._s("01"==t.type?"生活照料":"02"==t.type?"精神慰藉":"03"==t.type?"安全巡视":"04"==t.type?"医疗护理":"05"==t.type?"康复护理":"06"==t.type?"辅助器具":"07"==t.type?"居家护理":"-"))])])}),1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.determine}},[e._v("确 定")])],1)],1)],1)},__vue_staticRenderFns__$9=[];__vue_render__$9._withStripped=!0;const __vue_inject_styles__$9=function(e){e&&e("data-v-36b0c510_0",{source:".el-col-12[data-v-36b0c510] {\n padding: 0 20px 0 0;\n}\n.addButton[data-v-36b0c510] {\n margin: 0 0 10px 0;\n}\n[data-v-36b0c510] .el-dialog__body {\n padding: 0px 20px;\n}\n[data-v-36b0c510] .el-calendar-table .el-calendar-day {\n padding: 0;\n}\n.is-selected[data-v-36b0c510] {\n color: #1989fa;\n background: yellow;\n}\n.is-add-selected[data-v-36b0c510] {\n color: #fff;\n background: #1989fa;\n}\n.calendar-dialog .card-group[data-v-36b0c510] {\n width: 100%;\n height: 100%;\n}\n.calendar-dialog .card-group .card-calendar-text[data-v-36b0c510] {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n padding: 8px;\n}\n.calendar-dialog .card-group .card[data-v-36b0c510] {\n position: relative;\n top: -100%;\n}\n.calendar-dialog .card-group .card-flag[data-v-36b0c510] {\n height: 100%;\n}\n.calendar-dialog .card-group .card1[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n}\n.calendar-dialog .card-group .card-text1[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text2[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text3[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text4[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text5[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card2[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n}\n.calendar-dialog .card-group .card3[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .card-text3[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .visits-val[data-v-36b0c510] {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n[data-v-36b0c510] .el-calendar__button-group {\n display: none;\n}\n.is-selected[data-v-36b0c510] {\n color: #1989fa;\n}\n.activeItem[data-v-36b0c510] {\n color: red;\n}\n.el-calendar-table td.is-today[data-v-36b0c510] {\n color: #000 !important;\n background: transparent !important;\n}\n.el-col-12[data-v-36b0c510] {\n padding: 0 20px 0 0;\n}\n.exptable[data-v-36b0c510] {\n font-size: 9px;\n text-align: center;\n width: 100%;\n}\n.exptable .leftXuhao[data-v-36b0c510] {\n display: flex;\n border-bottom: 1px solid #333;\n}\n.exptable .leftXuhao div[data-v-36b0c510] {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .thead[data-v-36b0c510] {\n border-bottom: 0;\n color: #000;\n padding: 8px 0;\n}\n.exptable .tbody[data-v-36b0c510] {\n border: 1px solid #333;\n font-size: 8px;\n}\n.exptable .tr[data-v-36b0c510] {\n display: flex;\n border-bottom: 1px solid #333;\n color: #111;\n}\n.exptable .tr div[data-v-36b0c510] {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .tr .bodyday[data-v-36b0c510] {\n flex: 1;\n}\n.exptable .tr div[data-v-36b0c510]:last-child {\n border-right: 0;\n}\n.exptable .eight div[data-v-36b0c510] {\n flex: 1;\n padding: 5px 0;\n}\n.exptable .eight .title[data-v-36b0c510] {\n width: 110px;\n flex: none;\n}\n.exptable .tr[data-v-36b0c510]:last-child {\n border-bottom: 0;\n}\n.exptable .loop .num[data-v-36b0c510] {\n width: 22px !important;\n}\n.exptable .loop .total[data-v-36b0c510] {\n width: 23px;\n padding: 5px 0;\n}\n.exptable .loop .name[data-v-36b0c510] {\n padding: 5px 0;\n flex: 0.1;\n}\n.exptable .loop .headday[data-v-36b0c510] {\n flex-flow: column;\n flex: 1;\n}\n.exptable .loop .headday .forday[data-v-36b0c510] {\n border-top: 1px solid #333;\n}\n.exptable .loop .day span[data-v-36b0c510] {\n padding: 10px 0;\n}\n.exptable .loop .forday[data-v-36b0c510] {\n display: table;\n width: 100%;\n}\n.exptable .loop .forday span[data-v-36b0c510] {\n display: table-cell;\n vertical-align: middle;\n border-right: 1px solid #333;\n width: 23px;\n height: 100%;\n overflow: hidden;\n word-wrap: break-word;\n word-break: break-all;\n}\n.exptable .loop .forday span[data-v-36b0c510]:last-child {\n border-right: 0;\n}\n.handwriting[data-v-36b0c510] {\n display: flex;\n}\n.handwriting div[data-v-36b0c510] {\n text-align: right;\n padding: 5px 0;\n}\n.handwriting .name[data-v-36b0c510] {\n margin-left: 60px;\n width: 120px;\n}\n.handwriting .bodyday[data-v-36b0c510] {\n width: 60%;\n margin-right: 60px;\n}\n.exptableprint[data-v-36b0c510] {\n font-size: 11px;\n}\n.exptableprint .tbody[data-v-36b0c510] {\n font-size: 10px;\n}\n.list[data-v-36b0c510] {\n padding: 15px;\n display: flex;\n flex-wrap: wrap;\n}\n.list .item[data-v-36b0c510] {\n border: 1px solid #ede9e9;\n height: 70px;\n padding: 10px;\n cursor: pointer;\n width: calc((100% - 50px) / 7);\n min-width: calc((100% - 30px) / 7);\n max-width: calc((100% - 30px) / 7);\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n}\n.list .item[data-v-36b0c510]:nth-child(7n+7) {\n margin-bottom: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\customerManagement\\carePlan\\index.vue","index.vue"],names:[],mappings:"AAokEA;EACA,mBAAA;ACnkEA;ADskEA;EACA,kBAAA;ACnkEA;ADskEA;EACA,iBAAA;ACnkEA;ADskEA;EACA,UAAA;ACnkEA;ADskEA;EACA,cAAA;EACA,kBAAA;ACnkEA;ADskEA;EACA,WAAA;EACA,mBAAA;ACnkEA;ADmmEA;EACA,WAAA;EACA,YAAA;AChmEA;ADkmEA;EACA,YAlCA;EAmCA,gBAnCA;EAoCA,gBApCA;EAqCA,YAAA;AChmEA;ADmmEA;EACA,kBAAA;EACA,UAAA;ACjmEA;ADomEA;EACA,YAAA;AClmEA;ADqmEA;EA1CA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,yCAVA;AC9iEA;ADgmEA;EApCA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,yCAtBA;EAoDA,YAAA;EACA,YAAA;EACA,eAAA;ACvlEA;AD0lEA;EA3CA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EA6DA,YAAA;EACA,YAAA;EACA,eAAA;ACjlEA;ADolEA;EAlDA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EAoEA,YAAA;EACA,YAAA;EACA,eAAA;AC3kEA;AD8kEA;EAzDA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EA2EA,YAAA;EACA,YAAA;EACA,eAAA;ACrkEA;ADwkEA;EAhEA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,yCAvBA;EAiFA,YAAA;EACA,YAAA;EACA,eAAA;AC/jEA;ADkkEA;EAjFA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,yCAXA;ACn+DA;ADikEA;EAzFA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,sBATA;AC59DA;AD4jEA;EAnFA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sBArBA;ACl9DA;ADsjEA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;ACpjEA;ADyjEA;EACA,aAAA;ACtjEA;ADyjEA;EACA,cAAA;ACtjEA;ADyjEA;EACA,UAAA;ACtjEA;ADyjEA;EACA,sBAAA;EACA,kCAAA;ACtjEA;ADyjEA;EACA,mBAAA;ACtjEA;ADyjEA;EACA,cAAA;EACA,kBAAA;EACA,WAAA;ACtjEA;ADyjEA;EACA,aAAA;EACA,6BAAA;ACvjEA;ADyjEA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,4BAAA;ACvjEA;AD2jEA;EAEA,gBAAA;EACA,WAAA;EACA,cAAA;AC1jEA;AD6jEA;EACA,sBAAA;EACA,cAAA;AC3jEA;AD8jEA;EACA,aAAA;EACA,6BAAA;EACA,WAAA;AC5jEA;AD8jEA;EAEA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,4BAAA;AC7jEA;ADikEA;EACA,OAAA;AC/jEA;ADkkEA;EACA,eAAA;AChkEA;ADokEA;EACA,OAAA;EAEA,cAAA;ACnkEA;ADskEA;EACA,YAAA;EACA,UAAA;ACpkEA;ADukEA;EACA,gBAAA;ACrkEA;ADykEA;EACA,sBAAA;ACvkEA;AD0kEA;EACA,WAAA;EACA,cAAA;ACxkEA;AD8kEA;EAEA,cAAA;EAEA,SAAA;AC9kEA;ADilEA;EACA,iBAAA;EACA,OAAA;AC/kEA;ADilEA;EACA,0BAAA;AC/kEA;ADmlEA;EACA,eAAA;ACjlEA;ADolEA;EACA,cAAA;EACA,WAAA;ACllEA;ADqlEA;EACA,mBAAA;EACA,sBAAA;EACA,4BAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,qBAAA;EACA,qBAAA;ACnlEA;ADslEA;EACA,eAAA;ACplEA;AD0lEA;EACA,aAAA;ACvlEA;ADylEA;EACA,iBAAA;EACA,cAAA;ACvlEA;AD0lEA;EACA,iBAAA;EACA,YAAA;ACxlEA;AD2lEA;EACA,UAAA;EACA,kBAAA;ACzlEA;AD6lEA;EACA,eAAA;AC1lEA;AD4lEA;EACA,eAAA;AC1lEA;AD8lEA;EACA,aAAA;EAGA,aAAA;EAEA,eAAA;AC9lEA;ADgmEA;EAEA,yBAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;EAIA,8BAAA;EAGA,kCAAA;EACA,kCAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,eAAA;ACpmEA;ADumEA;EACA,gBAAA;ACrmEA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="机构名称" prop="unitName">\r\n <el-select v-model="listQuery.unitName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择机构名称">\r\n <el-option v-for="(item, index) in institutionList" :key="index" :label="item.label" :value="item.label" />\r\n </el-select>\r\n \x3c!-- <el-input size="small" clearable v-model="listQuery.unitName" placeholder="请输入机构名称"></el-input> --\x3e\r\n </el-form-item>\r\n <el-form-item label="护理对象" prop="familyName">\r\n <el-select v-model="listQuery.familyName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择护理对象">\r\n <el-option v-for="(item, index) in customerData" :key="index" :label="item.label" :value="item.label" />\r\n </el-select>\r\n \x3c!-- <el-input size="small" clearable v-model="listQuery.familyName" placeholder="请输入护理对象"></el-input> --\x3e\r\n </el-form-item>\r\n <el-form-item label="护工姓名" prop="personName">\r\n <el-select v-model="listQuery.personName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择姓名">\r\n <el-option v-for="(item, index) in renyuanxinxi" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label="计划时间" prop="playTime">\r\n <el-date-picker v-model="listQuery.playTime" size="small" value-format="yyyy-MM-dd" type="daterange"\r\n range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item v-for="item in expBtn" :key="item.key">\r\n <el-button size="small" type="primary" @click="expShow(item)">\r\n {{ item.name }}\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n <el-table-column :label="\'所属机构\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理对象\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.familyName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划流水号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划开始日期\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.startDate }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划结束日期\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.endDate }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理计划状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium" :type="row.status == \'2\' ? \'success\' : \'\'">{{\r\n row.status == "1"\r\n ? "进行中"\r\n : row.status == "2"\r\n ? "已完成"\r\n : row.status == "3"\r\n ? "已取消"\r\n : row.status == "0"\r\n ? "待执行"\r\n : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'分配护工\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.personName ? row.personName : "-" }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'操作\'" align="center" width="380" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="Scheduling(row, $index)">\r\n 排班\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="allocation(row, $index)">\r\n 分配护工\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button v-if="row.status == \'0\'" size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n <el-button size="mini" type="primary" @click="details(row, $index)">\r\n 详情\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="complete(row, $index)">\r\n 订单完成\r\n </el-button>\r\n <el-button v-if="row.status == \'2\'" size="mini" type="success" @click="PlanexpExcel(row, $index)">\r\n 导出\r\n </el-button>\r\n \x3c!-- v-if="row.status == \'2\'" --\x3e\r\n <el-button style="margin-top: 8px" size="mini" type="success" @click="expExcel2(row, $index)">\r\n 打印\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="60%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理对象" prop="familyId">\r\n <el-select v-model="temp.familyId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象" @change="familyChange">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value">\r\n <span style="float: left">{{ item.label }}</span>\r\n <span style="float: right; color: #8492a6; font-size: 13px">状态:{{ item.isDelete == "0" ? \'正常\' :\r\n item.isDelete == "1" ? \'注销\' : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划开始日期" prop="startDate">\r\n <el-date-picker v-model="temp.startDate" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择计划开始日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划结束日期" prop="endDate">\r\n <el-date-picker v-model="temp.endDate" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择计划结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理内容" prop="projectPlanId">\r\n <el-select v-model="temp.projectPlanId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理内容" @change="NursingChange">\r\n <el-option v-for="(item, index) in NursingArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="失能等级" prop="familyLv">\r\n <el-tag type="success">{{ disabilityLv[temp.familyLv] }}</el-tag>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="协议文件" prop="pdfUrl">\r\n <el-upload action="#" :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="temp.projectPlanId == \'1\'" :span="12">\r\n <el-form-item label="护理项组合" prop="projectPlanId">\r\n <el-button size="small" type="success" @click="addNurse">新增护理项</el-button>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table ref="standTable" v-loading="NursingLoading" border height="35vh" :data="NursingData"\r\n style="width: 100%" :summary-method="getSummaries" show-summary row-key="projectId"\r\n class="draggable-table">\r\n <el-table-column label="鼠标长按" width="100" align="center">\r\n <el-button link type="text" size="small" :icon="\'el-icon-s-operation\'" class="handle">拖拽</el-button>\r\n </el-table-column>\r\n <el-table-column :label="\'序号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sort }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'类别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium">{{ row.type == "01" ? "生活照料" : row.type == "02" ? "精神慰藉" : row.type == "03" ?\r\n "安全巡视" : row.type == "04" ? "医疗护理" : row.type == "05" ? "康复护理" : row.type == "06" ? "辅助器具" :\r\n row.type == "07" ? "居家护理" : \'-\' }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'次数\'" align="center" prop="num">\r\n <template slot-scope="{ row, $index }">\r\n <el-input v-if="row.edit" v-model="row.num" placeholder="次数" @blur="InputBlur(row, $index)" />\r\n <span v-else>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构护理价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.projectPrice3 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'省厅价格\'" align="center">\r\n <template slot-scope="{row}">\r\n <span>{{ row.threePrice }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'汇总价格\'" align="center" prop="projectPrice1">\r\n <template slot-scope="{ row }">\r\n <span>{{ Summary(row.num, row.projectPrice3) }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'机构护理价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.projectPrice3 }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'操作\'" align="center" width="200" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="modify(row, $index)">\r\n 修改次数\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="nurseDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button> --\x3e\r\n <el-button type="primary" size="small" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'分配护工\'"\r\n :visible.sync="allocationDialogVisible" width="45%">\r\n <el-row :gutter="20">\r\n <el-col :span="6" style="margin-bottom: 20px;">\r\n <el-input v-model="searchContent" size="mini" placeholder="输入护工名称搜索" @input="selectTable" />\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table v-loading="allocationLoading" border height="50vh" :data="checklist" style="width: 100%"\r\n @row-click="singleElection">\r\n <el-table-column align="center" width="55" label="选择">\r\n <template slot-scope="scope">\r\n \x3c!-- 可以手动的修改label的值,从而控制选择哪一项 --\x3e\r\n <el-radio v-model="templateSelection" class="radio" :label="scope.row.id">\r\n <span />\r\n </el-radio>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工联系号码\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.phoneNumber }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工性别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sex }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工地址\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.address }}</span>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="allocationDialogVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="confirm">\r\n 分 配\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title"\r\n :visible.sync="SchedulingDialogVisible" width="40%">\r\n <el-form ref="ruleForm" :model="ruleForm" label-position="right" label-width="100px">\r\n <el-row :gutter="20">\r\n <el-col :span="24">\r\n <el-form-item label="排班时间">\r\n <el-time-picker v-model="time" style="width: 80%" size="small" is-range range-separator="至"\r\n start-placeholder="开始时间" format="HH:mm" end-placeholder="结束时间" placeholder="请选择服务时间"\r\n value-format="HH:mm" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="是否全选">\r\n <el-checkbox v-model="checkAll" @change="handleCheckAllChange">{{ checkAll ? \'是\' : \'否\' }}</el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <div class="list">\r\n <div v-for="(item, index) in dates" :key="index" class="item" @click="allcalendar(item, index)">\r\n {{ item.dataTime }} {{ item.show ? \'✔️\' : \'\' }}</div>\r\n </div>\r\n\r\n \x3c!-- <el-button type="success" class="addButton" size="small" @click="addScheduling">\r\n 新增排班\r\n </el-button>\r\n <el-table border height="30vh" v-loading="SchedulingLoading" :data="ruleForm.SchedulingData"\r\n style="width: 100%" @row-click="singleElection">\r\n <el-table-column align="center" label="排班日期" width="215">\r\n <template slot-scope="{ row, $index }">\r\n <el-form-item label-width="0px" :prop="\'SchedulingData.\' + $index + \'.clockDate\'"\r\n :rules="rules.clockDate">\r\n <el-date-picker style="width: 100%" size="small" v-model="row.clockDate" type="date"\r\n :disabled="ScheduleDate(row)" placeholder="请选择排班日期" value-format="yyyy-MM-dd"></el-date-picker>\r\n </el-form-item>\r\n </template>\r\n </el-table-column>\r\n <el-table-column align="center" label="服务时间" width="350">\r\n <template slot-scope="{ row, $index }">\r\n <el-form-item label-width="0px">\r\n <el-time-picker :disabled="ScheduleDate(row)" style="width: 100%" size="small" is-range\r\n v-model="row.time" range-separator="至" start-placeholder="开始时间" format="HH:mm"\r\n end-placeholder="结束时间" placeholder="请选择服务时间" value-format="HH:mm">\r\n </el-time-picker>\r\n </el-form-item>\r\n </template>\r\n </el-table-column>\r\n <el-table-column align="center" label="操作" width="90">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="danger" @click="removeDomain(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table> --\x3e\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="SchedulingDialogVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="SchedulingConfirmation(\'ruleForm\')">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'详情\'"\r\n :visible.sync="detailsDialogVisible" width="45%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理对象" prop="familyId">\r\n <el-select v-model="temp.familyId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划开始日期" prop="startDate">\r\n <el-date-picker v-model="temp.startDate" size="small" disabled format="yyyy 年 MM 月 dd 日"\r\n value-format="yyyy-MM-dd" style="width: 100%" type="date" placeholder="请选择计划开始日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划结束日期" prop="endDate">\r\n <el-date-picker v-model="temp.endDate" size="small" disabled format="yyyy 年 MM 月 dd 日"\r\n value-format="yyyy-MM-dd" style="width: 100%" type="date" placeholder="请选择计划结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理内容" prop="projectPlanId">\r\n <el-select v-model="temp.projectPlanId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理内容" @change="NursingChange">\r\n <el-option v-for="(item, index) in NursingArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="失能等级">\r\n <el-tag v-if="temp.familyLv == \'06\'" type="success">重度失能ⅠⅠⅠ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'05\'" type="success">重度失能ⅠⅠ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'04\'" type="success">重度失能Ⅰ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'03\'" type="success">中度失能</el-tag>\r\n <el-tag v-if="temp.familyLv == \'02\'" type="success">轻度失能</el-tag>\r\n <el-tag v-if="temp.familyLv == \'01\'" type="success">基本正常</el-tag>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="协议文件" prop="pdfUrl">\r\n <el-upload action="#" disabled :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" disabled size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <div class="calendar-dialog">\r\n \x3c!-- {{rangeTime}} --\x3e\r\n <el-calendar v-model="calendarTime">\r\n <template slot="dateCell" slot-scope="{ date, data }">\r\n <div class="card-group">\r\n <div :class="data.isSelected\r\n ? \'card-calendar-text\'\r\n : \'card-calendar-text\'\r\n ">\r\n <span>{{ getTimeDate(data.day) }}</span>\r\n <el-icon v-if="data.isSelected"><Select /></el-icon>\r\n </div>\r\n <span v-for="(item, index) in setData" :key="item.id" class="card">\r\n <div v-if="item.clockDate === data.day" class="card-flag">\r\n <div :class="getDate < item.clockDate\r\n ? \'card-text5\'\r\n : compareDate(\r\n item.timeSlot,\r\n item.upCreateTime,\r\n item.dnCreateTime\r\n )\r\n ? \' card-text1\'\r\n : \' card-text2\'\r\n ">\r\n <span>{{ getTimeDate(data.day) }}</span>\r\n <span v-if="item.timeSlot" style="font-weight: 500; font-size: 12px">排班:{{ item.timeSlot\r\n }}</span>\r\n <span v-if="item.upCreateTime" style="font-weight: 500; font-size: 12px">上班:{{\r\n setTimeDate(item.upCreateTime) }}</span>\r\n <span v-if="item.dnCreateTime" style="font-weight: 500; font-size: 12px">下班:{{\r\n setTimeDate(item.dnCreateTime) }}</span>\r\n </div>\r\n </div>\r\n <div v-else />\r\n </span>\r\n </div>\r\n </template>\r\n </el-calendar>\r\n </div>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table v-loading="NursingLoading" border height="30vh" :data="NursingData" style="width: 100%">\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'需要护理次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'实际护理次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.alreadyNum ? row.alreadyNum : \'-\' }}</span>\r\n </template>\r\n </el-table-column>\r\n\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" size="small" @click="detailsDialogVisible = false">\r\n 关 闭\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="导出" :visible.sync="dialogVisibleExp"\r\n width="30%" :before-close="handleClose">\r\n <el-form ref="dataForm" :model="exportTime" :rules="rules" class="demo-form-inline" label-position="right"\r\n label-width="90px">\r\n <el-row :gutter="20">\r\n <el-col :span="24">\r\n <el-form-item label="提示:">\r\n <el-link :underline="false" type="primary">请根据护理计划的开始日期和结束日期选择时间</el-link>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="时间">\r\n <el-date-picker v-model="exportTime.startDate" style="width: 100%" size="small" type="daterange"\r\n value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="this.expApiName == \'护理计划信息\'" :span="24">\r\n <el-form-item label="护理对象">\r\n <el-select v-model="exportTime.familyId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="this.expApiName != \'护理计划信息\'" :span="24">\r\n <el-form-item label="计划流水号">\r\n <el-input v-model="exportTime.orderNo" size="small" clearable placeholder="请输入计划流水号" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button size="small" type="primary" :loading="loadExp" @click="expExcel">\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog v-if="unitType == \'机构护理\'" :close-on-click-modal="false" :close-on-press-escape="false" title="打印"\r\n :visible.sync="expObjVisible" width="100%" :before-close="handleClose" top="3vh">\r\n <div id="printDom1" ref="printDom1" class="exptable" border="1">\r\n <div class="thead">\r\n {{ expObj.orderYearMonth }}\r\n </div>\r\n <div class="tbody">\r\n <div class="tr eight">\r\n <div class="title eight_label">参保人姓名</div>\r\n <div class="eight_label">{{ expObj.personName }}</div>\r\n <div class="title eight_label">身份证</div>\r\n <div class="eight_label">{{ expObj.personIdCode }}</div>\r\n <div class="title eight_label">年龄</div>\r\n <div>\r\n {{ expObj.personAge }}\r\n </div>\r\n <div class="title eight_label">参保类型</div>\r\n <div class="eight_label">{{ expObj.medicalType }}</div>\r\n\r\n <div class="title eight_label">制表人</div>\r\n <div class="eight_label">{{ expObj.unitName }}</div>\r\n </div>\r\n <div class="tr eight">\r\n <div class="title eight_label">所属参保区划</div>\r\n <div class="eight_label">{{ expObj.medicalCounty }}</div>\r\n <div class="title eight_label">失能等级</div>\r\n <div class="eight_label">{{ expObj.lv }}</div>\r\n <div class="title eight_label">家属姓名</div>\r\n <div class="eight_label">{{ expObj.familyName }}</div>\r\n \x3c!-- <div class="title eight_label" style="width: 750px;"></div> --\x3e\r\n \x3c!-- <div class="eight_label">{{ expObj.totalPrice }}</div> --\x3e\r\n </div>\r\n <div class="leftXuhao loop">\r\n <div class="num">序号</div>\r\n <div class="name">服务项目</div>\r\n <div class="day headday">\r\n <span>护理服务执行日期及次数</span>\r\n <div class="forday">\r\n <span v-for="i in 31" :key="i">{{ i }}日</span>\r\n </div>\r\n </div>\r\n <div class="total">床日合计</div>\r\n </div>\r\n <div v-for="(item, index) in expObj.list" :key="index" class="tr loop">\r\n <div class="num">{{ index + 1 }}</div>\r\n <div class="name">{{ item.title }}</div>\r\n <div class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div>\r\n <div class="total">{{ item.num }}</div>\r\n </div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">协议服务机构负责人签字:</div>\r\n <div class="day bodyday">家属确认签字按手印:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">盖章:</div>\r\n <div class="day bodyday">日期:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">日期:</div>\r\n </div>\r\n </div>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button v-print="print" size="small" type="primary" :loading="loadExp" @click="onPrint">\r\n 打 印\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n <el-dialog v-if="unitType == \'居家护理\'" :close-on-click-modal="false" :close-on-press-escape="false" title="打印"\r\n :visible.sync="expObjVisible" width="100%" :before-close="handleClose" top="3vh">\r\n <div id="printDom1" ref="printDom1" class="exptable" border="1">\r\n <div class="thead">\r\n {{ expObj.orderYearMonth }}\r\n </div>\r\n <div class="tbody">\r\n <div class="tr eight">\r\n <div class="title eight_label">参保人姓名</div>\r\n <div class="eight_label">{{ expObj.personName }}</div>\r\n <div class="title eight_label">身份证</div>\r\n <div class="eight_label">{{ expObj.personIdCode }}</div>\r\n <div class="title eight_label">年龄</div>\r\n <div>\r\n {{ expObj.personAge }}\r\n </div>\r\n <div class="title eight_label">参保类型</div>\r\n <div class="eight_label">{{ expObj.medicalType }}</div>\r\n\r\n <div class="title eight_label">制表人</div>\r\n <div class="eight_label">{{ expObj.unitName }}</div>\r\n </div>\r\n <div class="tr eight">\r\n <div class="title eight_label">所属参保区划</div>\r\n <div class="eight_label">{{ expObj.medicalCounty }}</div>\r\n <div class="title eight_label">失能等级</div>\r\n <div class="eight_label">{{ expObj.lv }}</div>\r\n <div class="title eight_label">家属姓名</div>\r\n <div class="eight_label">{{ expObj.familyName }}</div>\r\n \x3c!-- <div class="title eight_label" style="width: 750px;"></div> --\x3e\r\n \x3c!-- <div class="eight_label">{{ expObj.totalPrice }}</div> --\x3e\r\n </div>\r\n <div class="leftXuhao loop">\r\n <div class="num">序号</div>\r\n <div class="name">服务项目</div>\r\n <div class="day headday">\r\n <span>护理服务执行日期及护理项目次数(分钟)</span>\r\n <div class="forday">\r\n <span v-for="i in 31" :key="i">{{ i }}日</span>\r\n </div>\r\n </div>\r\n \x3c!-- <div class="total">床日合计</div> --\x3e\r\n </div>\r\n <div v-for="(item, index) in expObj.list" :key="index" class="tr loop">\r\n <div class="num">{{ index + 1 }}</div>\r\n <div class="name">{{ item.title }}</div>\r\n \x3c!-- 当月服务时长单元格合并显示 --\x3e\r\n <div v-if="item.title == \'当月服务总时长(小时)\'" class="day bodyday merged-cell">\r\n {{ item.num }}(小时)\r\n </div>\r\n \x3c!-- 普通日期单元格 --\x3e\r\n <div v-else class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div>\r\n \x3c!-- <div class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else-if="item.title == \'当月服务时长(小时)\'">{{ item.num }}</span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div> --\x3e\r\n \x3c!-- <div class="total">{{ item.num }}</div> --\x3e\r\n </div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">协议服务机构负责人签字:</div>\r\n <div class="day bodyday">家属确认签字按手印:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">盖章:</div>\r\n <div class="day bodyday">日期:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">日期:</div>\r\n </div>\r\n </div>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button v-print="print" size="small" type="primary" :loading="loadExp" @click="onPrint">\r\n 打 印\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="新增护理项" :visible.sync="dialogVisible"\r\n width="30%">\r\n <el-select v-model="projectList" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择护理项组合" multiple>\r\n <el-option v-for="(item, index) in institutionData" :key="index" :label="item.label" :value="item.value">\r\n <span style="float: left">{{ item.label }}</span>\r\n <span style="float: right; color: #8492a6; font-size: 13px">护理类型:{{ item.type == "01" ? "生活照料" : item.type ==\r\n "02"\r\n ? "精神慰藉" : item.type == "03" ? "安全巡视" : item.type == "04" ? "医疗护理" : item.type == "05" ? "康复护理" : item.type\r\n ==\r\n "06" ? "辅助器具" : item.type == "07" ? "居家护理" : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogVisible = false">取 消</el-button>\r\n <el-button type="primary" size="small" @click="determine">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SProjectAll,\r\n SProjectPlanPage,\r\n SysUnitPage,\r\n SProjectPlanDetail,\r\n WxUserCustomAll,\r\n WxUserFamilyAll,\r\n SPersonAll,\r\n repeatedGeneration,\r\n WxOrderFinish,\r\n getByOrderNo,\r\n SysUnitAll\r\n} from \'@/api/institution\'\r\nimport { wxSettlementInfo, ClockInfo, ClockJsInfo } from \'@/api/settlement\'\r\nimport {\r\n WxOrderPage,\r\n WxOrderSave,\r\n WxOrderDel,\r\n WxOrderSchedulingGetByOrderNo,\r\n WxOrderSchedulingDel,\r\n WxOrderItemgetOrderNoDetails,\r\n WxOrderDetail,\r\n WxOrderItemUserSave,\r\n WxOrderSchedulingSave,\r\n ExportExcel\r\n} from \'@/api/plan\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nimport Vue from \'vue\'\r\nimport Sortable from \'sortablejs\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n var clockDateRules = (rule, value, callback) => {\r\n if (!value) {\r\n callback(new Error(\'请选择排班日期\'))\r\n } else {\r\n callback()\r\n }\r\n }\r\n return {\r\n\r\n renyuanxinxi: [],\r\n institutionList: [],\r\n customerData: [],\r\n checklist: [], // 筛选值\r\n searchContent: \'\',\r\n // 失能等级枚举\r\n disabilityLv: {\r\n \'01\': \'基本正常\',\r\n \'02\': \'轻度失能\',\r\n \'03\': \'中度失能\',\r\n \'04\': \'重度失能Ⅰ级\',\r\n \'05\': \'重度失能ⅠⅠ级\',\r\n \'06\': \'重度失能ⅠⅠⅠ级\',\r\n \'\': \'请选择护理对象\'\r\n },\r\n // 默认时间\r\n calendarTime: \'\',\r\n // 时间跨度的当前月的星期一和结束月份的星期日\r\n rangeTime: [],\r\n exportTime: {\r\n startDate: []\r\n },\r\n unitType: null,\r\n nowdate: new Date(),\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n // startDate: [],\r\n expApi: \'\',\r\n expApiName: \'\',\r\n expBtn: [\r\n {\r\n key: 1,\r\n name: \'导出护理计划\',\r\n api: \'wxOrderInfo\',\r\n fileName: \'护理计划\'\r\n },\r\n {\r\n key: 2,\r\n name: \'导出护理项明细\',\r\n api: \'wxOrderItemInfo\',\r\n fileName: \'护理计划明细\'\r\n },\r\n {\r\n key: 3,\r\n name: \'导出分配信息\',\r\n api: \'wxOrderItemUserInfo\',\r\n fileName: \'护理计划分配信息\'\r\n },\r\n {\r\n key: 4,\r\n name: \'导出排班信息\',\r\n api: \'wxOrderSchedulingInfo\',\r\n fileName: \'护理计划排班信息\'\r\n },\r\n {\r\n key: 5,\r\n name: \'自动生成当月护理计划\',\r\n api: \'repeatedGeneration\',\r\n fileName: \'自动生成当月护理计划信息\'\r\n }\r\n ],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n // 单条数据\r\n workerObj: {},\r\n ruleForm: {\r\n SchedulingData: []\r\n },\r\n value: new Date(),\r\n title: \'排班\',\r\n SchedulingLoading: true,\r\n SchedulingDialogVisible: false,\r\n detailsDialogVisible: false,\r\n expObjVisible: false,\r\n expObj: {},\r\n expObjPrint: {},\r\n templateSelection: \'\',\r\n // 分配护工数据\r\n allocationData: [],\r\n // 分配护工loading\r\n allocationLoading: true,\r\n // 分配模态框\r\n allocationDialogVisible: false,\r\n // 护理类型价格\r\n priceType: null,\r\n // 所有套餐\r\n NursingArrData: [],\r\n // 下单人员\r\n placeOrder: [],\r\n // 护理对象\r\n nurseObject: [],\r\n FormData: {},\r\n fileList: [],\r\n NursingLoading: true,\r\n dialogVisible: false,\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n NursingData: [],\r\n institutionData: [],\r\n institutionArrData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n\r\n rules: {\r\n status: [\r\n { required: true, message: \'请选择审核结果\', trigger: \'change\' }\r\n ],\r\n title: [{ required: true, message: \'请输入套餐名称\', trigger: \'blur\' }],\r\n no: [{ required: true, message: \'请输入套餐编号\', trigger: \'blur\' }],\r\n clockDate: [\r\n { required: true, validator: clockDateRules, trigger: \'blur\' }\r\n ],\r\n startDate: [\r\n { required: true, message: \'请选择计划开始日期\', trigger: \'change\' }\r\n ],\r\n endDate: [\r\n { required: true, message: \'请选择计划结束日期\', trigger: \'change\' }\r\n ],\r\n unitId: [\r\n { required: true, message: \'请选择所属机构\', trigger: \'change\' }\r\n ],\r\n projectPlanId: [\r\n { required: true, message: \'请选择护理内容\', trigger: \'change\' }\r\n ],\r\n priceType: [\r\n { required: true, message: \'请选择护理类型\', trigger: \'change\' }\r\n ],\r\n familyId: [\r\n { required: true, message: \'请选择护理对象\', trigger: \'change\' }\r\n ],\r\n familyLv: [\r\n { required: true, message: \'请选择失能等级\', trigger: \'change\' }\r\n ]\r\n },\r\n data: new Date(),\r\n time: \'\',\r\n temp: {},\r\n setData: [],\r\n // 当月的所有日期天数\r\n dates: [],\r\n downloadLoading: false,\r\n checkAll: false,\r\n dialogVisible: false,\r\n projectList: []\r\n }\r\n },\r\n computed: {\r\n ScheduleDate() {\r\n return function (item) {\r\n let data\r\n if (item.clockDate && item.id) {\r\n data = item.clockDate < this.$moment().format(\'YYYY-MM-DD\')\r\n } else {\r\n data = false\r\n }\r\n return data\r\n }\r\n },\r\n Summary() {\r\n return function (num, projectPrice3) {\r\n return (num * projectPrice3).toFixed(2)\r\n }\r\n },\r\n getTimeDate() {\r\n return function (day) {\r\n if (day) {\r\n return this.$moment(day).format(\'MM月DD号\')\r\n }\r\n }\r\n },\r\n setTimeDate() {\r\n return function (day) {\r\n if (day) {\r\n return this.$moment(day).format(\'HH:mm:ss\')\r\n }\r\n }\r\n },\r\n // 获取当日\r\n getDate() {\r\n return this.$moment().format(\'YYYY-MM-DD\')\r\n },\r\n // 根据时间进行比较\r\n compareDate() {\r\n return function (d1, d2, d3) {\r\n if (d1) {\r\n var index = d1.lastIndexOf(\'-\')\r\n var str1 = d1.substring(index + 1, d1.length) // 下班时间\r\n var str2 = d1.substring(0, index) // 上班时间\r\n // var time = str1 + str2\r\n }\r\n // 判断上下班打卡时间\r\n if (\r\n this.$moment(d2).format(\'HH:mm:ss\') < str2 &&\r\n this.$moment(d3).format(\'HH:mm:ss\') > str1\r\n ) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n updated() {\r\n this.$nextTick(() => {\r\n if (this.$refs[\'standTable\']) {\r\n this.$refs[\'standTable\'].doLayout()\r\n }\r\n })\r\n },\r\n methods: {\r\n initDrag() {\r\n const tbody = document.querySelector(\r\n \'.draggable-table .el-table__body-wrapper tbody\'\r\n )\r\n new Sortable(tbody, {\r\n handle: \'.handle\', // handle\'s class\r\n animation: 150,\r\n // 需要在odEnd方法中处理原始eltable数据,使原始数据与显示数据保持顺序一致\r\n onEnd: ({ newIndex, oldIndex }) => {\r\n const targetRow = this.NursingData[oldIndex]\r\n this.NursingData.splice(oldIndex, 1)\r\n this.NursingData.splice(newIndex, 0, targetRow)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n console.log(this.NursingData)\r\n }\r\n })\r\n },\r\n addNurse() {\r\n this.dialogVisible = true\r\n this.projectList = []\r\n const dataArr = []\r\n if (this.temp.itemList) {\r\n this.temp.itemList.map((item) => {\r\n dataArr.push(item.projectId)\r\n })\r\n this.projectList = dataArr\r\n }\r\n },\r\n determine() {\r\n this.dialogVisible = false\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n for (var i = 0; i < this.projectList.length; i++) {\r\n const arr1 = this.institutionData.find((item, index) => {\r\n item.projectPrice3 = item.price3\r\n item.threePrice = item.threePrice\r\n item.value = item.value\r\n item.type = item.type\r\n return item.value == this.projectList[i]\r\n })\r\n const data = this.NursingData.some((u) => u.value === arr1.value)\r\n if (!data) {\r\n this.NursingData.push(arr1)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n }\r\n }\r\n this.initDrag()\r\n },\r\n // 数组去重\r\n removeDataArr(arr) {\r\n var obj = {}\r\n arr = arr.reduce(function (item, next) {\r\n obj[next.projectId]\r\n ? \'\'\r\n : (obj[next.projectId] = true && item.push(next))\r\n return item\r\n }, [])\r\n return arr\r\n },\r\n handleCheckAllChange(val) {\r\n this.dates.map((item) => {\r\n item.show = !!val\r\n })\r\n // this.checkedCities = val ? cityOptions : [];\r\n },\r\n /**\r\n * 打印\r\n */\r\n onPrint() {\r\n this.$print(this.$refs.printDom1)\r\n },\r\n getExpPrint(v) {\r\n ClockJsInfo({ yearMonth: v }).then((res) => {\r\n if (res.status === 1) {\r\n this.expObjPrint = res.result\r\n }\r\n })\r\n },\r\n PlanexpExcel(row) {\r\n wxSettlementInfo({ id: row.id, orderNo: row.no }).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'结算信息导出\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n })\r\n },\r\n expExcel2(row) {\r\n ClockInfo({ orderNo: row.no }).then((res) => {\r\n if (res.status === 1) {\r\n this.unitType = res.result.unitType\r\n const result = {}\r\n const lastElement = res.result.list[res.result.list.length - 1]\r\n for (const key in lastElement) {\r\n if (\r\n typeof lastElement[key] === \'string\' &&\r\n lastElement[key].includes(\'-\')\r\n ) {\r\n result[key] = lastElement[key].split(/-/)\r\n } else {\r\n result[key] = lastElement[key]\r\n }\r\n }\r\n res.result.list[res.result.list.length - 1] = result\r\n this.expObj = res.result\r\n this.expObjVisible = true\r\n }\r\n })\r\n },\r\n\r\n // 护理对象选择 取 失能等级\r\n familyChange(value) {\r\n if (value) {\r\n const data = this.nurseObject.find((v) => v.value == value)\r\n this.$set(this.temp, \'familyLv\', data.lv)\r\n return\r\n }\r\n this.$set(this.temp, \'familyLv\', \'\')\r\n },\r\n // 日历点击\r\n allcalendar(date, index) {\r\n date.show = !date.show\r\n // this.ruleForm.SchedulingData.push({\r\n // clockDate: date,\r\n // time: [\r\n // this.$moment().startOf("day").add(6, "hours").format("HH:mm"),\r\n // this.$moment().startOf("day").add(10, "hours").format("HH:mm"),\r\n // ],\r\n // isUntime: "",\r\n // });\r\n },\r\n // 合计\r\n getSummaries(param) {\r\n const { columns, data } = param\r\n const sums = []\r\n columns.forEach((column, index) => {\r\n if (index === 0) {\r\n sums[index] = \'总价\'\r\n return\r\n } else if (column.label == \'汇总价格\') {\r\n // const values = data.map(item => Number(item[column.property]));\r\n // 数量\r\n const values = data.map((item) => Number(item[\'num\']))\r\n // 价格\r\n const price = data.map((item) => Number(item[\'projectPrice3\']))\r\n if (!values.every((value) => isNaN(value))) {\r\n sums[index] = values.reduce((prev, curr, index) => {\r\n const value = Number(curr)\r\n if (!isNaN(value)) {\r\n // curr为数量,price为单价,求得每行的金额,再通过reduce累加求和\r\n return prev + curr * price[index]\r\n } else {\r\n return prev\r\n }\r\n }, 0)\r\n // sums[index] += \' 元\';\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n if (sums[index]) {\r\n sums[index] = sums[index].toFixed(2) // 保留2位小数\r\n }\r\n }\r\n })\r\n\r\n return sums\r\n },\r\n expShow(u) {\r\n if (u.key == 5) {\r\n // this.$prompt(\'请选择日期\', \'提示\', {\r\n // confirmButtonText: \'确定\',\r\n // cancelButtonText: \'取消\',\r\n // }).then(({ value }) => {\r\n // this.$message({\r\n // type: \'success\',\r\n // message: \'你的邮箱是: \' + value\r\n // });\r\n // }).catch(() => {\r\n // this.$message({\r\n // type: \'info\',\r\n // message: \'取消输入\'\r\n // });\r\n // });\r\n const h = this.$createElement\r\n var _this = this\r\n this.$msgbox({\r\n title: \'请选择日期\', // 弹框标题\r\n // 弹框信息\r\n message: h(\r\n Vue.component(\'msgboxDatePicker\', {\r\n render(h) {\r\n return h(\'div\', null, [\r\n h(\'el-date-picker\', {\r\n props: {\r\n value: _this.value,\r\n type: \'date\',\r\n valueFormat: \'yyyy-MM-dd\',\r\n placeholder: \'请选择日期\'\r\n },\r\n on: {\r\n input: (v) => {\r\n _this.value = v\r\n _this.$emit(\'input\', v)\r\n },\r\n change: (v) => {\r\n _this.data = v\r\n _this.$emit(\'change\', v)\r\n }\r\n }\r\n })\r\n ])\r\n }\r\n })\r\n ),\r\n showCancelButton: true,\r\n closeOnClickModal: false,\r\n confirmButtonText: \'确定\',\r\n cancelButtonText: \'取消\'\r\n })\r\n .then(() => {\r\n repeatedGeneration({ data: this.data }).then((res) => {\r\n if (res.status == 1) {\r\n _this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n _this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n })\r\n .catch(() => {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'已取消\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n\r\n return\r\n }\r\n this.dialogVisibleExp = true\r\n this.expApi = u.api\r\n this.expApiName = u.fileName\r\n this.exportTime.startDate = []\r\n },\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.expObjVisible = false\r\n this.exportTime.startDate = []\r\n this.expApi = \'\'\r\n this.expApiName = \'\'\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.exportTime.startDate[0],\r\n endDate: this.exportTime.startDate[1],\r\n url: this.expApi,\r\n familyId: this.exportTime.familyId,\r\n orderNo: this.exportTime.orderNo\r\n }\r\n ExportExcel(form)\r\n .then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = this.expApiName\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n complete(row) {\r\n this.$confirm(\'此操作将更新订单状态, 是否继续?\', \'提示\', {\r\n confirmButtonText: \'确定\',\r\n cancelButtonText: \'取消\',\r\n type: \'warning\'\r\n })\r\n .then(() => {\r\n WxOrderFinish({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.getList()\r\n return\r\n }\r\n this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \'info\',\r\n message: \'已取消\'\r\n })\r\n })\r\n },\r\n details(row) {\r\n // this.rangeTime = [];\r\n WxOrderDetail({ no: row.no }).then((res) => {\r\n this.temp = res.result\r\n if (res.result.clockList || res.result.orderSchedulingList) {\r\n this.calendarTime = this.temp.startDate\r\n // 获取当前日期\r\n // 根据当前日期获取上个月份\r\n const lastMonth = this.$moment(this.temp.startDate)\r\n .clone()\r\n .subtract(1, \'months\')\r\n\r\n // 获取上个月份的最后一天\r\n const lastDayOfLastMonth = lastMonth.endOf(\'month\')\r\n\r\n // 从上个月份的最后一天开始向前查找,直到找到第一个星期一\r\n const lastMondayOfLastMonth = lastDayOfLastMonth\r\n .clone()\r\n .subtract((lastDayOfLastMonth.day() + 6) % 7, \'days\')\r\n\r\n // 获取下个月份\r\n const nextMonth = this.$moment(this.temp.endDate)\r\n .clone()\r\n .add(1, \'months\')\r\n\r\n // 获取下个月的第一天\r\n const firstDayOfNextMonth = nextMonth.startOf(\'month\')\r\n\r\n // 从下个月的第一天开始向后查找,直到找到第一个星期日\r\n const firstSundayOfNextMonth = firstDayOfNextMonth\r\n .clone()\r\n .add((7 - firstDayOfNextMonth.day()) % 7, \'days\')\r\n\r\n // //处理计划开始日期 复制给日历组件\r\n // const firstDayOfMonth = this.$moment(this.temp.startDate).startOf(\'month\'); // 月份的第一天\r\n // const lastDayOfMonth = this.$moment(this.temp.endDate).endOf(\'month\'); // 月份的最后一天\r\n // // 查找第一个星期一\r\n // let currentDay = firstDayOfMonth;\r\n // while (currentDay.isoWeekday() !== 1) {\r\n // currentDay.add(1, \'days\');\r\n // }\r\n // const firstMonday = currentDay.format(\'YYYY-MM-DD\');\r\n // // 查找最后一个星期日\r\n // currentDay = lastDayOfMonth;\r\n // while (currentDay.isoWeekday() !== 7) {\r\n // currentDay.subtract(1, \'days\');\r\n // }\r\n // const sunday = currentDay.format(\'YYYY-MM-DD\');\r\n this.rangeTime = [\r\n lastMondayOfLastMonth.format(\'YYYY-MM-DD\'),\r\n firstSundayOfNextMonth.format(\'YYYY-MM-DD\')\r\n ]\r\n let clockList = []\r\n let orderSchedulingList = []\r\n if (res.result.clockList) {\r\n clockList = res.result.clockList\r\n }\r\n if (res.result.orderSchedulingList) {\r\n orderSchedulingList = res.result.orderSchedulingList\r\n }\r\n const setData = [...clockList, ...orderSchedulingList]\r\n const result = []\r\n const map = new Map()\r\n setData.forEach((item) => {\r\n const key = item.clockDate\r\n if (map.has(key)) {\r\n const existingItem = map.get(key)\r\n existingItem.upCreateTime =\r\n existingItem.upCreateTime || item.upCreateTime\r\n existingItem.dnCreateTime =\r\n existingItem.dnCreateTime || item.dnCreateTime\r\n existingItem.timeSlot = existingItem.timeSlot || item.timeSlot\r\n } else {\r\n map.set(key, item)\r\n }\r\n })\r\n result.push(...map.values())\r\n this.setData = result\r\n }\r\n // const setData = [\r\n // ...res.result.clockList,\r\n // ...res.result.orderSchedulingList,\r\n // ];\r\n // const result = [];\r\n // const map = new Map();\r\n // setData.forEach((item) => {\r\n // const key = item.clockDate;\r\n // if (map.has(key)) {\r\n // const existingItem = map.get(key);\r\n // existingItem.upCreateTime =\r\n // existingItem.upCreateTime || item.upCreateTime;\r\n // existingItem.dnCreateTime =\r\n // existingItem.dnCreateTime || item.dnCreateTime;\r\n // existingItem.timeSlot = existingItem.timeSlot || item.timeSlot;\r\n // } else {\r\n // map.set(key, item);\r\n // }\r\n // });\r\n // result.push(...map.values());\r\n // this.setData = result;\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n console.log(item)\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n WxOrderItemgetOrderNoDetails({ orderNo: row.no }).then((res) => {\r\n this.NursingData = res.result.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.type,\r\n threePrice: item.threePrice ? item.threePrice : \'-\',\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3,\r\n alreadyNum: item.alreadyNum\r\n }\r\n })\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n if (row.pdfUrl) {\r\n this.fileList.push({\r\n name: row.pdfUrl,\r\n url: row.pdfUrl\r\n })\r\n }\r\n this.detailsDialogVisible = true\r\n })\r\n },\r\n\r\n addScheduling() {\r\n this.ruleForm.SchedulingData.push({\r\n clockDate: \'\',\r\n time: [\r\n this.$moment().startOf(\'day\').add(6, \'hours\').format(\'HH:mm\'),\r\n this.$moment().startOf(\'day\').add(10, \'hours\').format(\'HH:mm\')\r\n ],\r\n isUntime: \'\'\r\n })\r\n },\r\n changeInput(item) {\r\n console.log(item)\r\n if (item.isUntime == 0) {\r\n item.time = [\r\n this.$moment().startOf(\'day\').format(\'HH:mm\'),\r\n this.$moment().endOf(\'day\').format(\'HH:mm\')\r\n ]\r\n } else {\r\n item.time = [\r\n this.$moment().startOf(\'day\').add(6, \'hours\').format(\'HH:mm\'),\r\n this.$moment().startOf(\'day\').add(10, \'hours\').format(\'HH:mm\')\r\n ]\r\n }\r\n },\r\n removeDomain(item, index) {\r\n if (this.title == \'新增排班\') {\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n return\r\n }\r\n if (item.id) {\r\n WxOrderSchedulingDel({ id: item.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n return\r\n }\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n },\r\n SchedulingConfirmation() {\r\n if (!this.time) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'请选择排班时间\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n const result = this.dates.some((item) => {\r\n return item.show === true\r\n })\r\n if (!result) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'请选择排班日期\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n const temp = {}\r\n const orderSchedulingList = []\r\n for (let i = 0; i < this.dates.length; i++) {\r\n if (this.dates[i].show) {\r\n orderSchedulingList.push({\r\n clockDate: this.dates[i].dataTime,\r\n IsUntime: \'1\',\r\n timeSlot: `${this.time[0]}-${this.time[1]}`\r\n })\r\n }\r\n }\r\n temp.orderNo = this.temp.no\r\n temp.orderSchedulingList = orderSchedulingList\r\n WxOrderSchedulingSave(temp).then((res) => {\r\n if (res.status == 1) {\r\n this.SchedulingDialogVisible = false\r\n this.SchedulingLoading = false\r\n this.checkAll = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'排班成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'排班失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n // 排班方法\r\n Scheduling(row) {\r\n this.dates = []\r\n // console.log(this.temp.startDate.format(\'MM\'));\r\n this.temp = row\r\n const dates = this.getAllDatesOfMonth(\r\n this.$moment(this.temp.startDate).format(\'YYYY\'),\r\n this.$moment(this.temp.startDate).format(\'MM\')\r\n )\r\n dates.forEach((date) => {\r\n const dataTime = this.$moment(date).format(\'YYYY-MM-DD\')\r\n this.dates.push({\r\n show: false,\r\n dataTime: dataTime\r\n })\r\n })\r\n this.ruleForm.SchedulingData = []\r\n this.SchedulingDialogVisible = true\r\n this.SchedulingLoading = true\r\n setTimeout(() => {\r\n WxOrderSchedulingGetByOrderNo({ orderNo: row.no }).then((res) => {\r\n if (res.result.length > 0) {\r\n this.title = \'编辑排班\'\r\n this.ruleForm.SchedulingData = res.result.map((item) => {\r\n for (var i = 0; i < this.dates.length; i++) {\r\n if (this.dates[i].dataTime == item.clockDate) {\r\n this.dates[i].show = true\r\n }\r\n }\r\n item.isUntime = Number(item.isUntime)\r\n item.time = item.timeSlot.split(\'-\')\r\n return item\r\n })\r\n this.time = this.ruleForm.SchedulingData[0].time\r\n // this.dates = res.result.map((item) => {\r\n // return {\r\n // detaTime:item.clockDate\r\n // }\r\n // })\r\n } else {\r\n this.title = \'新增排班\'\r\n }\r\n })\r\n this.SchedulingLoading = false\r\n }, 100)\r\n },\r\n // 获取当月日期\r\n getAllDatesOfMonth(year, month) {\r\n const dates = []\r\n const startDate = this.$moment([year, month - 1, 1])\r\n const endDate = startDate.clone().endOf(\'month\')\r\n const currentDate = startDate\r\n while (\r\n currentDate.isBefore(endDate) ||\r\n currentDate.isSame(endDate, \'day\')\r\n ) {\r\n dates.push(currentDate.clone())\r\n currentDate.add(1, \'days\')\r\n }\r\n return dates\r\n },\r\n confirm() {\r\n if (!this.templateSelection) {\r\n this.$message({\r\n message: \'请选择护工\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return\r\n }\r\n WxOrderItemUserSave(this.workerObj).then((res) => {\r\n if (res.status == 1) {\r\n this.allocationDialogVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'分配成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.templateSelection = \'\'\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'分配失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n singleElection(row) {\r\n this.templateSelection = row.id\r\n this.workerObj.personId = this.templateSelection\r\n // let aaaa = this.allocationData.filter((item) => item.id === row.id)\r\n },\r\n selectTable(e) {\r\n const oldArr = JSON.parse(JSON.stringify(this.allocationData))\r\n let arr\r\n if (e.trim()) {\r\n arr = oldArr.filter((item) => {\r\n return Object.keys(item).some((key) => {\r\n return String(item[\'name\']).toLowerCase().match(e.trim())\r\n })\r\n })\r\n } else {\r\n arr = this.allocationData\r\n }\r\n this.checklist = arr\r\n },\r\n // 分配护工\r\n allocation(row) {\r\n // if (row.status == "1" || row.status == "2") {\r\n // this.$message({\r\n // message: "进行中或已完成不允许分配护工",\r\n // type: "warning",\r\n // });\r\n // return;\r\n // }\r\n // if (row.personId) {\r\n // this.$message({\r\n // message: "当前护理计划已分配护工",\r\n // type: "warning",\r\n // });\r\n // return;\r\n // }\r\n this.workerObj.orderNo = row.no\r\n this.allocationDialogVisible = true\r\n SPersonAll().then((res) => {\r\n this.allocationData = res.result\r\n this.checklist = res.result\r\n })\r\n setTimeout(() => {\r\n this.allocationLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n changePrice(value) {\r\n this.priceType = value\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'PDF\', \'pdf\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能pdf文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `${this.$constant.imgAddr}${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadPDF(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.pdfUrl = res.result.url\r\n }\r\n })\r\n },\r\n nurseDelete(row, index) {\r\n if (this.temp.projectPlanId == \'1\') {\r\n this.NursingData.splice(index, 1)\r\n return\r\n }\r\n this.$message({\r\n message: \'套餐内的护理项不能删除\',\r\n type: \'warning\'\r\n })\r\n // this.NursingData.splice(index, 1);\r\n },\r\n modify(row) {\r\n row.edit = true\r\n },\r\n InputBlur(row) {\r\n row.edit = false\r\n },\r\n getinstitution() {\r\n SProjectAll().then((response) => {\r\n this.institutionData = response.result.map((item, index) => {\r\n return {\r\n label: item.title,\r\n type: item.type,\r\n value: item.id,\r\n threePrice: item.threePrice,\r\n price1: item.price1,\r\n price3: item.price3,\r\n edit: false,\r\n num: \'1\',\r\n projectId: item.id\r\n }\r\n })\r\n })\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionArrData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n WxUserCustomAll().then((response) => {\r\n this.placeOrder = response.result.map((item, index) => {\r\n return { label: item.nickName, value: item.id }\r\n })\r\n })\r\n WxUserFamilyAll().then((response) => {\r\n this.nurseObject = response.result.map((item, index) => {\r\n return {\r\n label: item.name,\r\n value: item.id,\r\n isDelete: item.isDelete,\r\n lv: item.lv ? item.lv : \'\'\r\n }\r\n })\r\n })\r\n },\r\n getList() {\r\n // this.listLoading = true;\r\n const form = JSON.parse(JSON.stringify(this.listQuery))\r\n if (form.playTime) {\r\n form.startDate = form.playTime[0]\r\n form.endDate = form.playTime[1]\r\n delete form.playTime\r\n }\r\n WxOrderPage(form).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n // setTimeout(() => {\r\n // this.listLoading = false;\r\n // }, 1.5 * 1000);\r\n })\r\n WxUserFamilyAll().then((res) => {\r\n this.customerData = res.result.map((item) => {\r\n return { label: item.name, value: item.name }\r\n })\r\n })\r\n SysUnitAll().then((res) => {\r\n this.institutionList = res.result.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n SPersonAll().then((res) => {\r\n this.renyuanxinxi = res.result.map((item) => {\r\n return { label: item.name, value: item.name }\r\n })\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n // 新增护理项\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n edit(row) {\r\n if (row.status == \'2\') {\r\n this.$message({\r\n message: \'已完成不允许编辑\',\r\n type: \'warning\'\r\n })\r\n return\r\n }\r\n this.dialogStatus = \'update\'\r\n this.dialogFormVisible = true\r\n this.temp = row\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n WxOrderItemgetOrderNoDetails({ orderNo: row.no }).then((res) => {\r\n this.NursingData = res.result.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.type,\r\n threePrice: item.threePrice ? item.threePrice : \'-\',\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3\r\n }\r\n })\r\n })\r\n if (row.pdfUrl) {\r\n this.fileList.push({\r\n name: row.pdfUrl,\r\n url: row.pdfUrl\r\n })\r\n }\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n // 获取套餐里的列表\r\n NursingChange(value) {\r\n console.log(value)\r\n if (value == \'1\') {\r\n // SProjectAll().then((response) => {\r\n // this.NursingData = response.result.map((item, index) => {\r\n // return {\r\n // label: item.title,\r\n // value: item.id,\r\n // projectPrice1: item.price1,\r\n // projectPrice2: item.price2,\r\n // projectPrice3: item.price3,\r\n // type: item.type,\r\n // edit: false,\r\n // num: item.num ? item.num : \'1\',\r\n // projectId: item.id,\r\n // };\r\n // });\r\n // });\r\n this.NursingData = []\r\n } else {\r\n SProjectPlanDetail({ id: value }).then((res) => {\r\n if (res.result.itemList) {\r\n this.NursingData = res.result.itemList.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.projectType,\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3\r\n }\r\n })\r\n }\r\n })\r\n }\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n this.temp.orderItemSaveList = this.NursingData\r\n WxOrderSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n this.temp.orderItemSaveList = this.NursingData\r\n WxOrderSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n handleDelete(row, index) {\r\n if (row.status == \'1\' || row.status == \'2\') {\r\n this.$message({\r\n message: \'进行中或已完成不允许删除\',\r\n type: \'warning\'\r\n })\r\n return\r\n }\r\n WxOrderDel({ orderNo: row.no }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.addButton {\r\n margin: 0 0 10px 0;\r\n}\r\n\r\n::v-deep .el-dialog__body {\r\n padding: 0px 20px;\r\n}\r\n\r\n::v-deep .el-calendar-table .el-calendar-day {\r\n padding: 0;\r\n}\r\n\r\n.is-selected {\r\n color: #1989fa;\r\n background: yellow;\r\n}\r\n\r\n.is-add-selected {\r\n color: #fff;\r\n background: #1989fa;\r\n}\r\n\r\n$titleHeight: 100%;\r\n$redColor: rgba(255, 0, 0, 0.8);\r\n$lowColor: rgba(217, 210, 53, 0.8);\r\n$middleColor: rgba(64, 158, 255, 0.8);\r\n$heightColor: #f00;\r\n\r\n@mixin card-o($bgColor) {\r\n position: relative;\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n font-size: 15px;\r\n color: #fff;\r\n background-color: $bgColor;\r\n}\r\n\r\n@mixin card-text-o($bgColor) {\r\n display: flex;\r\n flex-direction: column;\r\n // justify-content: space-between;\r\n height: $titleHeight;\r\n max-height: $titleHeight;\r\n min-height: $titleHeight;\r\n font-size: 12px;\r\n color: #fff;\r\n background-color: $bgColor;\r\n}\r\n\r\n.calendar-dialog {\r\n .card-group {\r\n width: 100%;\r\n height: 100%;\r\n\r\n .card-calendar-text {\r\n height: $titleHeight;\r\n max-height: $titleHeight;\r\n min-height: $titleHeight;\r\n padding: 8px;\r\n }\r\n\r\n .card {\r\n position: relative;\r\n top: -$titleHeight;\r\n }\r\n\r\n .card-flag {\r\n height: 100%;\r\n }\r\n\r\n .card1 {\r\n @include card-o($middleColor);\r\n }\r\n\r\n .card-text1 {\r\n @include card-text-o($middleColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text2 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text3 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text4 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text5 {\r\n @include card-text-o($lowColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card2 {\r\n @include card-o($lowColor);\r\n }\r\n\r\n // .card-text2 {\r\n // @include card-text-o($lowColor);\r\n // }\r\n\r\n .card3 {\r\n @include card-o($heightColor);\r\n }\r\n\r\n .card-text3 {\r\n @include card-text-o($heightColor);\r\n }\r\n\r\n .visits-val {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-calendar__button-group {\r\n display: none;\r\n}\r\n\r\n.is-selected {\r\n color: #1989fa;\r\n}\r\n\r\n.activeItem {\r\n color: red;\r\n}\r\n\r\n.el-calendar-table td.is-today {\r\n color: #000 !important;\r\n background: transparent !important;\r\n}\r\n\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.exptable {\r\n font-size: 9px;\r\n text-align: center;\r\n width: 100%;\r\n\r\n // line-height: 26px;\r\n .leftXuhao {\r\n display: flex;\r\n border-bottom: 1px solid #333;\r\n\r\n div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-right: 1px solid #333;\r\n }\r\n }\r\n\r\n .thead {\r\n // border: 1px solid #333;\r\n border-bottom: 0;\r\n color: #000;\r\n padding: 8px 0;\r\n }\r\n\r\n .tbody {\r\n border: 1px solid #333;\r\n font-size: 8px;\r\n }\r\n\r\n .tr {\r\n display: flex;\r\n border-bottom: 1px solid #333;\r\n color: #111;\r\n\r\n div {\r\n // flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-right: 1px solid #333;\r\n // padding: 5px 2px;\r\n }\r\n\r\n .bodyday {\r\n flex: 1;\r\n }\r\n\r\n div:last-child {\r\n border-right: 0;\r\n }\r\n }\r\n\r\n .eight div {\r\n flex: 1;\r\n // width: calc((100% - 120px * 8) / 8);\r\n padding: 5px 0;\r\n }\r\n\r\n .eight .title {\r\n width: 110px;\r\n flex: none;\r\n }\r\n\r\n .tr:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n .loop {\r\n .num {\r\n width: 22px !important;\r\n }\r\n\r\n .total {\r\n width: 23px;\r\n padding: 5px 0;\r\n }\r\n\r\n // .day {\r\n // width: calc(27px * 27);\r\n // }\r\n .name {\r\n // flex: 1;\r\n padding: 5px 0;\r\n // width: 300px !important;\r\n flex: 0.1;\r\n }\r\n\r\n .headday {\r\n flex-flow: column;\r\n flex: 1;\r\n\r\n .forday {\r\n border-top: 1px solid #333;\r\n }\r\n }\r\n\r\n .day span {\r\n padding: 10px 0;\r\n }\r\n\r\n .forday {\r\n display: table;\r\n width: 100%;\r\n\r\n // height: 100%;\r\n span {\r\n display: table-cell;\r\n vertical-align: middle;\r\n border-right: 1px solid #333;\r\n width: 23px;\r\n height: 100%;\r\n overflow: hidden;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n\r\n span:last-child {\r\n border-right: 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.handwriting {\r\n display: flex;\r\n\r\n div {\r\n text-align: right;\r\n padding: 5px 0;\r\n }\r\n\r\n .name {\r\n margin-left: 60px;\r\n width: 120px;\r\n }\r\n\r\n .bodyday {\r\n width: 60%;\r\n margin-right: 60px;\r\n }\r\n}\r\n\r\n.exptableprint {\r\n font-size: 11px;\r\n\r\n .tbody {\r\n font-size: 10px;\r\n }\r\n}\r\n\r\n.list {\r\n padding: 15px;\r\n // background-color: #baf;\r\n // 设置父元素成为弹性盒\r\n display: flex;\r\n // 让弹性盒元素在必要的时候拆行\r\n flex-wrap: wrap;\r\n\r\n .item {\r\n // background-color: deeppink;\r\n border: 1px solid #ede9e9;\r\n height: 70px;\r\n padding: 10px;\r\n cursor: pointer;\r\n // 每个元素都要设置右边距margin-right(每个元素的左右间隙)\r\n // 同时设置下边距margin-bottom(每个元素的上下间隙)\r\n // margin: 0 1px 1px 0;\r\n width: calc((100% - 50px) / 7);\r\n // 这里一行显示4个,所以是/4,一行显示几个就除以几\r\n // 这里的60rpx = (分布个数4-1)*间隙20rpx, 可以根据实际的分布个数和间隙区调整\r\n min-width: calc((100% - 30px) / 7);\r\n max-width: calc((100% - 30px) / 7);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 12px;\r\n\r\n // 每行最右侧的那个不设置右外边距\r\n &:nth-child(7n + 7) {\r\n margin-bottom: 0;\r\n }\r\n }\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.addButton {\n margin: 0 0 10px 0;\n}\n\n::v-deep .el-dialog__body {\n padding: 0px 20px;\n}\n\n::v-deep .el-calendar-table .el-calendar-day {\n padding: 0;\n}\n\n.is-selected {\n color: #1989fa;\n background: yellow;\n}\n\n.is-add-selected {\n color: #fff;\n background: #1989fa;\n}\n\n.calendar-dialog .card-group {\n width: 100%;\n height: 100%;\n}\n.calendar-dialog .card-group .card-calendar-text {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n padding: 8px;\n}\n.calendar-dialog .card-group .card {\n position: relative;\n top: -100%;\n}\n.calendar-dialog .card-group .card-flag {\n height: 100%;\n}\n.calendar-dialog .card-group .card1 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n}\n.calendar-dialog .card-group .card-text1 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text2 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text3 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text4 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text5 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card2 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n}\n.calendar-dialog .card-group .card3 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .card-text3 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .visits-val {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n\n::v-deep .el-calendar__button-group {\n display: none;\n}\n\n.is-selected {\n color: #1989fa;\n}\n\n.activeItem {\n color: red;\n}\n\n.el-calendar-table td.is-today {\n color: #000 !important;\n background: transparent !important;\n}\n\n.el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.exptable {\n font-size: 9px;\n text-align: center;\n width: 100%;\n}\n.exptable .leftXuhao {\n display: flex;\n border-bottom: 1px solid #333;\n}\n.exptable .leftXuhao div {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .thead {\n border-bottom: 0;\n color: #000;\n padding: 8px 0;\n}\n.exptable .tbody {\n border: 1px solid #333;\n font-size: 8px;\n}\n.exptable .tr {\n display: flex;\n border-bottom: 1px solid #333;\n color: #111;\n}\n.exptable .tr div {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .tr .bodyday {\n flex: 1;\n}\n.exptable .tr div:last-child {\n border-right: 0;\n}\n.exptable .eight div {\n flex: 1;\n padding: 5px 0;\n}\n.exptable .eight .title {\n width: 110px;\n flex: none;\n}\n.exptable .tr:last-child {\n border-bottom: 0;\n}\n.exptable .loop .num {\n width: 22px !important;\n}\n.exptable .loop .total {\n width: 23px;\n padding: 5px 0;\n}\n.exptable .loop .name {\n padding: 5px 0;\n flex: 0.1;\n}\n.exptable .loop .headday {\n flex-flow: column;\n flex: 1;\n}\n.exptable .loop .headday .forday {\n border-top: 1px solid #333;\n}\n.exptable .loop .day span {\n padding: 10px 0;\n}\n.exptable .loop .forday {\n display: table;\n width: 100%;\n}\n.exptable .loop .forday span {\n display: table-cell;\n vertical-align: middle;\n border-right: 1px solid #333;\n width: 23px;\n height: 100%;\n overflow: hidden;\n word-wrap: break-word;\n word-break: break-all;\n}\n.exptable .loop .forday span:last-child {\n border-right: 0;\n}\n\n.handwriting {\n display: flex;\n}\n.handwriting div {\n text-align: right;\n padding: 5px 0;\n}\n.handwriting .name {\n margin-left: 60px;\n width: 120px;\n}\n.handwriting .bodyday {\n width: 60%;\n margin-right: 60px;\n}\n\n.exptableprint {\n font-size: 11px;\n}\n.exptableprint .tbody {\n font-size: 10px;\n}\n\n.list {\n padding: 15px;\n display: flex;\n flex-wrap: wrap;\n}\n.list .item {\n border: 1px solid #ede9e9;\n height: 70px;\n padding: 10px;\n cursor: pointer;\n width: calc((100% - 50px) / 7);\n min-width: calc((100% - 30px) / 7);\n max-width: calc((100% - 30px) / 7);\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n}\n.list .item:nth-child(7n+7) {\n margin-bottom: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$9="data-v-36b0c510",__vue_module_identifier__$9=void 0,__vue_is_functional_template__$9=!1,__vue_component__$9=normalizeComponent({render:__vue_render__$9,staticRenderFns:__vue_staticRenderFns__$9},__vue_inject_styles__$9,__vue_script__$9,__vue_scope_id__$9,__vue_is_functional_template__$9,__vue_module_identifier__$9,!1,createInjector,void 0,void 0);var script$8={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({dialogVisibleExp:!1,loadExp:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},fileList:[],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},institutionData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{type:[{required:!0,message:"请选择护理类型",trigger:"change"}],title:[{required:!0,message:"请输入护理机构名称",trigger:"blur"}],startTime:[{required:!0,message:"请选择有效开始时间",trigger:"change"}],endTime:[{required:!0,message:"请选择有效结束时间",trigger:"change"}],hourNum:[{required:!0,message:"请输入护理参考时间",trigger:"blur"}],description:[{required:!0,message:"请输入详情",trigger:"blur"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}]},temp:{},downloadLoading:!1}),created(){this.getList(),this.getinstitution()},methods:{handleClose(){this.dialogVisibleExp=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcel$1(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理项信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`http://192.168.1.21/img/${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadTP(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.picUrl=e.result.url)})},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionData=e.result.data.map(e=>({label:e.name,value:e.id}))})},getList(){this.listLoading=!0,SProjectPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},synchronization(){SProjectTake().then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"同步成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"同步失败",type:"error",duration:2e3})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.fileList=[]},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{e&&SProjectSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})})})},updateData(){this.$refs.dataForm.validate(e=>{e&&SProjectSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})})},edit(e){this.fileList=[],this.temp=e,this.dialogStatus="update",this.dialogFormVisible=!0,e.picUrl&&this.fileList.push({name:e.picUrl,url:e.picUrl})},handleDelete(e,t){SProjectDel({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}}};const __vue_script__$8=script$8;var __vue_render__$8=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"护理项目名称",prop:"title"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入护理项目名称"},model:{value:e.listQuery.title,callback:function(t){e.$set(e.listQuery,"title",t)},expression:"listQuery.title"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"状态",prop:"status"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.listQuery.status,callback:function(t){e.$set(e.listQuery,"status",t)},expression:"listQuery.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item"),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"护理项目编号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理项目名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.title))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"类别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"生活照料":"02"==r.type?"精神慰藉":"03"==r.type?"安全巡视":"04"==r.type?"医疗护理":"05"==r.type?"康复护理":"06"==r.type?"辅助器具":"07"==r.type?"居家护理":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构上门护理价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.price1))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"省厅价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.threePrice))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"参考护理时间(小时)",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.hourNum))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"1"==r.status?"success":"2"==r.status?"warning":""}},[e._v(e._s("1"==r.status?"启用":"2"==r.status?"下架":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"海报",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[r.picUrl?n("el-image",{staticStyle:{width:"50px",height:"50px"},attrs:{src:"http://192.168.1.21/img/"+r.picUrl,"preview-src-list":["http://192.168.1.21/img/"+r.picUrl]}}):n("span",[e._v(" - ")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属机构名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"详情",align:"center",width:"300"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.description))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"150","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"50%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项目名称",prop:"title"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入护理项目名称",size:"small"},model:{value:e.temp.title,callback:function(t){e.$set(e.temp,"title",t)},expression:"temp.title"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理类型",prop:"type"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理类型"},model:{value:e.temp.type,callback:function(t){e.$set(e.temp,"type",t)},expression:"temp.type"}},e._l([{label:"生活服务",value:"1"},{label:"医疗护理",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构上门护理价格",prop:"price1"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入机构上门护理价格",size:"small"},model:{value:e.temp.price1,callback:function(t){e.$set(e.temp,"price1",t)},expression:"temp.price1"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"亲情护理价格",prop:"price2"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入亲情护理价格",size:"small"},model:{value:e.temp.price2,callback:function(t){e.$set(e.temp,"price2",t)},expression:"temp.price2"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构护理价格",prop:"price3"}},[n("el-input",{attrs:{placeholder:"请输入机构护理价格",clearable:"",size:"small"},model:{value:e.temp.price3,callback:function(t){e.$set(e.temp,"price3",t)},expression:"temp.price3"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"参考护理时间(小时)",prop:"hourNum"}},[n("el-input",{attrs:{placeholder:"请输入参考护理时间(小时)",clearable:"",size:"small"},model:{value:e.temp.hourNum,callback:function(t){e.$set(e.temp,"hourNum",t)},expression:"temp.hourNum"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"有效开始时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择有效开始时间"},model:{value:e.temp.startTime,callback:function(t){e.$set(e.temp,"startTime",t)},expression:"temp.startTime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"有效结束时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请输入有效结束时间"},model:{value:e.temp.endTime,callback:function(t){e.$set(e.temp,"endTime",t)},expression:"temp.endTime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.temp.status,callback:function(t){e.$set(e.temp,"status",t)},expression:"temp.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"项目海报",prop:"picUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"详情",prop:"description"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入详情",type:"textarea",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1)],1)},__vue_staticRenderFns__$8=[];__vue_render__$8._withStripped=!0;const __vue_inject_styles__$8=function(e){e&&e("data-v-ddd4d53a_0",{source:".el-col-12[data-v-ddd4d53a] {\n padding: 0 20px 0 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\nurseProjects\\NursingProjects\\index.vue","index.vue"],names:[],mappings:"AAmjBA;EACA,mBAAA;ACljBA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="护理项目名称" prop="title">\r\n <el-input v-model="listQuery.title" size="small" placeholder="请输入护理项目名称" />\r\n </el-form-item>\r\n <el-form-item label="状态" prop="status">\r\n <el-select v-model="listQuery.status" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择状态">\r\n <el-option v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n \x3c!-- <el-button size="small" type="success" @click="synchronization">同步护理项</el-button> --\x3e\r\n \x3c!-- <el-button size="small" type="success" @click="add">新增</el-button> --\x3e\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="dialogVisibleExp = true">导出</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n \x3c!-- @sort-change="sortChange" --\x3e\r\n <el-table-column :label="\'护理项目编号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项目名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.title }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'类别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium">{{\r\n row.type == "01" ? "生活照料" : row.type == "02" ? "精神慰藉" : row.type == "03" ? "安全巡视" : row.type == "04" ?\r\n "医疗护理" : row.type == "05" ? "康复护理" : row.type == "06" ? "辅助器具" : row.type == "07" ? "居家护理" : \'-\'\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构上门护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price1 }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'亲情护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price2 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price3 }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'省厅价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.threePrice }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'参考护理时间(小时)\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.hourNum }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium" :type="row.status == \'1\' ? \'success\' : row.status == \'2\' ? \'warning\' : \'\'\r\n ">{{\r\n row.status == "1" ? "启用" : row.status == "2" ? "下架" : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'海报\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-image v-if="row.picUrl" style="width: 50px; height: 50px" :src="`http://192.168.1.21/img/${row.picUrl}`"\r\n :preview-src-list="[`http://192.168.1.21/img/${row.picUrl}`]" />\r\n <span v-else> - </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属机构名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'详情\'" align="center" width="300">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'操作\'" align="center" width="150" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="50%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="150px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理项目名称" prop="title">\r\n <el-input v-model="temp.title" clearable placeholder="请输入护理项目名称" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理类型" prop="type">\r\n <el-select v-model="temp.type" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择护理类型">\r\n <el-option v-for="(item, index) in [\r\n { label: \'生活服务\', value: \'1\' },\r\n { label: \'医疗护理\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构上门护理价格" prop="price1">\r\n <el-input v-model="temp.price1" clearable placeholder="请输入机构上门护理价格" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="亲情护理价格" prop="price2">\r\n <el-input v-model="temp.price2" clearable placeholder="请输入亲情护理价格" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构护理价格" prop="price3">\r\n <el-input v-model="temp.price3" placeholder="请输入机构护理价格" clearable size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="参考护理时间(小时)" prop="hourNum">\r\n <el-input v-model="temp.hourNum" placeholder="请输入参考护理时间(小时)" clearable size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="有效开始时间">\r\n <el-date-picker v-model="temp.startTime" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择有效开始时间" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="有效结束时间">\r\n <el-date-picker v-model="temp.endTime" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请输入有效结束时间" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="状态">\r\n <el-select v-model="temp.status" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择状态">\r\n <el-option v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="项目海报" prop="picUrl">\r\n <el-upload action="#" :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="详情" prop="description">\r\n <el-input v-model="temp.description" clearable placeholder="请输入详情" type="textarea" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="导出" :visible.sync="dialogVisibleExp"\r\n width="600px" :before-close="handleClose">\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link :underline="false" type="primary">选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker v-model="startDate" type="daterange" value-format="yyyy-MM-dd" range-separator="至"\r\n start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button size="small" type="primary" :loading="loadExp" @click="expExcel">\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SysUnitPage,\r\n SProjectPage,\r\n SProjectDel,\r\n SProjectSave,\r\n ExportExcel,\r\n SProjectTake\r\n} from \'@/api/institution\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n startDate: [],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n FormData: {},\r\n fileList: [],\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n institutionData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n type: [\r\n { required: true, message: \'请选择护理类型\', trigger: \'change\' }\r\n ],\r\n title: [\r\n { required: true, message: \'请输入护理机构名称\', trigger: \'blur\' }\r\n ],\r\n startTime: [\r\n { required: true, message: \'请选择有效开始时间\', trigger: \'change\' }\r\n ],\r\n endTime: [\r\n { required: true, message: \'请选择有效结束时间\', trigger: \'change\' }\r\n ],\r\n hourNum: [\r\n { required: true, message: \'请输入护理参考时间\', trigger: \'blur\' }\r\n ],\r\n description: [\r\n { required: true, message: \'请输入详情\', trigger: \'blur\' }\r\n ],\r\n unitId: [\r\n { required: true, message: \'请选择所属机构\', trigger: \'change\' }\r\n ]\r\n },\r\n temp: {},\r\n downloadLoading: false\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n methods: {\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.startDate = []\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcel(form).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理项信息\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\'YYYY-MM-DD\')}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'png\', \'PNG\', \'jpg\', \'JPG\', \'jpeg\', \'JPEG\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能图片文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `http://192.168.1.21/img/${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadTP(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.picUrl = res.result.url\r\n }\r\n })\r\n },\r\n getinstitution() {\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n },\r\n getList() {\r\n this.listLoading = true\r\n SProjectPage(this.listQuery).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n setTimeout(() => {\r\n this.listLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n synchronization() {\r\n SProjectTake().then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'同步成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'同步失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.fileList = []\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n // this.temp.id = parseInt(Math.random() * 100) + 1024 // mock a id\r\n // this.temp.author = \'vue-element-admin\'\r\n SProjectSave(this.temp).then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n edit(row) {\r\n this.fileList = []\r\n this.temp = row\r\n this.dialogStatus = \'update\'\r\n this.dialogFormVisible = true\r\n if (row.picUrl) {\r\n this.fileList.push({\r\n name: row.picUrl,\r\n url: row.picUrl\r\n })\r\n }\r\n },\r\n handleDelete(row, index) {\r\n SProjectDel({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n // this.list.splice(index, 1)\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$8="data-v-ddd4d53a",__vue_module_identifier__$8=void 0,__vue_is_functional_template__$8=!1,__vue_component__$8=normalizeComponent({render:__vue_render__$8,staticRenderFns:__vue_staticRenderFns__$8},__vue_inject_styles__$8,__vue_script__$8,__vue_scope_id__$8,__vue_is_functional_template__$8,__vue_module_identifier__$8,!1,createInjector,void 0,void 0);var script$7={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({height:"20vh",show:!0,tableShow:!0,dialogVisibleExp:!1,loadExp:!1,dialogVisibleExp2:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},fileList:[],NursingLoading:!0,dialogVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},NursingData:[],institutionData:[],institutionArrData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{type:[{required:!0,message:"请选择护理机构类型",trigger:"change"}],title:[{required:!0,message:"请输入套餐名称",trigger:"blur"}],no:[{required:!0,message:"请输入套餐编号",trigger:"blur"}],startTime:[{required:!0,message:"请选择有效开始时间",trigger:"change"}],endTime:[{required:!0,message:"请选择有效结束时间",trigger:"change"}],description:[{required:!0,message:"请输入详情",trigger:"blur"}],projectList:[{required:!0,message:"请选择护理项组合",trigger:"change"}]},temp:{},projectList:[],downloadLoading:!1}),computed:{Summary:()=>function(e,t){const n=Number(e),r=Number(t);return isNaN(n)||isNaN(r)?"":(n*r).toFixed(2)}},created(){this.getList(),this.getinstitution()},mounted(){},methods:{initDrag(){new Sortable(document.querySelector(".draggable-table .el-table__body-wrapper tbody"),{handle:".handle",animation:150,onEnd:({newIndex:e,oldIndex:t})=>{const n=this.NursingData[t];this.NursingData.splice(t,1),this.NursingData.splice(e,0,n),this.NursingData.map((e,t)=>{e.sort=t+1}),console.log(this.NursingData)}})},getSummaries(e){const{columns:t,data:n}=e,r=[];return t.forEach((e,t)=>{if(0!==t){if("合计"==e.label){const e=n.map(e=>Number(e.num)),l=n.map(e=>Number(e.price3));e.every(e=>isNaN(e))?r[t]="":r[t]=e.reduce((e,t,n)=>{const r=Number(t);return isNaN(r)?e:e+t*l[n]},0),"number"!=typeof r[t]||isNaN(r[t])?r[t]="":r[t]=r[t].toFixed(2)}else if("参考时长(小时)"==e.label){const e=n.reduce((e,t)=>{const n=Number(t.hourNum);return isNaN(n)?e:e+n},0);r[t]=isNaN(e)?"":`${e.toFixed(2)} 小时`}}else r[t]="总计"}),r},handleMouseEnter(){this.height="50vh",this.show=!1,this.tableShow=!0},handleMouseLeave(){this.height="20vh",this.show=!0,this.tableShow=!0},handleClose(){this.dialogVisibleExp=!1,this.dialogVisibleExp2=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcelPlan(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理套餐信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},expExcel2(){try{const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcelInfo(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理套餐明细/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose()})}catch(e){console.log(e)}},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`http://192.168.1.21/img/${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadTP(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.picUrl=e.result.url)})},nurseDelete(e,t){this.NursingData.splice(t,1),this.projectList=this.projectList.filter(t=>t!=e.value)},modify(e){e.edit=!0},InputBlur(e){e.edit=!1},determine(){this.dialogVisible=!1,setTimeout(()=>{this.NursingLoading=!1},1500);for(var e=0;e<this.projectList.length;e++){const t=this.institutionData.find((t,n)=>(t.price3=t.price3,t.type=t.type,t.value==this.projectList[e]));this.NursingData.some(e=>e.value===t.value)||(this.NursingData.push(t),this.NursingData.map((e,t)=>{e.sort=t+1}))}this.NursingData=this.removeDataArr(this.NursingData);const t=[];for(let e=0;e<this.projectList.length;e++)for(let n=0;n<this.NursingData.length;n++)this.NursingData[n].projectId==this.projectList[e]&&t.push(this.NursingData[n]);this.NursingData=t,this.NursingData.map((e,t)=>{e.sort=t+1}),this.temp.itemList=t,this.initDrag()},removeDataArr(e){var t={};return e=e.reduce(function(e,n){return!t[n.projectId]&&(t[n.projectId]=e.push(n)),e},[])},addNurse(){this.dialogVisible=!0,this.projectList=[];const e=[];this.temp.itemList&&(this.temp.itemList.map(t=>{e.push(t.projectId)}),this.projectList=e)},getinstitution(){SProjectAll().then(e=>{console.log(e.result),this.institutionData=e.result.map((e,t)=>({label:e.title,type:e.type,value:e.id,price1:e.price1,price3:e.price3,edit:!1,num:"1",hourNum:e.hourNum?e.hourNum:"-",projectId:e.id}))}),SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},getList(){this.listLoading=!0,SProjectPlanPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.NursingData=[],this.fileList=[],setTimeout(()=>{this.NursingLoading=!1},1500)},onSubmit(){this.getList()},createData(){delete this.temp.projectList,this.temp.projectList=this.NursingData,this.$refs.dataForm.validate(e=>{e&&SProjectPlanSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})})})},updateData(){delete this.temp.itemList,this.temp.projectList=this.NursingData,this.$refs.dataForm.validate(e=>{e&&SProjectPlanSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})})},edit(e){console.log(e),this.dialogFormVisible=!0,this.fileList=[],this.dialogStatus="update",SProjectPlanDetail({id:e.id}).then(e=>{e.result.itemList&&(this.NursingData=e.result.itemList.map(e=>(e.edit=!1,e.price3=e.projectPrice3,e.label=e.projectTitle,e))),this.temp=e.result}),e.picUrl&&this.fileList.push({name:e.picUrl,url:e.picUrl}),setTimeout(()=>{this.NursingLoading=!1},1500)},handleDelete(e,t){SProjectPlanDel({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}}};const __vue_script__$7=script$7;var __vue_render__$7=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"套餐名称",prop:"title"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入套餐名称"},model:{value:e.listQuery.title,callback:function(t){e.$set(e.listQuery,"title",t)},expression:"listQuery.title"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"状态",prop:"status"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.listQuery.status,callback:function(t){e.$set(e.listQuery,"status",t)},expression:"listQuery.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出套餐")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp2=!0}}},[e._v("导出明细")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"套餐名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.title))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s("1"==r.status?"启用":"2"==r.status?"下架":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"宣传图",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[r.picUrl?n("el-image",{staticStyle:{width:"50px",height:"50px"},attrs:{src:"http://192.168.1.21/img/"+r.picUrl,"preview-src-list":["http://192.168.1.21/img/"+r.picUrl]}}):n("span",[e._v(" - ")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属机构名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"套餐内容",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.description))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"150","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"新增护理项",visible:e.dialogVisible,width:"30%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理项组合",multiple:""},model:{value:e.projectList,callback:function(t){e.projectList=t},expression:"projectList"}},e._l(e.institutionData,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("护理类型:"+e._s("01"==t.type?"生活照料":"02"==t.type?"精神慰藉":"03"==t.type?"安全巡视":"04"==t.type?"医疗护理":"05"==t.type?"康复护理":"06"==t.type?"辅助器具":"07"==t.type?"居家护理":"-"))])])}),1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.determine}},[e._v("确 定")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"套餐名称",prop:"title"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入套餐名称",size:"small"},model:{value:e.temp.title,callback:function(t){e.$set(e.temp,"title",t)},expression:"temp.title"}})],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.temp.status,callback:function(t){e.$set(e.temp,"status",t)},expression:"temp.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"项目海报",prop:"picUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"详情",prop:"description"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入详情",type:"textarea",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项组合"}},[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.addNurse}},[e._v("新增护理项")])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("Transition",[e.tableShow?n("div",{on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],staticClass:"draggable-table",staticStyle:{width:"100%"},attrs:{border:"",height:e.height,data:e.NursingData,"summary-method":e.getSummaries,"show-summary":"","row-key":"projectId"}},[n("el-table-column",{attrs:{label:"鼠标长按",width:"100",align:"center"}},[n("el-button",{staticClass:"handle",attrs:{link:"",type:"text",size:"small",icon:"el-icon-s-operation"}},[e._v("拖拽")])],1),e._v(" "),n("el-table-column",{attrs:{label:"序号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sort))])]}}],null,!1,3981901502)}),e._v(" "),n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}],null,!1,3451937186)}),e._v(" "),n("el-table-column",{attrs:{label:"次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[r.edit?n("el-input",{attrs:{placeholder:"次数"},on:{blur:function(t){return e.InputBlur(r,l)}},model:{value:r.num,callback:function(t){e.$set(r,"num",t)},expression:"row.num"}}):n("span",[e._v(e._s(r.num))])]}}],null,!1,2353372964)}),e._v(" "),n("el-table-column",{attrs:{label:"单价",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.price3))])]}}],null,!1,1148645082)}),e._v(" "),n("el-table-column",{attrs:{label:"参考时长(小时)",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.hourNum))])]}}],null,!1,461110482)}),e._v(" "),n("el-table-column",{attrs:{label:"合计",align:"center",prop:"projectPrice1"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(e.Summary(r.num,r.price3)))])]}}],null,!1,892702249)}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"180","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 修改次数\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.nurseDelete(r,l)}}},[e._v("\n 删除\n ")])]}}],null,!1,1851948995)})],1)],1):e._e()])],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp2,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp2=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.expExcel2}},[e._v("导 出")])],1)],1)],1)},__vue_staticRenderFns__$7=[];__vue_render__$7._withStripped=!0;const __vue_inject_styles__$7=function(e){e&&e("data-v-3e87461c_0",{source:".el-col-12[data-v-3e87461c] {\n padding: 0 20px 0 0;\n}\n.v-enter-active[data-v-3e87461c],\n.v-leave-active[data-v-3e87461c] {\n transition: opacity 1s ease;\n}\n.v-enter-from[data-v-3e87461c],\n.v-leave-to[data-v-3e87461c] {\n opacity: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\nurseProjects\\NursingPackage\\index.vue","index.vue"],names:[],mappings:"AAw/BA;EACA,mBAAA;ACv/BA;AD0/BA;;EAEA,2BAAA;ACv/BA;AD0/BA;;EAEA,UAAA;ACv/BA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form\r\n ref="listQuery"\r\n :inline="true"\r\n :model="listQuery"\r\n class="demo-form-inline"\r\n >\r\n <el-form-item label="套餐名称" prop="title">\r\n <el-input\r\n v-model="listQuery.title"\r\n size="small"\r\n placeholder="请输入套餐名称"\r\n />\r\n </el-form-item>\r\n <el-form-item label="状态" prop="status">\r\n <el-select\r\n v-model="listQuery.status"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择状态"\r\n >\r\n <el-option\r\n v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="onSubmit"\r\n >查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="warning"\r\n @click="resetting(\'listQuery\')"\r\n >重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="dialogVisibleExp = true"\r\n >导出套餐</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="dialogVisibleExp2 = true"\r\n >导出明细</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n <el-table-column :label="\'套餐名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.title }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{\r\n row.status == "1" ? "启用" : row.status == "2" ? "下架" : "-"\r\n }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'宣传图\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-image\r\n v-if="row.picUrl"\r\n style="width: 50px; height: 50px"\r\n :src="`http://192.168.1.21/img/${row.picUrl}`"\r\n :preview-src-list="[`http://192.168.1.21/img/${row.picUrl}`]"\r\n />\r\n <span v-else> - </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属机构名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'套餐内容\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'操作\'"\r\n align="center"\r\n width="150"\r\n class-name="small-padding fixed-width"\r\n >\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button\r\n size="mini"\r\n type="danger"\r\n @click="handleDelete(row, $index)"\r\n >\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination\r\n v-show="total > 0"\r\n :total="total"\r\n :page.sync="listQuery.pageNo"\r\n :limit.sync="listQuery.size"\r\n @pagination="getList"\r\n />\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="新增护理项"\r\n :visible.sync="dialogVisible"\r\n width="30%"\r\n >\r\n <el-select\r\n v-model="projectList"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择护理项组合"\r\n multiple\r\n >\r\n <el-option\r\n v-for="(item, index) in institutionData"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n >\r\n <span style="float: left">{{ item.label }}</span>\r\n <span\r\n style="float: right; color: #8492a6; font-size: 13px"\r\n >护理类型:{{ item.type == "01" ? "生活照料" : item.type == "02" ? "精神慰藉" : item.type == "03" ? "安全巡视" : item.type == "04" ? "医疗护理" : item.type == "05" ? "康复护理" : item.type == "06" ? "辅助器具" : item.type == "07" ? "居家护理" : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogVisible = false">取 消</el-button>\r\n <el-button\r\n type="primary"\r\n size="small"\r\n @click="determine"\r\n >确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible"\r\n width="40%"\r\n >\r\n <el-form\r\n ref="dataForm"\r\n :rules="rules"\r\n :model="temp"\r\n label-position="right"\r\n label-width="100px"\r\n >\r\n <el-row :gutter="20">\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="套餐名称" prop="title">\r\n <el-input\r\n v-model="temp.title"\r\n clearable\r\n placeholder="请输入套餐名称"\r\n size="small"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select\r\n v-model="temp.unitId"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择所属机构"\r\n >\r\n <el-option\r\n v-for="(item, index) in institutionArrData"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="状态">\r\n <el-select\r\n v-model="temp.status"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择状态"\r\n >\r\n <el-option\r\n v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="项目海报" prop="picUrl">\r\n <el-upload\r\n action="#"\r\n :limit="1"\r\n :data="FormData"\r\n :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload"\r\n :file-list="fileList"\r\n :on-preview="onPreview"\r\n >\r\n <el-button\r\n slot="trigger"\r\n size="small"\r\n type="primary"\r\n >选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="24">\r\n <el-form-item label="详情" prop="description">\r\n <el-input\r\n v-model="temp.description"\r\n clearable\r\n placeholder="请输入详情"\r\n type="textarea"\r\n size="small"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理项组合">\r\n <el-button\r\n size="small"\r\n type="success"\r\n @click="addNurse"\r\n >新增护理项</el-button>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <Transition>\r\n <div\r\n v-if="tableShow"\r\n @mouseenter="handleMouseEnter"\r\n @mouseleave="handleMouseLeave"\r\n >\r\n <el-table\r\n v-loading="NursingLoading"\r\n border\r\n :height="height"\r\n :data="NursingData"\r\n :summary-method="getSummaries"\r\n show-summary\r\n style="width: 100%"\r\n row-key="projectId"\r\n class="draggable-table"\r\n >\r\n <el-table-column label="鼠标长按" width="100" align="center">\r\n <el-button\r\n link\r\n type="text"\r\n size="small"\r\n :icon="\'el-icon-s-operation\'"\r\n class="handle"\r\n >拖拽</el-button>\r\n </el-table-column>\r\n <el-table-column :label="\'序号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sort }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <el-input\r\n v-if="row.edit"\r\n v-model="row.num"\r\n placeholder="次数"\r\n @blur="InputBlur(row, $index)"\r\n />\r\n <span v-else>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'单价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price3 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'参考时长(小时)\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.hourNum }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'合计\'"\r\n align="center"\r\n prop="projectPrice1"\r\n >\r\n <template slot-scope="{ row }">\r\n <span>{{ Summary(row.num, row.price3) }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'操作\'"\r\n align="center"\r\n width="180"\r\n class-name="small-padding fixed-width"\r\n >\r\n <template slot-scope="{ row, $index }">\r\n <el-button\r\n size="mini"\r\n type="primary"\r\n @click="modify(row, $index)"\r\n >\r\n 修改次数\r\n </el-button>\r\n <el-button\r\n size="mini"\r\n type="danger"\r\n @click="nurseDelete(row, $index)"\r\n >\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n </Transition>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button @click="dialogFormVisible = false" size="small">\r\n 取 消\r\n </el-button> --\x3e\r\n <el-button\r\n type="primary"\r\n size="small"\r\n @click="dialogStatus === \'create\' ? createData() : updateData()"\r\n >\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="导出"\r\n :visible.sync="dialogVisibleExp"\r\n width="600px"\r\n :before-close="handleClose"\r\n >\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link\r\n :underline="false"\r\n type="primary"\r\n >选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker\r\n v-model="startDate"\r\n type="daterange"\r\n value-format="yyyy-MM-dd"\r\n range-separator="至"\r\n start-placeholder="开始日期"\r\n end-placeholder="结束日期"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button\r\n size="small"\r\n :loading="loadExp"\r\n @click="handleClose"\r\n >取 消</el-button>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n :loading="loadExp"\r\n @click="expExcel"\r\n >\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="导出"\r\n :visible.sync="dialogVisibleExp2"\r\n width="600px"\r\n :before-close="handleClose"\r\n >\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link\r\n :underline="false"\r\n type="primary"\r\n >选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker\r\n v-model="startDate"\r\n type="daterange"\r\n value-format="yyyy-MM-dd"\r\n range-separator="至"\r\n start-placeholder="开始日期"\r\n end-placeholder="结束日期"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="handleClose">取 消</el-button>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="expExcel2"\r\n >导 出</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SProjectAll,\r\n SProjectPlanPage,\r\n SProjectPlanDel,\r\n SProjectPlanSave,\r\n SysUnitPage,\r\n SProjectPlanDetail,\r\n ExportExcelPlan,\r\n ExportExcelInfo\r\n} from \'@/api/institution\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nimport Sortable from \'sortablejs\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n height: \'20vh\',\r\n show: true,\r\n tableShow: true,\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n dialogVisibleExp2: false,\r\n\r\n startDate: [],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n FormData: {},\r\n fileList: [],\r\n NursingLoading: true,\r\n dialogVisible: false,\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n NursingData: [],\r\n institutionData: [],\r\n institutionArrData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n type: [\r\n { required: true, message: \'请选择护理机构类型\', trigger: \'change\' }\r\n ],\r\n title: [{ required: true, message: \'请输入套餐名称\', trigger: \'blur\' }],\r\n no: [{ required: true, message: \'请输入套餐编号\', trigger: \'blur\' }],\r\n startTime: [\r\n { required: true, message: \'请选择有效开始时间\', trigger: \'change\' }\r\n ],\r\n endTime: [\r\n { required: true, message: \'请选择有效结束时间\', trigger: \'change\' }\r\n ],\r\n description: [\r\n { required: true, message: \'请输入详情\', trigger: \'blur\' }\r\n ],\r\n projectList: [\r\n { required: true, message: \'请选择护理项组合\', trigger: \'change\' }\r\n ]\r\n },\r\n temp: {},\r\n projectList: [],\r\n downloadLoading: false\r\n }\r\n },\r\n computed: {\r\n Summary() {\r\n return function(num, price3) {\r\n const n = Number(num)\r\n const p = Number(price3)\r\n if (isNaN(n) || isNaN(p)) return \'\'\r\n return (n * p).toFixed(2)\r\n }\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n mounted() {},\r\n methods: {\r\n initDrag() {\r\n const tbody = document.querySelector(\r\n \'.draggable-table .el-table__body-wrapper tbody\'\r\n )\r\n new Sortable(tbody, {\r\n handle: \'.handle\', // handle\'s class\r\n animation: 150,\r\n // 需要在odEnd方法中处理原始eltable数据,使原始数据与显示数据保持顺序一致\r\n onEnd: ({ newIndex, oldIndex }) => {\r\n const targetRow = this.NursingData[oldIndex]\r\n this.NursingData.splice(oldIndex, 1)\r\n this.NursingData.splice(newIndex, 0, targetRow)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n console.log(this.NursingData)\r\n }\r\n })\r\n },\r\n // 合计\r\n getSummaries(param) {\r\n const { columns, data } = param\r\n const sums = []\r\n columns.forEach((column, index) => {\r\n if (index === 0) {\r\n sums[index] = \'总计\'\r\n return\r\n } else if (column.label == \'合计\') {\r\n // 数量\r\n const values = data.map((item) => Number(item[\'num\']))\r\n // 价格\r\n const price = data.map((item) => Number(item[\'price3\']))\r\n if (!values.every((value) => isNaN(value))) {\r\n sums[index] = values.reduce((prev, curr, index) => {\r\n const value = Number(curr)\r\n if (!isNaN(value)) {\r\n // curr为数量,price为单价,求得每行的金额,再通过reduce累加求和\r\n return prev + curr * price[index]\r\n } else {\r\n return prev\r\n }\r\n }, 0)\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n if (typeof sums[index] === \'number\' && !isNaN(sums[index])) {\r\n sums[index] = sums[index].toFixed(2) // 保留2位小数\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n } else if (column.label == \'参考时长(小时)\') {\r\n // 参考时长合计:直接累加 hourNum\r\n const totalHours = data.reduce((prev, item) => {\r\n const h = Number(item.hourNum)\r\n if (isNaN(h)) return prev\r\n return prev + h\r\n }, 0)\r\n sums[index] = !isNaN(totalHours) ? `${totalHours.toFixed(2)} 小时` : \'\'\r\n }\r\n })\r\n\r\n return sums\r\n },\r\n handleMouseEnter() {\r\n this.height = \'50vh\'\r\n this.show = false\r\n this.tableShow = true\r\n // 在这里执行你需要的操作\r\n },\r\n handleMouseLeave() {\r\n this.height = \'20vh\'\r\n this.show = true\r\n this.tableShow = true\r\n },\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.dialogVisibleExp2 = false\r\n this.startDate = []\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcelPlan(form)\r\n .then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理套餐信息\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n expExcel2() {\r\n try {\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcelInfo(form).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理套餐明细\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n })\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'png\', \'PNG\', \'jpg\', \'JPG\', \'jpeg\', \'JPEG\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能图片文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `http://192.168.1.21/img/${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadTP(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.picUrl = res.result.url\r\n }\r\n })\r\n },\r\n nurseDelete(row, index) {\r\n this.NursingData.splice(index, 1)\r\n this.projectList = this.projectList.filter((item) => {\r\n return item != row.value\r\n })\r\n },\r\n modify(row) {\r\n row.edit = true\r\n },\r\n InputBlur(row) {\r\n row.edit = false\r\n },\r\n determine() {\r\n this.dialogVisible = false\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n for (var i = 0; i < this.projectList.length; i++) {\r\n const arr1 = this.institutionData.find((item, index) => {\r\n item.price3 = item.price3\r\n item.type = item.type\r\n return item.value == this.projectList[i]\r\n })\r\n const data = this.NursingData.some((u) => u.value === arr1.value)\r\n if (!data) {\r\n this.NursingData.push(arr1)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n }\r\n // this.NursingData.push(arr1);\r\n }\r\n\r\n this.NursingData = this.removeDataArr(this.NursingData)\r\n const dataArr = []\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n for (let y = 0; y < this.NursingData.length; y++) {\r\n if (this.NursingData[y].projectId == this.projectList[i]) {\r\n dataArr.push(this.NursingData[y])\r\n }\r\n }\r\n }\r\n this.NursingData = dataArr\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n this.temp.itemList = dataArr\r\n this.initDrag()\r\n },\r\n // 数组去重\r\n removeDataArr(arr) {\r\n var obj = {}\r\n arr = arr.reduce(function(item, next) {\r\n obj[next.projectId]\r\n ? \'\'\r\n : (obj[next.projectId] = true && item.push(next))\r\n return item\r\n }, [])\r\n return arr\r\n },\r\n addNurse() {\r\n this.dialogVisible = true\r\n this.projectList = []\r\n const dataArr = []\r\n if (this.temp.itemList) {\r\n this.temp.itemList.map((item) => {\r\n dataArr.push(item.projectId)\r\n })\r\n this.projectList = dataArr\r\n }\r\n },\r\n getinstitution() {\r\n SProjectAll().then((response) => {\r\n console.log(response.result)\r\n this.institutionData = response.result.map((item, index) => {\r\n return {\r\n label: item.title,\r\n type: item.type,\r\n value: item.id,\r\n price1: item.price1,\r\n price3: item.price3,\r\n edit: false,\r\n num: \'1\',\r\n hourNum: item.hourNum ? item.hourNum : \'-\',\r\n projectId: item.id\r\n }\r\n })\r\n })\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionArrData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n },\r\n getList() {\r\n this.listLoading = true\r\n SProjectPlanPage(this.listQuery).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n setTimeout(() => {\r\n this.listLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n // 新增护理项\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.NursingData = []\r\n this.fileList = []\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n delete this.temp.projectList\r\n this.temp.projectList = this.NursingData\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectPlanSave(this.temp).then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n delete this.temp.itemList\r\n this.temp.projectList = this.NursingData\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectPlanSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n edit(row) {\r\n console.log(row)\r\n this.dialogFormVisible = true\r\n this.fileList = []\r\n this.dialogStatus = \'update\'\r\n SProjectPlanDetail({ id: row.id }).then((res) => {\r\n if (res.result.itemList) {\r\n this.NursingData = res.result.itemList.map((item) => {\r\n item.edit = false\r\n item.price3 = item.projectPrice3\r\n item.label = item.projectTitle\r\n return item\r\n })\r\n }\r\n this.temp = res.result\r\n })\r\n if (row.picUrl) {\r\n this.fileList.push({\r\n name: row.picUrl,\r\n url: row.picUrl\r\n })\r\n }\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n handleDelete(row, index) {\r\n SProjectPlanDel({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.v-enter-active,\r\n.v-leave-active {\r\n transition: opacity 1s ease;\r\n}\r\n\r\n.v-enter-from,\r\n.v-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.v-enter-active,\n.v-leave-active {\n transition: opacity 1s ease;\n}\n\n.v-enter-from,\n.v-leave-to {\n opacity: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$7="data-v-3e87461c",__vue_module_identifier__$7=void 0,__vue_is_functional_template__$7=!1,__vue_component__$7=normalizeComponent({render:__vue_render__$7,staticRenderFns:__vue_staticRenderFns__$7},__vue_inject_styles__$7,__vue_script__$7,__vue_scope_id__$7,__vue_is_functional_template__$7,__vue_module_identifier__$7,!1,createInjector,void 0,void 0);var script$6={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({userInfo:{},renyuanxinxi:[],dialogVisibleExp:!1,loadExp:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},idCord:"",HugongdialogVisible:!1,FormData:{},institutionArrData:[],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},dialogFormVisible:!1,dialogPvVisible:!1,rules:{name:[{required:!0,message:"请输入姓名",trigger:"blur"}],idCode:[{required:!0,message:"请输入身份证号",trigger:"blur"}],phoneNumber:[{required:!0,message:"请输入手机号码",trigger:"blur"}],sex:[{required:!0,message:"请选择性别",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}]},temp:{longtermPsnAttDtoList:[]},downloadLoading:!1}),computed:{constant(){return this.$constant.imgAddr},img:()=>function(e){return e.match(/^chx\/tp\//)?e:"chx/tp/"+e}},created(){console.log("VUE_APP_BASE_API:",process.env),this.getList(),this.getinstitution(),this.userInfo=JSON.parse(getUserInfoRole())},methods:{handleError(e,t,n){console.log("上传失败",e,t,n),this.$message.error("图片上传失败,请重试")},synchronization(){this.HugongdialogVisible=!0},synchronous(){SPersonSync({unitId:this.userInfo.unitId,idCord:this.idCord}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:"提示",message:e.info,type:"success",duration:2e3}),this.dialogFormVisible=!1,void(this.idCord="");this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})},handleClose(){this.dialogVisibleExp=!1,this.HugongdialogVisible=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcel$2(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护工信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1}},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if(console.log(n),"word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){this.temp.certPicUrlList=this.temp.certPicUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleSfzUrllRemove(e,t){this.temp.sfzUrlList=this.temp.sfzUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleXlUrlRemove(e,t){this.temp.xlUrlList=this.temp.xlUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},certhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.certPicUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.certPicUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},sfzhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.sfzUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.sfzUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},xlhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.xlUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.xlUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.temp.longtermPsnAttDtoList=[],this.temp.xlUrlList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[]},update(e){updateStatus({id:e.id}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})},edit(e){if(this.temp=JSON.parse(JSON.stringify(e)),this.dialogStatus="update",this.dialogFormVisible=!0,this.temp.longtermPsnAttDtoList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[],this.temp.xlUrlList=[],e.certPicUrlList&&(this.temp.certPicUrlList=e.certPicUrlList.map(e=>({name:e,url:e}))),e.sfzUrlList&&(this.temp.sfzUrlList=e.sfzUrlList.map(e=>({name:e,url:e}))),e.xlUrlList&&(this.temp.xlUrlList=e.xlUrlList.map(e=>({name:e,url:e}))),this.temp.thirdFileList&&this.temp.thirdFileList.length>0)for(var t=0;t<this.temp.thirdFileList.length;t++)"01"!=this.temp.thirdFileList[t].att_type&&"21"!=this.temp.thirdFileList[t].att_type&&"22"!=this.temp.thirdFileList[t].att_type||this.temp.longtermPsnAttDtoList.push(this.temp.thirdFileList[t])},getList(){this.listLoading=!0,SPersonPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)}),SPersonPage({size:9999,pageNo:1}).then(e=>{this.renyuanxinxi=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields()})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};this.temp.certPicUrlList.length>0&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"创建成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"创建失败",type:"error",duration:2e3})})}})},hasBothValues(e,t,n){const r=e.some(e=>e.att_type===t),l=e.some(e=>e.att_type===n);return r&&l},updateData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};if(this.temp.certPicUrlList.length>0&&this.temp.certPicUrlList[0]&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&this.temp.xlUrlList[0]&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&this.temp.sfzUrlList[0]&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),0==this.temp.longtermPsnAttDtoList.length)return void this.$message({message:"请上传材料",type:"warning",center:!0});const t=this.hasBothValues(this.temp.longtermPsnAttDtoList,"22","01");console.log(t),t||this.$message({message:"请传资质证书或身份证",type:"warning",center:!0}),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})}})},handleDelete(e,t){this.$confirm("护工注销需要确认上传明细,以免冲正重新上传变成自费,是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SPersonDel({id:e.id,isDelete:"1"}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消删除"})})}}};const __vue_script__$6=script$6;var __vue_render__$6=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择性别"},model:{value:e.listQuery.sex,callback:function(t){e.$set(e.listQuery,"sex",t)},expression:"listQuery.sex"}},e._l([{label:"男",value:"1"},{label:"女",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.synchronization}},[e._v("护工同步")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"姓名",prop:"id",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"手机号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.idCode))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"居住地",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"0"==r.status?"danger":"1"==r.status?"success":""}},["0"==r.status?n("span",[e._v("不可用")]):e._e(),e._v(" "),"1"==r.status?n("span",[e._v("正常")]):e._e()])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"资质证书",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.certPicUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.sfzUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"健康证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.xlUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.update(r,"draft")}}},[e._v("\n 更新状态\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,"draft")}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 注销\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入姓名"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择性别"},model:{value:e.temp.sex,callback:function(t){e.$set(e.temp,"sex",t)},expression:"temp.sex"}},e._l([{label:"男",value:"男"},{label:"女",value:"女"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"手机号码",prop:"phoneNumber"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入手机号码"},model:{value:e.temp.phoneNumber,callback:function(t){e.$set(e.temp,"phoneNumber",t)},expression:"temp.phoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证号",prop:"idCode"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.temp.idCode,callback:function(t){e.$set(e.temp,"idCode",t)},expression:"temp.idCode"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"居住地",prop:"address"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入居住地"},model:{value:e.temp.address,callback:function(t){e.$set(e.temp,"address",t)},expression:"temp.address"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"持证时间",prop:"liceIssuDate"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd",type:"date",placeholder:"持证时间"},model:{value:e.temp.liceIssuDate,callback:function(t){e.$set(e.temp,"liceIssuDate",t)},expression:"temp.liceIssuDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"注:",prop:"unitId"}},[n("span",{staticStyle:{color:"red"}},[e._v("上传的文件请使用姓名+类型去命名。防止文件名字重复被覆盖")])])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"资质证书",prop:"certPicUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,"before-upload":e.beforeAvatarUploada,"http-request":e.certhandleFileUpload,data:{att_type:"22"},"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"on-error":e.handleError,"file-list":e.temp.certPicUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证",prop:"sfzUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.sfzhandleFileUpload,"on-remove":e.handleSfzUrllRemove,"before-remove":e.beforeRemove,"file-list":e.temp.sfzUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"学位证书",prop:"xlUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"21"},"before-upload":e.beforeAvatarUploada,"http-request":e.xlhandleFileUpload,"on-remove":e.handleXlUrlRemove,"before-remove":e.beforeRemove,"file-list":e.temp.xlUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"护工同步",visible:e.HugongdialogVisible,width:"500px","before-close":e.handleClose},on:{"update:visible":function(t){e.HugongdialogVisible=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"身份证"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.idCord,callback:function(t){e.idCord=t},expression:"idCord"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.HugongdialogVisible=!1}}},[e._v("关 闭")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.synchronous}},[e._v("\n 同 步\n ")])],1)],1)],1)},__vue_staticRenderFns__$6=[];__vue_render__$6._withStripped=!0;const __vue_inject_styles__$6=void 0,__vue_scope_id__$6=void 0,__vue_module_identifier__$6=void 0,__vue_is_functional_template__$6=!1,__vue_component__$6=normalizeComponent({render:__vue_render__$6,staticRenderFns:__vue_staticRenderFns__$6},__vue_inject_styles__$6,__vue_script__$6,__vue_scope_id__$6,__vue_is_functional_template__$6,__vue_module_identifier__$6,!1,void 0,void 0,void 0);var script$5={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({userInfo:{},renyuanxinxi:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},institutionArrData:[],admdvsOptions:[{value:"330302",label:"鹿城区"},{value:"330303",label:"龙湾区"},{value:"330304",label:"瓯海区"},{value:"330305",label:"洞头区"},{value:"330381",label:"瑞安市"},{value:"330382",label:"乐清市"},{value:"330383",label:"龙港市"},{value:"330324",label:"永嘉县"},{value:"330326",label:"平阳县"},{value:"330327",label:"苍南县"},{value:"330328",label:"文成县"},{value:"330329",label:"泰顺县"},{value:"330399",label:"市本级"}],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},dialogFormVisible:!1,dialogPvVisible:!1,rules:{name:[{required:!0,message:"请输入姓名",trigger:"blur"}],idCard:[{required:!0,message:"请输入身份证号",trigger:"blur"}],phoneNumber:[{required:!0,message:"请输入手机号码",trigger:"blur"}],sex:[{required:!0,message:"请选择性别",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}],addrAdmdvs:[{required:!0,message:"请选择归属医保区划",trigger:"change"}],admdvs:[{required:!0,message:"请选择数据权限医保区划",trigger:"change"}],approveStatus:[{required:!0,message:"请选择审核状态",trigger:"change"}]},temp:{longtermPsnAttDtoList:[]},downloadLoading:!1}),computed:{constant(){return this.$constant.imgAddr},img:()=>function(e){return e.match(/^chx\/tp\//)?e:"chx/tp/"+e}},created(){console.log("VUE_APP_BASE_API:",process.env),this.getList(),this.getinstitution(),this.userInfo=JSON.parse(getUserInfoRole())},methods:{handleError(e,t,n){console.log("上传失败",e,t,n),this.$message.error("图片上传失败,请重试")},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if(console.log(n),"word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){this.temp.certPicUrlList=this.temp.certPicUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleSfzUrllRemove(e,t){this.temp.sfzUrlList=this.temp.sfzUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleXlUrlRemove(e,t){this.temp.xlUrlList=this.temp.xlUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},certhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.certPicUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.certPicUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},sfzhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.sfzUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.sfzUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},xlhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.xlUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.xlUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.temp.longtermPsnAttDtoList=[],this.temp.xlUrlList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[]},update(e){SPersonMedicalStatus({id:e.id}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})},edit(e){if(this.temp=JSON.parse(JSON.stringify(e)),this.dialogStatus="update",this.dialogFormVisible=!0,this.temp.longtermPsnAttDtoList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[],this.temp.xlUrlList=[],e.certPicUrlList&&(this.temp.certPicUrlList=e.certPicUrlList.map(e=>({name:e,url:e}))),e.sfzUrlList&&(this.temp.sfzUrlList=e.sfzUrlList.map(e=>({name:e,url:e}))),e.xlUrlList&&(this.temp.xlUrlList=e.xlUrlList.map(e=>({name:e,url:e}))),this.temp.thirdFileList&&this.temp.thirdFileList.length>0)for(var t=0;t<this.temp.thirdFileList.length;t++)"01"!=this.temp.thirdFileList[t].att_type&&"21"!=this.temp.thirdFileList[t].att_type&&"99"!=this.temp.thirdFileList[t].att_type||this.temp.longtermPsnAttDtoList.push(this.temp.thirdFileList[t])},getList(){this.listLoading=!0,SPersonMedicalPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)}),SPersonMedicalPage({size:9999,pageNo:1}).then(e=>{this.renyuanxinxi=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields()})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};this.temp.certPicUrlList.length>0&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"创建成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"创建失败",type:"error",duration:2e3})})}})},hasBothValues(e,t,n){const r=e.some(e=>e.att_type===t),l=e.some(e=>e.att_type===n);return r&&l},updateData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};if(this.temp.certPicUrlList.length>0&&this.temp.certPicUrlList[0]&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&this.temp.xlUrlList[0]&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&this.temp.sfzUrlList[0]&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),0==this.temp.longtermPsnAttDtoList.length)return void this.$message({message:"请上传材料",type:"warning",center:!0});const t=this.hasBothValues(this.temp.longtermPsnAttDtoList,"22","01");console.log(t),t||this.$message({message:"请传资质证书或身份证",type:"warning",center:!0}),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})}})},handleDelete(e,t){this.$confirm("护工注销需要确认上传明细,以免冲正重新上传变成自费,是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SPersonDel({id:e.id,isDelete:"1"}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消删除"})})}}};const __vue_script__$5=script$5;var __vue_render__$5=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"姓名",prop:"id",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"手机号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:0==r.approveStatus?"danger":1==r.approveStatus?"success":""}},[0==r.approveStatus?n("span",[e._v("不通过")]):e._e(),e._v(" "),1==r.approveStatus?n("span",[e._v("通过")]):e._e()])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"资质证书",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.certPicUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.sfzUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"健康证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.xlUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.update(r,"draft")}}},[e._v("\n 更新状态\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,"draft")}}},[e._v("\n 修改\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入姓名"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择性别"},model:{value:e.temp.sex,callback:function(t){e.$set(e.temp,"sex",t)},expression:"temp.sex"}},e._l([{label:"男",value:1},{label:"女",value:2}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"手机号码",prop:"phoneNumber"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入手机号码"},model:{value:e.temp.phoneNumber,callback:function(t){e.$set(e.temp,"phoneNumber",t)},expression:"temp.phoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证号",prop:"idCard"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.temp.idCard,callback:function(t){e.$set(e.temp,"idCard",t)},expression:"temp.idCard"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"归属医保区划",prop:"addrAdmdvs"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择归属医保区划"},model:{value:e.temp.addrAdmdvs,callback:function(t){e.$set(e.temp,"addrAdmdvs",t)},expression:"temp.addrAdmdvs"}},e._l(e.admdvsOptions,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"数据权限医保区划",prop:"admdvs"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择数据权限医保区划"},model:{value:e.temp.admdvs,callback:function(t){e.$set(e.temp,"admdvs",t)},expression:"temp.admdvs"}},e._l(e.admdvsOptions,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"审核状态",prop:"approveStatus"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择审核状态"},model:{value:e.temp.approveStatus,callback:function(t){e.$set(e.temp,"approveStatus",t)},expression:"temp.approveStatus"}},[n("el-option",{attrs:{label:"通过",value:1}}),e._v(" "),n("el-option",{attrs:{label:"不通过",value:0}})],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"资质证书",prop:"certPicUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,"before-upload":e.beforeAvatarUploada,"http-request":e.certhandleFileUpload,data:{att_type:"22"},"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"on-error":e.handleError,"file-list":e.temp.certPicUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"身份证",prop:"sfzUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.sfzhandleFileUpload,"on-remove":e.handleSfzUrllRemove,"before-remove":e.beforeRemove,"file-list":e.temp.sfzUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"健康证",prop:"xlUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"99"},"before-upload":e.beforeAvatarUploada,"http-request":e.xlhandleFileUpload,"on-remove":e.handleXlUrlRemove,"before-remove":e.beforeRemove,"file-list":e.temp.xlUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}})],1)},__vue_staticRenderFns__$5=[];__vue_render__$5._withStripped=!0;const __vue_inject_styles__$5=void 0,__vue_scope_id__$5=void 0,__vue_module_identifier__$5=void 0,__vue_is_functional_template__$5=!1,__vue_component__$5=normalizeComponent({render:__vue_render__$5,staticRenderFns:__vue_staticRenderFns__$5},__vue_inject_styles__$5,__vue_script__$5,__vue_scope_id__$5,__vue_is_functional_template__$5,__vue_module_identifier__$5,!1,void 0,void 0,void 0);var script$4={name:"personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({oneFileList:[],twoFileList:[],threeFileList:[],institutionList:[],FormData:{},file:{fileurl:"",dialogVisible:!1,title:"",type:""},loading:!1,dialogBankVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},fileList:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{uscc:[{required:!0,message:"请输入统一社会信用代码",trigger:"blur"}],type:[{required:!0,message:"请选择护理机构类型",trigger:"change"}],name:[{required:!0,message:"请输入机构名称",trigger:"blur"}],city:[{required:!0,message:"请输入行政区划",trigger:"blur"}],county:[{required:!0,message:"请输入所属辖区",trigger:"blur"}],cntrBegntime:[{required:!0,message:"请选择合同开始时间",trigger:"change"}],cntrEndtime:[{required:!0,message:"请选择合同结束时间",trigger:"change"}],liceIssuDate:[{required:!0,message:"请选择持证时间",trigger:"change"}],address:[{required:!0,message:"请输入护理机构地址",trigger:"blur"}],linkMan:[{required:!0,message:"请输入联系人",trigger:"blur"}],linkPhoneNumber:[{required:!0,message:"请输入联系号码",trigger:"blur"}],provinceCode:[{required:!0,message:"请选择",trigger:"blur"}]},temp:{},downloadLoading:!1,loadExp:!1,cityList:[],areaList:[],provinceList:[],admdvsCodgGrp:[],options:[],file_list:[],fileType:{"01":"01","02":"02","03":"03","04":"04"}}),created(){this.provinceList=pcaCode,this.getList()},methods:{selectChange(e){console.log(e),this.temp.bankMajcls=e.bank_type_code,this.temp.bankName=e.bank_abbr,this.temp.bankId=e.bank_id},remoteMethod(e){return new Promise((t,n)=>{SysUnitBank({bankName:e}).then(e=>{1==e.status&&(this.options=e.result,t(this.options))})})},provinceChange(e,t){e&&(this.cityList=e.children,this.temp.provinceCode=e.code,t||this.crealt())},cityChange(e,t){e&&(this.areaList=e.children,this.temp.cityCode=e.code,t||this.$set(this.temp,"county",""))},changeDistrict(e){this.temp.countyCode=e.code},initProvince(e){e||(this.cityList=[],this.areaList=[],this.crealt())},initCity(e){e||(this.areaList=[],this.$set(this.temp,"cityCode",""))},initCounty(e){e||this.$set(this.temp,"countyCode","")},crealt(){this.$set(this.temp,"city",""),this.$set(this.temp,"county",""),this.$set(this.temp,"cityCode",""),this.$set(this.temp,"countyCode","")},getSysUnitBank(e){SysUnitBank({bankName:e}).then(t=>{console.log(t),"1"===t.status&&(this.temp={...this.temp,bankMajcls:bankMajcls,bankName:e,bankId:bankId,bankacct:bankacct,bankAcctname:bankAcctname})})},expExcel(){try{this.loadExp=!0;exportsysUnitInfo({}).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`机构信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},urlClick(e){this.onPreview({url:e.agreementPdf})},beforeAvatarUploada(e){this.loadingstate=!0;let t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["PDF","pdf"].indexOf(n)<0?(this.$message({message:"只能pdf文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},urlClick(e){this.onPreview({url:e.agreementPdf})},onPreview(e){const t=fileUrl(e.url||e.name);let n=`http://127.0.0.1/img/${e.url||e.name}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},modify(e){cloudSave({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:"提示",message:e.info,type:"success",duration:2e3});this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})},updateBank(){SysUnitbankSave(this.temp).then(e=>{if(1==e.status)return this.dialogBankVisible=!1,this.getList(),void this.$notify({title:e.info,message:"修改成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"修改失败",type:"error",duration:2e3})})},getList(){this.listLoading=!0,SysUnitPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,console.log(this.list),setTimeout(()=>{this.listLoading=!1},1500)}),SysUnitPage({size:9999,pageNo:1}).then(e=>{this.institutionList=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={}},onSubmit(){this.getList()},concatenateStrings:(e,t,n,r)=>`${e}${r?",":""}${t}${r?",":""}${n}`,createData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.admdvsCodgGrp=this.concatenateStrings(this.temp.provinceCode,this.temp.cityCode,this.temp.countyCode),this.temp.file_list=this.file_list,SysUnitSave$1(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})}))})},updateData(){console.log(this.file_list),this.$refs.dataForm.validate(e=>{e&&(this.temp.file_list=this.file_list,SysUnitSave$1(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})}))})},edit(e){this.fileList=[],this.oneFileList=[],this.twoFileList=[],this.threeFileList=[],this.temp=e,this.dialogStatus="update",this.dialogFormVisible=!0,e.agreementPdf&&this.fileList.push({name:e.agreementPdf,url:e.agreementPdf}),e.oneFile&&this.oneFileList.push({name:e.oneFile,url:e.oneFile}),e.twoFile&&this.twoFileList.push({name:e.twoFile,url:e.twoFile}),e.threeFile&&this.threeFileList.push({name:e.threeFile,url:e.threeFile})},handleDelete(e,t){SysUnitDel({id:e.id}).then(e=>{if(console.log(e),1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.file_type),console.log(e.data.file_type),uploadPDF(t).then(n=>{1==n.status&&(this.$message({message:"上传成功",type:"success"}),"04"==e.data.file_type&&(this.temp.agreementPdf=n.result.url),"01"==e.data.file_type&&(this.temp.oneFile=n.result.url),"02"==e.data.file_type&&(this.temp.twoFile=n.result.url),"03"==e.data.file_type&&(this.temp.threeFile=n.result.url)),uploadThird(t).then(t=>{if(1==t.status){const n={file_type:e.data.file_type,fs_d_t_o_list:[{file_id:t.result.output.file_id,att_name:t.result.output.att_name}]};this.addFile(n)}})})},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){for(var n=0;n<this.file_list.length;n++)this.file_list[n].fs_d_t_o_list=this.file_list[n].fs_d_t_o_list.filter(t=>t.att_name!=e.name);console.log(this.file_list)},addFile(e){const t=this.file_list.find(t=>t.file_type===e.file_type);t&&e.file_type==this.fileType[e.file_type]?t.fs_d_t_o_list.push(e.fs_d_t_o_list[0]):this.file_list.push(e),console.log(this.file_list)}}};const __vue_script__$4=script$4;var __vue_render__$4=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"机构名称",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择机构名称"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.institutionList,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"地址",prop:"address"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入地址"},model:{value:e.listQuery.address,callback:function(t){e.$set(e.listQuery,"address",t)},expression:"listQuery.address"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"机构名称",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构编码",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"行政区划",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.city))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属辖区",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.county))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理机构地址",align:"center",width:"200","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理机构类型",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"上门护理机构":"02"==r.type?"养老机构":"03"==r.type?"医疗机构":"04"==r.type?"辅助器具机构":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"联系人",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.linkMan))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"联系号码",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.linkPhoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工数",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.userNum))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"银行名称",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"银行账号",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankacct))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"开户行信息",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankAcctname))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"300","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 机构信息同步\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"45%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构名称",prop:"name"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入机构名称",size:"small"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"省/市/区:"}},[n("div",{staticClass:"setCity"},[n("el-select",{attrs:{size:"small",placeholder:"请选择省份",clearable:"",filterable:""},on:{change:e.initProvince},model:{value:e.temp.province,callback:function(t){e.$set(e.temp,"province",t)},expression:"temp.province"}},e._l(e.provinceList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.provinceChange(t)}}})}),1),e._v(" "),n("el-select",{attrs:{size:"small",placeholder:"请选择城市",clearable:"",filterable:""},on:{change:e.initCity},model:{value:e.temp.city,callback:function(t){e.$set(e.temp,"city",t)},expression:"temp.city"}},e._l(e.cityList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.cityChange(t)}}})}),1),e._v(" "),n("el-select",{attrs:{size:"small",placeholder:"请选择辖区",clearable:"",filterable:""},on:{change:e.initCounty},model:{value:e.temp.county,callback:function(t){e.$set(e.temp,"county",t)},expression:"temp.county"}},e._l(e.areaList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.changeDistrict(t)}}})}),1)],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"定点归属医保区划:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择定点归属医保区划",clearable:"",filterable:""},model:{value:e.temp.admdvsType,callback:function(t){e.$set(e.temp,"admdvsType",t)},expression:"temp.admdvsType"}},e._l([{label:"省",value:"省"},{label:"市",value:"市"},{label:"区",value:"区"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"注册机构类型:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择注册机构类型",clearable:"",filterable:""},model:{value:e.temp.orgRegType,callback:function(t){e.$set(e.temp,"orgRegType",t)},expression:"temp.orgRegType"}},e._l([{label:"公立",value:"公立"},{label:"非公立",value:"非公立"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构经营类型:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择机构经营类型",clearable:"",filterable:""},model:{value:e.temp.orgOperateType,callback:function(t){e.$set(e.temp,"orgOperateType",t)},expression:"temp.orgOperateType"}},e._l([{label:"盈利",value:"盈利"},{label:"非盈利",value:"非盈利"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构单位性质:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择机构单位性质",clearable:"",filterable:""},model:{value:e.temp.orgNatu,callback:function(t){e.$set(e.temp,"orgNatu",t)},expression:"temp.orgNatu"}},e._l([{label:"事业单位",value:"事业单位"},{label:"民办非企业",value:"民办非企业"},{label:"企业",value:"企业"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法定代表人:"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入法人代表人",size:"small"},model:{value:e.temp.legrep,callback:function(t){e.$set(e.temp,"legrep",t)},expression:"temp.legrep"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法人代表证件类型:"}},[n("el-input",{attrs:{clearable:"",disabled:"",placeholder:"居民身份证",size:"small"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法人代表证件号码:"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入法人代表证件号码:",size:"small"},model:{value:e.temp.legrepCertno,callback:function(t){e.$set(e.temp,"legrepCertno",t)},expression:"temp.legrepCertno"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"合同开始时间",prop:"cntrBegntime"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd HH:mm:ss",type:"datetime",placeholder:"合同开始时间","default-time":"12:00:00"},model:{value:e.temp.cntrBegntime,callback:function(t){e.$set(e.temp,"cntrBegntime",t)},expression:"temp.cntrBegntime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"合同结束时间",prop:"cntrEndtime"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd HH:mm:ss",type:"datetime",placeholder:"合同结束时间","default-time":"12:00:00"},model:{value:e.temp.cntrEndtime,callback:function(t){e.$set(e.temp,"cntrEndtime",t)},expression:"temp.cntrEndtime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"统一社会信用代码",prop:"uscc"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入统一社会信用代码",size:"small"},model:{value:e.temp.uscc,callback:function(t){e.$set(e.temp,"uscc",t)},expression:"temp.uscc"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理机构地址",prop:"address"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入护理机构地址",size:"small"},model:{value:e.temp.address,callback:function(t){e.$set(e.temp,"address",t)},expression:"temp.address"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理机构类型",prop:"type"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理机构类型"},model:{value:e.temp.type,callback:function(t){e.$set(e.temp,"type",t)},expression:"temp.type"}},e._l([{label:"上门护理机构",value:"01"},{label:"养老机构",value:"02"},{label:"医疗机构",value:"03"},{label:"辅助器具机构",value:"04"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系人",prop:"linkMan"}},[n("el-input",{attrs:{placeholder:"请输入联系人",clearable:"",size:"small"},model:{value:e.temp.linkMan,callback:function(t){e.$set(e.temp,"linkMan",t)},expression:"temp.linkMan"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系号码",prop:"linkPhoneNumber"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入联系号码",size:"small"},model:{value:e.temp.linkPhoneNumber,callback:function(t){e.$set(e.temp,"linkPhoneNumber",t)},expression:"temp.linkPhoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行户名"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行户名",size:"small"},model:{value:e.temp.bankAcctname,callback:function(t){e.$set(e.temp,"bankAcctname",t)},expression:"temp.bankAcctname"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行账号"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行账号",size:"small"},model:{value:e.temp.bankacct,callback:function(t){e.$set(e.temp,"bankacct",t)},expression:"temp.bankacct"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行开户行名称"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入银行开户行名称","remote-method":e.remoteMethod,"value-key":"bank_id"},on:{change:e.selectChange},model:{value:e.temp.bankName,callback:function(t){e.$set(e.temp,"bankName",t)},expression:"temp.bankName"}},e._l(e.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.bank_abbr,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"描述"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入描述内容",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"法人证书/登记证书/营业执照"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.oneFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"养老机构设立许可证/备案回执"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"02"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.twoFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"医疗机构执业许可证"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"03"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.threeFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"04"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.fileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"修改银行信息",visible:e.dialogBankVisible,width:"40%"},on:{"update:visible":function(t){e.dialogBankVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行户名"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行户名",size:"small"},model:{value:e.temp.bankAcctname,callback:function(t){e.$set(e.temp,"bankAcctname",t)},expression:"temp.bankAcctname"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行账号"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行账号",size:"small"},model:{value:e.temp.bankacct,callback:function(t){e.$set(e.temp,"bankacct",t)},expression:"temp.bankacct"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行开户行名称"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入银行开户行名称","remote-method":e.remoteMethod,"value-key":"bank_id"},on:{change:e.selectChange},model:{value:e.temp.bankName,callback:function(t){e.$set(e.temp,"bankName",t)},expression:"temp.bankName"}},e._l(e.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.bank_abbr,value:e}})}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogBankVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){return e.updateBank()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}})],1)},__vue_staticRenderFns__$4=[];__vue_render__$4._withStripped=!0;const __vue_inject_styles__$4=function(e){e&&e("data-v-4ed0cbb6_0",{source:".el-col-12[data-v-4ed0cbb6] {\n padding: 0 20px 0 0;\n}\n.setCity[data-v-4ed0cbb6] {\n display: flex;\n gap: 10px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\institution\\Information\\index.vue","index.vue"],names:[],mappings:"AA87BA;EACA,mBAAA;AC77BA;ADg8BA;EACA,aAAA;EACA,SAAA;AC77BA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="机构名称" prop="name">\r\n <el-select style="width: 100%" clearable filterable size="small" v-model="listQuery.name" class="filter-item"\r\n placeholder="请选择机构名称">\r\n <el-option v-for="(item, index) in institutionList" :key="index" :label="item.name" :value="item.name" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label="地址" prop="address">\r\n <el-input size="small" v-model="listQuery.address" placeholder="请输入地址"></el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="expExcel" :loading="loadExp">\r\n 导 出\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n \x3c!-- @sort-change="sortChange" --\x3e\r\n <el-table-column :label="\'机构名称\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构编码\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'行政区划\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.city }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属辖区\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.county }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理机构地址\'" align="center" width="200" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.address }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理机构类型\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n \x3c!-- <el-tag size="medium">{{\r\n row.type == "1" ? "养老机构" : row.type == "2" ? "上门护理机构" : "-"\r\n }}</el-tag> --\x3e\r\n <el-tag size="medium">{{\r\n row.type == "01"\r\n ? "上门护理机构"\r\n : row.type == "02"\r\n ? "养老机构"\r\n : row.type == "03"\r\n ? "医疗机构"\r\n : row.type == "04"\r\n ? "辅助器具机构"\r\n : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'联系人\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.linkMan }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'联系号码\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.linkPhoneNumber }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工数\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.userNum }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'描述\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'银行名称\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'银行账号\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankacct }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'开户行信息\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankAcctname }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'协议文件\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-link type="primary" @click="urlClick(row)">{{\r\n row.agreementPdf\r\n }}</el-link>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'操作\'" align="center" width="300" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="modify(row, $index)">\r\n 机构信息同步\r\n </el-button>\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="45%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="150px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="机构名称" prop="name">\r\n <el-input clearable placeholder="请输入机构名称" size="small" v-model="temp.name" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="省/市/区:">\r\n <div class="setCity">\r\n <el-select size="small" placeholder="请选择省份" v-model="temp.province" clearable filterable\r\n @change="initProvince">\r\n <el-option v-for="(item, index) in provinceList" :key="index" :label="item.name"\r\n @click.native="provinceChange(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n <el-select size="small" placeholder="请选择城市" v-model="temp.city" clearable filterable @change="initCity">\r\n <el-option v-for="(item, index) in cityList" :key="index" :label="item.name"\r\n @click.native="cityChange(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n <el-select size="small" placeholder="请选择辖区" v-model="temp.county" clearable filterable\r\n @change="initCounty">\r\n <el-option v-for="(item, index) in areaList" :key="index" :label="item.name"\r\n @click.native="changeDistrict(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n </div>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="定点归属医保区划:">\r\n <el-select size="small" placeholder="请选择定点归属医保区划" v-model="temp.admdvsType" clearable filterable>\r\n <el-option\r\n v-for="(item, index) in [{ label: \'省\', value: \'省\' }, { label: \'市\', value: \'市\' }, { label: \'区\', value: \'区\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="注册机构类型:">\r\n <el-select size="small" placeholder="请选择注册机构类型" v-model="temp.orgRegType" clearable filterable>\r\n <el-option v-for="(item, index) in [{ label: \'公立\', value: \'公立\' }, { label: \'非公立\', value: \'非公立\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构经营类型:">\r\n <el-select size="small" placeholder="请选择机构经营类型" v-model="temp.orgOperateType" clearable filterable>\r\n <el-option v-for="(item, index) in [{ label: \'盈利\', value: \'盈利\' }, { label: \'非盈利\', value: \'非盈利\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构单位性质:">\r\n <el-select size="small" placeholder="请选择机构单位性质" v-model="temp.orgNatu" clearable filterable>\r\n <el-option\r\n v-for="(item, index) in [{ label: \'事业单位\', value: \'事业单位\' }, { label: \'民办非企业\', value: \'民办非企业\' }, { label: \'企业\', value: \'企业\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法定代表人:">\r\n <el-input clearable placeholder="请输入法人代表人" size="small" v-model="temp.legrep" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法人代表证件类型:">\r\n <el-input clearable disabled placeholder="居民身份证" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法人代表证件号码:">\r\n <el-input clearable placeholder="请输入法人代表证件号码:" size="small" v-model="temp.legrepCertno" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="合同开始时间" prop="cntrBegntime">\r\n <el-date-picker v-model="temp.cntrBegntime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"\r\n placeholder="合同开始时间" default-time="12:00:00">\r\n </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="合同结束时间" prop="cntrEndtime">\r\n <el-date-picker v-model="temp.cntrEndtime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"\r\n placeholder="合同结束时间" default-time="12:00:00">\r\n </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="统一社会信用代码" prop="uscc">\r\n <el-input clearable placeholder="请输入统一社会信用代码" size="small" v-model="temp.uscc" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理机构地址" prop="address">\r\n <el-input clearable placeholder="请输入护理机构地址" size="small" v-model="temp.address" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理机构类型" prop="type">\r\n <el-select style="width: 100%" clearable filterable size="small" v-model="temp.type" class="filter-item"\r\n placeholder="请选择护理机构类型">\r\n <el-option v-for="(item, index) in [\r\n { label: \'上门护理机构\', value: \'01\' },\r\n { label: \'养老机构\', value: \'02\' },\r\n { label: \'医疗机构\', value: \'03\' },\r\n { label: \'辅助器具机构\', value: \'04\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系人" prop="linkMan">\r\n <el-input placeholder="请输入联系人" clearable size="small" v-model="temp.linkMan" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系号码" prop="linkPhoneNumber">\r\n <el-input clearable placeholder="请输入联系号码" size="small" v-model="temp.linkPhoneNumber" />\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span="12">\r\n <el-form-item label="银行户名">\r\n <el-input clearable placeholder="请输入银行户名" size="small" v-model="temp.bankAcctname" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行账号">\r\n <el-input clearable placeholder="请输入银行账号" size="small" v-model="temp.bankacct" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行开户行名称">\r\n <el-select style="width: 100%" v-model="temp.bankName" size="small" filterable remote reserve-keyword\r\n placeholder="请输入银行开户行名称" :remote-method="remoteMethod" :value-key="\'bank_id\'" @change="selectChange">\r\n <el-option v-for="item in options" :key="item.id" :label="item.bank_abbr" :value="item">\r\n </el-option>\r\n </el-select>\r\n \x3c!-- <el-input\r\n clearable\r\n placeholder="请输入开户行信息"\r\n size="small"\r\n v-model="temp.bankAcctname"\r\n /> --\x3e\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="描述">\r\n <el-input clearable placeholder="请输入描述内容" size="small" v-model="temp.description" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="法人证书/登记证书/营业执照">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'01\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="oneFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="养老机构设立许可证/备案回执">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'02\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="twoFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="医疗机构执业许可证">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'03\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="threeFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span="24">\r\n <el-form-item label="协议文件">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'04\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="fileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button size="small" type="primary" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'修改银行信息\'"\r\n :visible.sync="dialogBankVisible" width="40%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="银行户名">\r\n <el-input clearable placeholder="请输入银行户名" size="small" v-model="temp.bankAcctname" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行账号">\r\n <el-input clearable placeholder="请输入银行账号" size="small" v-model="temp.bankacct" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n \x3c!-- <el-form-item label="开户行信息">\r\n <el-input\r\n clearable\r\n placeholder="请输入开户行信息"\r\n size="small"\r\n v-model="temp.bankAcctname"\r\n />\r\n </el-form-item> --\x3e\r\n <el-form-item label="银行开户行名称">\r\n <el-select style="width: 100%" v-model="temp.bankName" size="small" filterable remote reserve-keyword\r\n placeholder="请输入银行开户行名称" :remote-method="remoteMethod" :value-key="\'bank_id\'" @change="selectChange">\r\n <el-option v-for="item in options" :key="item.id" :label="item.bank_abbr" :value="item">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogBankVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button size="small" type="primary" @click="updateBank()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SysUnitPage,\r\n SysUnitDel,\r\n SysUnitSave,\r\n SysUnitbankSave,\r\n exportsysUnitInfo,\r\n SysUnitBank,\r\n cloudSave\r\n} from "@/api/institution";\r\nimport Pagination from "@/components/Pagination"; // secondary package based on el-pagination\r\nimport PreviewFile from "@/components/previewFile";\r\nimport { uploadTP, uploadPDF, uploadThird } from "@/api/upload";\r\nimport { fileUrl } from "@/utils/fileUrl.js";\r\nimport pcaCode from "@/utils/pca.json";\r\nexport default {\r\n name: "personnel",\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n oneFileList: [],\r\n twoFileList: [],\r\n threeFileList: [],\r\n institutionList: [],\r\n FormData: {},\r\n file: {\r\n fileurl: "",\r\n dialogVisible: false,\r\n title: "",\r\n type: "",\r\n },\r\n loading: false,\r\n dialogBankVisible: false,\r\n dialogStatus: "",\r\n textMap: { update: "编辑", create: "创建" },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20,\r\n },\r\n fileList: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n uscc: [\r\n {\r\n required: true,\r\n message: "请输入统一社会信用代码",\r\n trigger: "blur",\r\n },\r\n ],\r\n type: [\r\n { required: true, message: "请选择护理机构类型", trigger: "change" },\r\n ],\r\n name: [{ required: true, message: "请输入机构名称", trigger: "blur" }],\r\n city: [{ required: true, message: "请输入行政区划", trigger: "blur" }],\r\n county: [\r\n { required: true, message: "请输入所属辖区", trigger: "blur" },\r\n ],\r\n cntrBegntime: [\r\n { required: true, message: "请选择合同开始时间", trigger: "change" },\r\n ],\r\n cntrEndtime: [\r\n { required: true, message: "请选择合同结束时间", trigger: "change" },\r\n ],\r\n liceIssuDate: [\r\n { required: true, message: "请选择持证时间", trigger: "change" },\r\n ],\r\n address: [\r\n { required: true, message: "请输入护理机构地址", trigger: "blur" },\r\n ],\r\n linkMan: [{ required: true, message: "请输入联系人", trigger: "blur" }],\r\n linkPhoneNumber: [\r\n { required: true, message: "请输入联系号码", trigger: "blur" },\r\n ],\r\n provinceCode: [{ required: true, message: "请选择", trigger: "blur" }],\r\n },\r\n temp: {\r\n },\r\n downloadLoading: false,\r\n loadExp: false,\r\n cityList: [],\r\n areaList: [],\r\n provinceList: [],\r\n admdvsCodgGrp: [],\r\n options: [],\r\n file_list: [],\r\n fileType: {\r\n "01": "01",\r\n "02": "02",\r\n "03": "03",\r\n "04": "04",\r\n },\r\n };\r\n },\r\n created() {\r\n this.provinceList = pcaCode;\r\n this.getList();\r\n },\r\n methods: {\r\n selectChange(value) {\r\n console.log(value)\r\n //银行大类\r\n this.temp.bankMajcls = value.bank_type_code;\r\n //银行名称\r\n this.temp.bankName = value.bank_abbr;\r\n //开户行id\r\n this.temp.bankId = value.bank_id;\r\n },\r\n remoteMethod(query) {\r\n // 在这里实现远程方法,返回一个 Promise 对象\r\n return new Promise((resolve, reject) => {\r\n SysUnitBank({ bankName: query }).then((res) => {\r\n if (res.status == 1) {\r\n this.options = res.result;\r\n resolve(this.options);\r\n }\r\n });\r\n });\r\n },\r\n provinceChange(item, type) {\r\n if (!item) return;\r\n this.cityList = item.children;\r\n // this.admdvsCodgGrp.push(item.code)\r\n this.temp.provinceCode = item.code;\r\n if (!type) this.crealt();\r\n },\r\n cityChange(item, type) {\r\n if (!item) return;\r\n this.areaList = item.children;\r\n this.temp.cityCode = item.code;\r\n if (!type) {\r\n this.$set(this.temp, "county", "");\r\n }\r\n },\r\n changeDistrict(item) {\r\n // this.admdvsCodgGrp.push(item.code)\r\n this.temp.countyCode = item.code;\r\n },\r\n //省份下拉框方法\r\n initProvince(val) {\r\n if (!val) {\r\n //城市置空\r\n this.cityList = [];\r\n //辖区置空\r\n this.areaList = [];\r\n // this.admdvsCodgGrp = [];\r\n this.crealt();\r\n }\r\n },\r\n //城市下拉框方法\r\n initCity(val) {\r\n if (!val) {\r\n //辖区置空\r\n this.areaList = [];\r\n this.$set(this.temp, "cityCode", "");\r\n }\r\n },\r\n //辖区下拉框方法\r\n initCounty(val) {\r\n if (!val) {\r\n this.$set(this.temp, "countyCode", "");\r\n }\r\n },\r\n crealt() {\r\n this.$set(this.temp, "city", "");\r\n this.$set(this.temp, "county", "");\r\n this.$set(this.temp, "cityCode", "");\r\n this.$set(this.temp, "countyCode", "");\r\n },\r\n getSysUnitBank(bankName) {\r\n SysUnitBank({ bankName }).then((res) => {\r\n console.log(res);\r\n if (res.status === "1") {\r\n // ("银行大类"); ("开户行名称"); ("开户行ID"); ("银行账号"); sw("银行户名"); sw\r\n this.temp = {\r\n ...this.temp,\r\n bankMajcls,\r\n bankName,\r\n bankId,\r\n bankacct,\r\n bankAcctname,\r\n };\r\n }\r\n });\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true;\r\n const form = {\r\n // startDate: this.startDate[0],\r\n // endDate: this.startDate[1],\r\n };\r\n exportsysUnitInfo(form)\r\n .then((res) => {\r\n const blob = new Blob([res]);\r\n const fileName = "机构信息";\r\n if (blob.size > 0) {\r\n const elink = document.createElement("a");\r\n elink.style.display = "none";\r\n elink.href = URL.createObjectURL(blob);\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n "YYYY-MM-DD"\r\n )}.xlsx`;\r\n document.body.appendChild(elink);\r\n elink.click();\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href);\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink);\r\n }\r\n this.handleClose();\r\n this.loadExp = false;\r\n })\r\n .catch(() => {\r\n this.loadExp = false;\r\n });\r\n } catch (e) {\r\n this.loadExp = false;\r\n console.log(e);\r\n }\r\n },\r\n urlClick(row) {\r\n this.onPreview({ url: row.agreementPdf });\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true;\r\n let index = file.name.lastIndexOf(".");\r\n let extension = file.name.substr(index + 1);\r\n let extensionList = [\r\n // "png",\r\n // "PNG",\r\n // "jpg",\r\n // "JPG",\r\n // "jpeg",\r\n // "JPEG",\r\n // "bmp",\r\n // "BMP",\r\n "PDF",\r\n "pdf",\r\n ];\r\n const isLt2M = file.size / 1024 / 1024 < 10;\r\n if (!isLt2M) {\r\n this.$message({\r\n message: "封面不可超出10M",\r\n type: "warning",\r\n center: true,\r\n });\r\n return false;\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: "只能pdf文件",\r\n type: "error",\r\n center: true,\r\n });\r\n return false;\r\n }\r\n },\r\n urlClick(row) {\r\n this.onPreview({ url: row.agreementPdf });\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url || file.name);\r\n let url = `http://127.0.0.1/img/${file.url || file.name}`;\r\n if (\r\n type == "word" ||\r\n type == "wps" ||\r\n type == "pdf" ||\r\n type == "pptx" ||\r\n type == "txt"\r\n ) {\r\n this.file.type = type;\r\n url = url;\r\n // url = `https://wps-view.zhihuipk.com/?src=` + url;\r\n } else if (type == "image") {\r\n this.file.type = type;\r\n } else if (type == "video") {\r\n this.file.type = type;\r\n } else if (type == "radio") {\r\n this.file.type = type;\r\n } else {\r\n this.$message.error("该格式不可在线预览,请下载后查看");\r\n return;\r\n }\r\n this.file.fileurl = url; // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true; // 弹窗\r\n this.file.title = file.name; // 文件名称\r\n },\r\n modify(row) {\r\n // this.temp = row;\r\n // this.dialogBankVisible = true;\r\n cloudSave({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList();\r\n this.$notify({\r\n title: "提示",\r\n message: res.info,\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: "提示",\r\n message: res.info,\r\n type: "error",\r\n duration: 2000,\r\n });\r\n })\r\n },\r\n updateBank() {\r\n SysUnitbankSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogBankVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "修改成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "修改失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n },\r\n getList() {\r\n this.listLoading = true;\r\n SysUnitPage(this.listQuery).then((response) => {\r\n this.list = response.result.data;\r\n this.total = response.result.count;\r\n console.log(this.list);\r\n setTimeout(() => {\r\n this.listLoading = false;\r\n }, 1.5 * 1000);\r\n });\r\n SysUnitPage({ size: 9999, pageNo: 1 }).then((res) => {\r\n this.institutionList = res.result.data;\r\n });\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: "操作成功",\r\n type: "success",\r\n });\r\n row.status = status;\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields();\r\n this.getList();\r\n });\r\n },\r\n add() {\r\n this.dialogStatus = "create";\r\n this.dialogFormVisible = true;\r\n this.temp = {};\r\n },\r\n onSubmit() {\r\n this.getList();\r\n },\r\n concatenateStrings(str1, str2, str3, withComma) {\r\n let result = `${str1}${withComma ? "," : ""}${str2}${withComma ? "," : ""\r\n }${str3}`;\r\n return result;\r\n },\r\n createData() {\r\n this.$refs["dataForm"].validate((valid) => {\r\n if (valid) {\r\n this.temp.admdvsCodgGrp = this.concatenateStrings(\r\n this.temp.provinceCode,\r\n this.temp.cityCode,\r\n this.temp.countyCode\r\n );\r\n this.temp.file_list = this.file_list;\r\n SysUnitSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "新增成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "新增失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n }\r\n });\r\n },\r\n updateData() {\r\n console.log(this.file_list);\r\n this.$refs["dataForm"].validate((valid) => {\r\n if (valid) {\r\n this.temp.file_list = this.file_list;\r\n SysUnitSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "更新成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "更新失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n }\r\n });\r\n },\r\n edit(row) {\r\n this.fileList = [];\r\n this.oneFileList = [];\r\n this.twoFileList = [];\r\n this.threeFileList = [];\r\n this.temp = row;\r\n this.dialogStatus = "update";\r\n this.dialogFormVisible = true;\r\n if (row.agreementPdf) {\r\n this.fileList.push({\r\n name: row.agreementPdf,\r\n url: row.agreementPdf,\r\n });\r\n }\r\n if (row.oneFile) {\r\n this.oneFileList.push({\r\n name: row.oneFile,\r\n url: row.oneFile,\r\n });\r\n }\r\n if (row.twoFile) {\r\n this.twoFileList.push({\r\n name: row.twoFile,\r\n url: row.twoFile,\r\n });\r\n }\r\n if (row.threeFile) {\r\n this.threeFileList.push({\r\n name: row.threeFile,\r\n url: row.threeFile,\r\n });\r\n }\r\n },\r\n handleDelete(row, index) {\r\n SysUnitDel({ id: row.id }).then((res) => {\r\n console.log(res);\r\n if (res.status == 1) {\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "删除成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "删除失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n // this.list.splice(index, 1)\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData();\r\n //上传文件\r\n obj.append("file", file.file);\r\n obj.append("realPath", file.file.name);\r\n obj.append("fileName", file.file.name);\r\n obj.append("att_type", file.data.file_type);\r\n console.log(file.data.file_type)\r\n // 上传文件接口\r\n uploadPDF(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: "上传成功",\r\n type: "success",\r\n });\r\n if (file.data.file_type == "04") {\r\n this.temp.agreementPdf = res.result.url;\r\n }\r\n if (file.data.file_type == "01") {\r\n this.temp.oneFile = res.result.url;\r\n }\r\n if (file.data.file_type == "02") {\r\n this.temp.twoFile = res.result.url;\r\n }\r\n if (file.data.file_type == "03") {\r\n this.temp.threeFile = res.result.url;\r\n }\r\n\r\n }\r\n uploadThird(obj).then((res) => {\r\n if (res.status == 1) {\r\n const obj = {\r\n file_type: file.data.file_type,\r\n fs_d_t_o_list: [\r\n {\r\n file_id: res.result.output.file_id,\r\n att_name: res.result.output.att_name,\r\n },\r\n ],\r\n };\r\n this.addFile(obj);\r\n }\r\n });\r\n });\r\n },\r\n beforeRemove(file, fileList) {\r\n return this.$confirm(`确定移除 ${file.name}?`);\r\n },\r\n handleCertPicUrlRemove(file, fileList) {\r\n for (var i = 0; i < this.file_list.length; i++) {\r\n this.file_list[i].fs_d_t_o_list = this.file_list[i].fs_d_t_o_list.filter((item) => {\r\n return item.att_name != file.name;\r\n });\r\n }\r\n console.log(this.file_list);\r\n },\r\n addFile(newFile) {\r\n const existingFileType = this.file_list.find(\r\n (item) => item.file_type === newFile.file_type\r\n );\r\n if (existingFileType) {\r\n if (newFile.file_type == this.fileType[newFile.file_type]) {\r\n existingFileType.fs_d_t_o_list.push(newFile.fs_d_t_o_list[0]);\r\n } else {\r\n this.file_list.push(newFile);\r\n }\r\n } else {\r\n this.file_list.push(newFile);\r\n }\r\n console.log(this.file_list);\r\n },\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.setCity {\r\n display: flex;\r\n gap: 10px;\r\n}\r\n</style>',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.setCity {\n display: flex;\n gap: 10px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$4="data-v-4ed0cbb6",__vue_module_identifier__$4=void 0,__vue_is_functional_template__$4=!1,__vue_component__$4=normalizeComponent({render:__vue_render__$4,staticRenderFns:__vue_staticRenderFns__$4},__vue_inject_styles__$4,__vue_script__$4,__vue_scope_id__$4,__vue_is_functional_template__$4,__vue_module_identifier__$4,!1,createInjector,void 0,void 0);var script$3={components:{Pagination:Pagination},name:"user",data:()=>({listLoading:!0,roleList:[],dialogFormVisible:!1,isRouterView:!1,list:[],total:0,queryForm:{pageNo:1,size:10},queryLoad:!1,loading:!1,form:{},saveRules:{name:[{required:!0,message:"请填写账号",trigger:"blur"}],mobile:[{required:!0,message:"请输入手机号码",trigger:"blur"},{validator:(e,t,n)=>{if(!t)return n(new Error("手机号不能为空"));if(!/^1[3456789]\d{9}$/.test(t))return n(new Error("请输入正确的手机号"));n()},trigger:"blur"}]},headPicLoading:!1,headPic:"",formMi:{},dialogFormVisibleMi:!1,dialogTitle:"",unitList:[]}),methods:{add(){this.form={},this.dialogFormVisible=!0,this.dialogTitle="新增用户"},edit(e){this.form={...e.row},this.dialogFormVisible=!0,this.dialogTitle="用户修改"},del(e){let t=e.row;this.$confirm("此操作将永久删除该记录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysUserDel({id:t.id}).then(e=>{1===e.status?(this.$message.success(e.info),this.handleSubmit()):this.$message.error(e.info)})})},resetPassword(e){let t=e.row;this.$confirm("确定是否重置该用户的密码?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysUserResetPass({id:t.id}).then(e=>{1===e.status?this.$message.success(e.info):this.$message.error(e.info)})})},save(){this.$refs.form.validate(e=>{if(e){for(let e in this.roleList)this.roleList[e].id===this.form.roleId&&(this.form.roleName=this.roleList[e].name);SysUserSave(this.form).then(e=>{1===e.status?(this.$message.success(e.info),this.dialogFormVisible=!1,this.handleSubmit()):this.$message.error(e.info)})}})},reset(){this.form={},this.delHeadPic()},handleAvatarSuccess(e){1===e.status&&(this.form.headPic=e.result,this.headPic=e.result,this.headPicLoading=!0)},beforeAvatarUpload(e){const t="image/jpeg"===e.type||"image/jpg",n=e.size/1024/1024<2;return t||this.$message.error("上传头像图片只能是 JPG 或 PNG 格式!"),n||this.$message.error("上传头像图片大小不能超过 2MB!"),t&&n},delHeadPic(){this.headPic="",this.headPicLoading=!1},handleSubmit(){this.list=[],this.queryLoad=!0,SysUserPage(this.queryForm).then(e=>{if(1===e.status){setTimeout(()=>{this.listLoading=!1,this.queryLoad=!1},1500),this.total=e.result.count;let n=e.result.data;for(var t=0;t<n.length;t++)n[t].index=t+1,n[t].roleNameTem=n[t].roleName,this.list.push(n[t]);this.total>=1&&(this.loading=!0)}})},handleSizeChange(e){this.queryForm.limit=e,this.handleSubmit()},handleCurrentChange(e){this.queryForm.page=e,this.handleSubmit()}},created(){SysRoleAll().then(e=>{1===e.status&&(this.roleList=e.result)}),SysUnitAll$1().then(e=>{1===e.status&&(this.unitList=e.result)}),this.handleSubmit()}};const __vue_script__$3=script$3;var __vue_render__$3=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagebox"},[n("div",{staticClass:"pagebox-search"},[n("el-form",{attrs:{inline:!0,size:"mini"}},[n("el-form-item",{attrs:{label:"账号名称"}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入账号",clearable:""},model:{value:e.queryForm.name,callback:function(t){e.$set(e.queryForm,"name",t)},expression:"queryForm.name"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"联系方式 ",clearable:""}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入联系方式",clearable:""},model:{value:e.queryForm.mobile,callback:function(t){e.$set(e.queryForm,"mobile",t)},expression:"queryForm.mobile"}})],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-right":"0"}},[n("el-button",{staticStyle:{border:"none"},attrs:{type:"primary",size:"small",icon:"el-icon-search",disabled:e.queryLoad},on:{click:e.handleSubmit}},[e._v("查询")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.add()}}},[n("i",{staticClass:"el-icon-plus"}),e._v("\n 新增\n ")])],1)],1)],1),e._v(" "),n("div",{staticClass:"pagebox-content"},[n("el-table",{staticStyle:{width:"100%"},attrs:{height:"65vh",border:"",data:e.list}},[n("el-table-column",{attrs:{prop:"name",align:"center",label:"账号"}}),e._v(" "),n("el-table-column",{attrs:{prop:"mobile",align:"center",label:"联系方式"}}),e._v(" "),n("el-table-column",{attrs:{prop:"roleNameTem",align:"center",label:"角色"}}),e._v(" "),n("el-table-column",{attrs:{prop:"status",align:"center",label:"状态"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s("1"==r.status?"有效":"2"==r.status?"无效":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"user_btn_items"},[n("el-button",{attrs:{type:"primary",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.edit(t)}}},[e._v("编辑")]),e._v(" "),n("el-button",{attrs:{type:"danger",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.del(t)}}},[e._v("移除")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.resetPassword(t)}}},[e._v("密码重置")])],1)]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryForm.page,limit:e.queryForm.limit},on:{"update:page":function(t){return e.$set(e.queryForm,"page",t)},"update:limit":function(t){return e.$set(e.queryForm,"limit",t)},pagination:e.handleSubmit}})],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.dialogTitle,width:"40%",visible:e.dialogFormVisible,"modal-append-to-body":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"form",attrs:{model:e.form,rules:e.saveRules,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"账号:",prop:"name"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请输入账号",clearable:""},model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系方式:",prop:"mobile"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请输入手机号码",clearable:""},model:{value:e.form.mobile,callback:function(t){e.$set(e.form,"mobile",t)},expression:"form.mobile"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属角色:",prop:"roleId"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择所属角色"},model:{value:e.form.roleId,callback:function(t){e.$set(e.form,"roleId",t)},expression:"form.roleId"}},e._l(e.roleList,function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1)],1)],1),e._v(" "),"1751170028811567106"!=e.form.roleId&&"1751169876856127489"!=e.form.roleId?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构:",prop:"unitId"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择所属机构"},model:{value:e.form.unitId,callback:function(t){e.$set(e.form,"unitId",t)},expression:"form.unitId"}},e._l(e.unitList,function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1)],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态:"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择状态",clearable:""},model:{value:e.form.status,callback:function(t){e.$set(e.form,"status",t)},expression:"form.status"}},[n("el-option",{attrs:{label:"无效",value:"2"}}),e._v(" "),n("el-option",{attrs:{label:"有效",value:"1"}})],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.save}},[e._v("保存")]),e._v(" "),n("el-button",{attrs:{size:"small"},on:{click:e.reset}},[e._v("重置")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"密码修改",visible:e.dialogFormVisibleMi,"modal-append-to-body":!1,width:"700px"},on:{"update:visible":function(t){e.dialogFormVisibleMi=t}}},[n("el-form",{ref:"form",staticStyle:{display:"flex","flex-direction":"column","justify-content":"center","align-items":"center"},attrs:{model:e.formMi,rules:e.saveRules}},[n("div",{staticClass:"user_form_item"},[n("el-form-item",{attrs:{label:"账号:"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{disabled:""},model:{value:e.formMi.name,callback:function(t){e.$set(e.formMi,"name",t)},expression:"formMi.name"}})],1)],1),e._v(" "),n("div",{staticClass:"user_form_item"},[n("el-form-item",{attrs:{label:"密码:"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{type:"password",clearable:""},model:{value:e.formMi.password,callback:function(t){e.$set(e.formMi,"password",t)},expression:"formMi.password"}})],1)],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"})],1)],1)},__vue_staticRenderFns__$3=[];__vue_render__$3._withStripped=!0;const __vue_inject_styles__$3=function(e){e&&e("data-v-ebd64368_0",{source:".pagebox[data-v-ebd64368] {\n padding: 20px;\n}\n.el-form-item__content[data-v-ebd64368] {\n margin-left: 0 !important;\n}\n.el-dialog__title[data-v-ebd64368] {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\sys\\user\\index.vue","index.vue"],names:[],mappings:"AA+TA;EACA,aAAA;AC9TA;ADkUA;EACA,yBAAA;AC/TA;ADyVA;EACA,eAAA;ACtVA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="pagebox">\r\n <div class="pagebox-search">\r\n <el-form :inline="true" size="mini">\r\n <el-form-item label="账号名称">\r\n <el-input v-model="queryForm.name" placeholder="请输入账号" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item label="联系方式 " clearable>\r\n <el-input v-model="queryForm.mobile" placeholder="请输入联系方式" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item style="margin-right: 0">\r\n <el-button type="primary" size="small" icon="el-icon-search" :disabled="queryLoad" @click="handleSubmit"\r\n style="border: none">查询</el-button>\r\n <el-button type="primary" @click="add()">\r\n <i class="el-icon-plus" />\r\n 新增\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <div class="pagebox-content">\r\n <el-table height="65vh" border :data="list" style="width: 100%">\r\n \x3c!-- <el-table-column prop="index" align="center" label="排序" width="100" /> --\x3e\r\n <el-table-column prop="name" align="center" label="账号" />\r\n <el-table-column prop="mobile" align="center" label="联系方式" />\r\n <el-table-column prop="roleNameTem" align="center" label="角色" />\r\n <el-table-column prop="status" align="center" label="状态">\r\n <template slot-scope="{row}">\r\n <span>{{ row.status == \'1\' ? \'有效\' : row.status == \'2\' ? \'无效\' : \'-\' }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label="操作" align="center" width="280" >\r\n <template slot-scope="scope">\r\n <div class="user_btn_items">\r\n <el-button type="primary" @click.native.prevent="edit(scope)" size="mini">编辑</el-button>\r\n <el-button type="danger" @click.native.prevent="del(scope)" size="mini">移除</el-button>\r\n <el-button type="primary" @click.native.prevent="resetPassword(scope)" size="mini">密码重置</el-button>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="queryForm.page" :limit.sync="queryForm.limit"\r\n @pagination="handleSubmit" />\r\n </div>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n :title="dialogTitle" width="40%" :visible.sync="dialogFormVisible" :modal-append-to-body="false">\r\n <el-form :model="form" :rules="saveRules" ref="form" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="账号:" prop="name">\r\n <el-input size="small" v-model="form.name" style="width: 100%" placeholder="请输入账号" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系方式:" prop="mobile">\r\n <el-input size="small" v-model="form.mobile" style="width: 100%" placeholder="请输入手机号码" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属角色:" prop="roleId">\r\n <el-select size="small" v-model="form.roleId" placeholder="请选择所属角色" style="width: 100%">\r\n <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12" v-if="form.roleId != \'1751170028811567106\' && form.roleId != \'1751169876856127489\'">\r\n <el-form-item label="所属机构:" prop="unitId">\r\n <el-select size="small" v-model="form.unitId" placeholder="请选择所属机构" style="width: 100%">\r\n <el-option v-for="item in unitList" :key="item.id" :label="item.name" :value="item.id"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="状态:">\r\n <el-select size="small" v-model="form.status" placeholder="请选择状态" style="width: 100%" clearable>\r\n <el-option label="无效" :value="\'2\'"></el-option>\r\n <el-option label="有效" :value="\'1\'"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" size="small" @click="save">保存</el-button>\r\n <el-button @click="reset" size="small">重置</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n \x3c!-- 密码修改 --\x3e\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n title="密码修改" :visible.sync="dialogFormVisibleMi" :modal-append-to-body="false" width="700px">\r\n <el-form :model="formMi" :rules="saveRules" ref="form" style="\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n ">\r\n \x3c!-- --\x3e\r\n <div class="user_form_item">\r\n <el-form-item label="账号:">\r\n <el-input v-model="formMi.name" style="width: 100%" disabled></el-input>\r\n </el-form-item>\r\n </div>\r\n <div class="user_form_item">\r\n <el-form-item label="密码:">\r\n <el-input type="password" v-model="formMi.password" style="width: 100%" clearable></el-input>\r\n </el-form-item>\r\n </div>\r\n </el-form>\r\n \x3c!-- 保存/重置 --\x3e\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button type="primary" @click="savePassWord">保存</el-button>--\x3e\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport Pagination from \'@/components/Pagination\'\r\nimport {\r\n SysUserUPPass,\r\n SysUserResetPass,\r\n SysUserPage,\r\n SysUserDel,\r\n SysUserSave,\r\n SysRoleAll,\r\n SysUnitAll,\r\n} from "@/api/sys.js";\r\n\r\nexport default {\r\n components: { Pagination },\r\n // inject:[\'reload\'],\r\n name: "user",\r\n data() {\r\n var checkPhone = (rule, value, callback) => {\r\n // 手机号验证\r\n if (!value) {\r\n return callback(new Error("手机号不能为空"));\r\n } else {\r\n const reg = /^1[3456789]\\d{9}$/;\r\n if (reg.test(value)) {\r\n callback();\r\n } else {\r\n return callback(new Error("请输入正确的手机号"));\r\n }\r\n }\r\n };\r\n return {\r\n listLoading: true,\r\n roleList: [],\r\n dialogFormVisible: false,\r\n isRouterView: false,\r\n list: [],\r\n total: 0,\r\n queryForm: {\r\n pageNo: 1,\r\n size: 10,\r\n },\r\n queryLoad: false,\r\n loading: false,\r\n form: {},\r\n saveRules: {\r\n name: [{ required: true, message: "请填写账号", trigger: "blur" }],\r\n mobile: [\r\n { required: true, message: "请输入手机号码", trigger: "blur" },\r\n { validator: checkPhone, trigger: "blur" },\r\n ],\r\n },\r\n headPicLoading: false,\r\n headPic: "",\r\n formMi: {},\r\n dialogFormVisibleMi: false,\r\n dialogTitle: "",\r\n unitList: []\r\n };\r\n },\r\n methods: {\r\n add() {\r\n this.form = {};\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "新增用户";\r\n },\r\n edit(data) {\r\n this.form = { ...data.row };\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "用户修改";\r\n },\r\n del(data) {\r\n let row = data.row;\r\n this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysUserDel({ id: row.id }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n resetPassword(data) {\r\n let row = data.row;\r\n this.$confirm("确定是否重置该用户的密码?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysUserResetPass({\r\n id: row.id,\r\n }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n save() {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n for (let v in this.roleList) {\r\n if (this.roleList[v].id === this.form.roleId) {\r\n this.form.roleName = this.roleList[v].name;\r\n }\r\n }\r\n SysUserSave(this.form).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.dialogFormVisible = false;\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n reset() {\r\n this.form = {};\r\n this.delHeadPic();\r\n },\r\n handleAvatarSuccess(res) {\r\n if (res.status === 1) {\r\n this.form.headPic = res.result;\r\n this.headPic = res.result;\r\n this.headPicLoading = true;\r\n }\r\n },\r\n beforeAvatarUpload(file) {\r\n const fileType = file.type === "image/jpeg" || "image/jpg";\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!fileType) {\r\n this.$message.error("上传头像图片只能是 JPG 或 PNG 格式!");\r\n }\r\n if (!isLt2M) {\r\n this.$message.error("上传头像图片大小不能超过 2MB!");\r\n }\r\n return fileType && isLt2M;\r\n },\r\n delHeadPic() {\r\n this.headPic = "";\r\n this.headPicLoading = false;\r\n },\r\n handleSubmit() {\r\n this.list = [];\r\n this.queryLoad = true;\r\n SysUserPage(this.queryForm).then((res) => {\r\n if (res.status === 1) {\r\n setTimeout(() => {\r\n this.listLoading = false\r\n this.queryLoad = false;\r\n }, 1.5 * 1000)\r\n this.total = res.result.count;\r\n let dep = res.result.data;\r\n for (var i = 0; i < dep.length; i++) {\r\n dep[i].index = i + 1;\r\n dep[i].roleNameTem = dep[i].roleName;\r\n this.list.push(dep[i]);\r\n }\r\n if (this.total >= 1) {\r\n this.loading = true;\r\n }\r\n }\r\n });\r\n },\r\n handleSizeChange(val) {\r\n this.queryForm.limit = val;\r\n this.handleSubmit();\r\n },\r\n handleCurrentChange(val) {\r\n this.queryForm.page = val;\r\n this.handleSubmit();\r\n },\r\n },\r\n created() {\r\n SysRoleAll().then((res) => {\r\n if (res.status === 1) {\r\n this.roleList = res.result;\r\n }\r\n });\r\n SysUnitAll().then((res) => {\r\n if (res.status === 1) {\r\n this.unitList = res.result;\r\n }\r\n });\r\n this.handleSubmit();\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.pagebox {\r\n padding: 20px;\r\n}\r\n\r\n\r\n.el-form-item__content {\r\n margin-left: 0 !important;\r\n}\r\n\r\n.el-dialog__wrapper>>>.el-dialog__header {\r\n background-color: #f8f8f8;\r\n}\r\n\r\n.el-table>>>td {\r\n text-align: center;\r\n}\r\n\r\n.el-table>>>th {\r\n text-align: center;\r\n}\r\n\r\n.role_form_item>>>.el-form-item {\r\n display: flex;\r\n align-items: center;\r\n align-content: space-between;\r\n justify-content: space-evenly;\r\n}\r\n\r\n.role_btn_items>>>.el-button {\r\n padding: 5px 10px;\r\n}\r\n\r\n.el-dialog__title {\r\n font-size: 14px;\r\n}\r\n</style>\r\n',".pagebox {\n padding: 20px;\n}\n\n.el-form-item__content {\n margin-left: 0 !important;\n}\n\n.el-dialog__title {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$3="data-v-ebd64368",__vue_module_identifier__$3=void 0,__vue_is_functional_template__$3=!1,__vue_component__$3=normalizeComponent({render:__vue_render__$3,staticRenderFns:__vue_staticRenderFns__$3},__vue_inject_styles__$3,__vue_script__$3,__vue_scope_id__$3,__vue_is_functional_template__$3,__vue_module_identifier__$3,!1,createInjector,void 0,void 0);var script$2={name:"role",data:()=>({listLoading:!0,dialogFormVisible:!1,isRouterView:!1,list:[],total:0,queryForm:{pageNo:1,size:10},queryLoad:!1,loading:!1,form:{},saveRules:{name:[{required:!0,message:"请填写角色名称",trigger:"blur"}],level:[{required:!0,message:"请选择权限级别",trigger:"blur"}]},nodeTree:[],defaultProps:{children:"children",label:"name"},nodes:[],dialogTitle:""}),components:{Pagination:Pagination},watch:{$route:{handler(e){if("/sys/role/save"==e.path)this.isRouterView=!0;else{"1"==this.$route.query.refresh&&this.handleSubmit(),this.isRouterView=!1}},immediate:!0}},methods:{add(){this.form={},this.dialogFormVisible=!0,this.dialogTitle="新增角色"},edit(e){this.form={...e.row},this.dialogTitle="角色修改",SysRoleAccess({roleId:this.form.id}).then(e=>{if(console.log(e,"resv"),1===e.status){let t=e.result;console.log(t,"list");let n=[];for(let[e,r]of t.entries())n.push(r.nodeId);this.$refs.tree.setCheckedKeys(n),console.log(n,"checkedKeys")}}),this.dialogFormVisible=!0},del(e){let t=e.row;this.$confirm("此操作将永久删除该记录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysRoleDel({id:t.id}).then(e=>{1===e.status?(this.$message.success(e.info),this.handleSubmit()):this.$message.error(e.info)})})},save(){this.$refs.form.validate(e=>{e&&(this.form.nodeIds=this.$refs.tree.getCheckedKeys().join(","),SysRoleSave(this.form).then(e=>{1===e.status?(this.$message.success(e.info),this.dialogFormVisible=!1,this.handleSubmit(),this.reset()):this.$message.error(e.info)}))})},reset(){this.form={}},handleSubmit(){this.list=[],this.listLoading=!0,this.queryLoad=!0,SysRolePage(this.queryForm).then(e=>{if(1===e.status){setTimeout(()=>{this.listLoading=!1,this.queryLoad=!1},1500),this.total=e.result.count;let n=e.result.data;for(var t=0;t<n.length;t++)n[t].index=t+1,this.list.push(n[t]);this.total>=1&&(this.loading=!0),console.log(this.loading)}-1===e.status&&(this.$fn.delCookie("user"),this.$store.dispatch("setUser",""),this.$store.dispatch("setRowData",{}),this.$router.push("/login"))})},handleSizeChange(e){this.queryForm.limit=e,this.handleSubmit()},handleCurrentChange(e){this.queryForm.page=e,this.handleSubmit()}},created(){this.handleSubmit(),SysNodeTree().then(e=>{if(1===e.status){this.nodeTree=[];let t={id:"0",name:"菜单",lv:0,type:"1",children:e.result};this.nodeTree.push(t)}})}};const __vue_script__$2=script$2;var __vue_render__$2=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagebox"},[n("div",{staticClass:"pagebox-search"},[n("el-form",{attrs:{inline:!0,size:"mini"}},[n("el-form-item",{attrs:{label:"角色名称"}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入角色名称",clearable:""},model:{value:e.queryForm.name,callback:function(t){e.$set(e.queryForm,"name",t)},expression:"queryForm.name"}})],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-right":"0"}},[n("el-button",{attrs:{type:"primary",disabled:e.queryLoad},on:{click:e.handleSubmit}},[n("i",{staticClass:"el-icon-search"}),e._v("\n 查询\n ")])],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-left":"15px"}},[n("el-button",{attrs:{type:"primary"},on:{click:e.add}},[n("i",{staticClass:"el-icon-plus"}),e._v("\n 新增\n ")]),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.dialogTitle,visible:e.dialogFormVisible,"modal-append-to-body":!1,width:"600px"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"form",staticStyle:{display:"flex","flex-direction":"column-reverse","justify-content":"center","align-items":"center"},attrs:{model:e.form,rules:e.saveRules}},[n("div",{staticClass:"form-box"},[n("br"),e._v(" "),n("div",{staticClass:"role_form_item"},[n("el-form-item",{attrs:{prop:"name",label:"角色名称:"}},[n("el-input",{staticStyle:{width:"380px"},attrs:{autocomplete:"off",clearable:""},model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1)],1)]),e._v(" "),n("div",{staticClass:"tree-box"},[n("el-tree",{ref:"tree",staticClass:"filter-tree",staticStyle:{width:"380px"},attrs:{data:e.nodeTree,props:e.defaultProps,"expand-on-click-node":!0,"show-checkbox":"","node-key":"id"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,l=t.data;return n("span",{staticClass:"custom-tree-node"},[n("span",[n("i",{class:l.children.length>0?"el-icon-folder-opened":"el-icon-folder"}),e._v("\n "+e._s(r.label)+"\n ")])])}}])})],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保存")]),e._v(" "),n("el-button",{on:{click:e.reset}},[e._v("重置")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"pagebox-content"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.list,border:"",height:"65vh"}},[n("el-table-column",{attrs:{prop:"name",label:"角色名称",align:"center"}}),e._v(" "),n("el-table-column",{attrs:{prop:"createTime",label:"创建时间",align:"center"}}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"150",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"role_btn_items"},[n("el-button",{staticStyle:{color:"#fff","background-color":"#93c96d"},attrs:{round:"",type:"text",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.edit(t)}}},[e._v("编辑")]),e._v(" "),n("el-button",{staticStyle:{color:"#fff","background-color":"#ff7f50"},attrs:{round:"",type:"text",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.del(t)}}},[e._v("移除")])],1)]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryForm.page,limit:e.queryForm.limit},on:{"update:page":function(t){return e.$set(e.queryForm,"page",t)},"update:limit":function(t){return e.$set(e.queryForm,"limit",t)},pagination:e.handleSubmit}})],1)])},__vue_staticRenderFns__$2=[];__vue_render__$2._withStripped=!0;const __vue_inject_styles__$2=function(e){e&&e("data-v-a6de6998_0",{source:".pagebox[data-v-a6de6998] {\n padding: 20px;\n}\n.el-form-item[data-v-a6de6998] {\n margin-bottom: 10px !important;\n}\n.el-form-item__content[data-v-a6de6998] {\n margin-left: 0 !important;\n}\n.el-dialog__title[data-v-a6de6998] {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\sys\\role\\index.vue","index.vue"],names:[],mappings:"AAgRA;EACA,aAAA;AC/QA;ADkRA;EACA,8BAAA;AC/QA;ADkRA;EACA,yBAAA;AC/QA;ADySA;EACA,eAAA;ACtSA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="pagebox">\r\n <div class="pagebox-search">\r\n <el-form :inline="true" size="mini">\r\n \x3c!-- 查询 start --\x3e\r\n <el-form-item label="角色名称">\r\n <el-input v-model="queryForm.name" placeholder="请输入角色名称" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item style="margin-right: 0">\r\n <el-button type="primary" @click="handleSubmit" :disabled="queryLoad">\r\n <i class="el-icon-search" />\r\n 查询\r\n </el-button>\r\n </el-form-item>\r\n \x3c!-- end --\x3e\r\n \x3c!-- <div style="border:1px solid #ddd"></div> --\x3e\r\n \x3c!-- 新增 start --\x3e\r\n <el-form-item style="margin-left: 15px">\r\n <el-button type="primary" @click="add">\r\n <i class="el-icon-plus" />\r\n 新增\r\n </el-button>\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n :title="dialogTitle" :visible.sync="dialogFormVisible" :modal-append-to-body="false" width="600px">\r\n <el-form :model="form" :rules="saveRules" ref="form" style="\r\n display: flex;\r\n flex-direction: column-reverse;\r\n justify-content: center;\r\n align-items: center;\r\n ">\r\n <div class="form-box">\r\n <br />\r\n \x3c!-- 角色名称 --\x3e\r\n <div class="role_form_item">\r\n <el-form-item prop="name" label="角色名称:">\r\n <el-input v-model="form.name" autocomplete="off" clearable style="width: 380px" />\r\n </el-form-item>\r\n </div>\r\n </div>\r\n \x3c!-- 权限 --\x3e\r\n <div class="tree-box">\r\n <el-tree class="filter-tree" :data="nodeTree" :props="defaultProps" :expand-on-click-node="true"\r\n show-checkbox node-key="id" ref="tree" style="width: 380px">\r\n <span class="custom-tree-node" slot-scope="{ node, data }">\r\n <span>\r\n <i :class="data.children.length > 0\r\n ? \'el-icon-folder-opened\'\r\n : \'el-icon-folder\'\r\n "></i>\r\n {{ node.label }}\r\n </span>\r\n </span>\r\n </el-tree>\r\n </div>\r\n </el-form>\r\n \x3c!-- 保存/重置 --\x3e\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" @click="save">保存</el-button>\r\n <el-button @click="reset">重置</el-button>\r\n </div>\r\n </el-dialog>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n \x3c!-- 主体 --\x3e\r\n <div class="pagebox-content">\r\n <el-table :data="list" border height="65vh" style="width: 100%">\r\n \x3c!-- <el-table-column prop="index" label="排序" width="100" align="center"/> --\x3e\r\n <el-table-column prop="name" label="角色名称" align="center"/>\r\n <el-table-column prop="createTime" label="创建时间" align="center"/>\r\n <el-table-column label="操作" width="150" align="center">\r\n <template slot-scope="scope">\r\n <div class="role_btn_items">\r\n <el-button round style="color: #fff; background-color: #93c96d" @click.native.prevent="edit(scope)"\r\n type="text" size="mini">编辑</el-button>\r\n <el-button round style="color: #fff; background-color: #ff7f50" @click.native.prevent="del(scope)"\r\n type="text" size="mini">移除</el-button>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="queryForm.page" :limit.sync="queryForm.limit"\r\n @pagination="handleSubmit" />\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport {\r\n SysRoleAll,\r\n SysRoleDel,\r\n SysRoleAccess,\r\n SysRolePage,\r\n SysRoleSave,\r\n SysNodeTree,\r\n} from "@/api/sys.js";\r\nimport Pagination from \'@/components/Pagination\'\r\nexport default {\r\n name: "role",\r\n data() {\r\n return {\r\n listLoading: true,\r\n dialogFormVisible: false,\r\n isRouterView: false,\r\n list: [],\r\n total: 0,\r\n queryForm: {\r\n pageNo: 1,\r\n size: 10,\r\n },\r\n queryLoad: false,\r\n loading: false,\r\n form: {},\r\n saveRules: {\r\n name: [{ required: true, message: "请填写角色名称", trigger: "blur" }],\r\n level: [{ required: true, message: "请选择权限级别", trigger: "blur" }],\r\n },\r\n nodeTree: [],\r\n defaultProps: {\r\n children: "children",\r\n label: "name",\r\n },\r\n nodes: [],\r\n dialogTitle: "",\r\n };\r\n },\r\n components: { Pagination },\r\n watch: {\r\n $route: {\r\n handler(route) {\r\n if (route.path == "/sys/role/save") {\r\n this.isRouterView = true;\r\n } else {\r\n let refresh = this.$route.query.refresh;\r\n if (refresh == "1") {\r\n this.handleSubmit();\r\n }\r\n this.isRouterView = false;\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n add() {\r\n this.form = {};\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "新增角色";\r\n },\r\n edit(data) {\r\n this.form = { ...data.row };\r\n this.dialogTitle = "角色修改";\r\n SysRoleAccess({\r\n roleId: this.form.id,\r\n }).then((resv) => {\r\n console.log(resv,\'resv\');\r\n \r\n if (resv.status === 1) {\r\n let list = resv.result;\r\n console.log(list,\'list\');\r\n let checkedKeys = [];\r\n for (let [i, v] of list.entries()) {\r\n // if (v.hasSon == "0") {\r\n checkedKeys.push(v.nodeId);\r\n // }\r\n }\r\n this.$refs.tree.setCheckedKeys(checkedKeys);\r\n console.log(checkedKeys,\'checkedKeys\');\r\n }\r\n });\r\n this.dialogFormVisible = true;\r\n },\r\n del(data) {\r\n let row = data.row;\r\n this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysRoleDel({ id: row.id }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n // 保存\r\n save() {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n this.form.nodeIds = this.$refs.tree.getCheckedKeys().join(",");\r\n SysRoleSave(this.form).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.dialogFormVisible = false;\r\n this.handleSubmit();\r\n this.reset();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n reset() {\r\n this.form = {};\r\n },\r\n\r\n // 查询\r\n handleSubmit() {\r\n this.list = [];\r\n this.listLoading = true\r\n this.queryLoad = true;\r\n SysRolePage(this.queryForm).then((res) => {\r\n if (res.status === 1) {\r\n setTimeout(() => {\r\n this.listLoading = false\r\n this.queryLoad = false;\r\n }, 1.5 * 1000)\r\n this.total = res.result.count;\r\n let dep = res.result.data;\r\n for (var i = 0; i < dep.length; i++) {\r\n dep[i].index = i + 1;\r\n this.list.push(dep[i]);\r\n }\r\n // console.log(this.list);\r\n if (this.total >= 1) {\r\n this.loading = true;\r\n }\r\n console.log(this.loading);\r\n }\r\n // 判断status为-1的时候,则返回登录页面\r\n if (res.status === -1) {\r\n this.$fn.delCookie("user");\r\n this.$store.dispatch("setUser", "");\r\n this.$store.dispatch("setRowData", {});\r\n this.$router.push("/login");\r\n }\r\n });\r\n },\r\n handleSizeChange(val) {\r\n this.queryForm.limit = val;\r\n this.handleSubmit();\r\n },\r\n handleCurrentChange(val) {\r\n this.queryForm.page = val;\r\n this.handleSubmit();\r\n },\r\n },\r\n created() {\r\n this.handleSubmit();\r\n SysNodeTree().then((res) => {\r\n if (res.status === 1) {\r\n this.nodeTree = [];\r\n let baseNode = {\r\n id: "0",\r\n name: "菜单",\r\n lv: 0,\r\n type: "1",\r\n children: res.result,\r\n };\r\n this.nodeTree.push(baseNode);\r\n }\r\n });\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.pagebox {\r\n padding: 20px;\r\n}\r\n\r\n.el-form-item {\r\n margin-bottom: 10px !important;\r\n}\r\n\r\n.el-form-item__content {\r\n margin-left: 0 !important;\r\n}\r\n\r\n.el-dialog__wrapper>>>.el-dialog__header {\r\n background-color: #f8f8f8;\r\n}\r\n\r\n.el-table>>>td {\r\n text-align: center;\r\n}\r\n\r\n.el-table>>>th {\r\n text-align: center;\r\n}\r\n\r\n.role_form_item>>>.el-form-item {\r\n display: flex;\r\n align-items: center;\r\n align-content: space-between;\r\n justify-content: space-evenly;\r\n}\r\n\r\n.role_btn_items>>>.el-button {\r\n padding: 5px 10px;\r\n}\r\n\r\n.el-dialog__title {\r\n font-size: 14px;\r\n}\r\n</style>\r\n\r\n',".pagebox {\n padding: 20px;\n}\n\n.el-form-item {\n margin-bottom: 10px !important;\n}\n\n.el-form-item__content {\n margin-left: 0 !important;\n}\n\n.el-dialog__title {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$2="data-v-a6de6998",__vue_module_identifier__$2=void 0,__vue_is_functional_template__$2=!1,__vue_component__$2=normalizeComponent({render:__vue_render__$2,staticRenderFns:__vue_staticRenderFns__$2},__vue_inject_styles__$2,__vue_script__$2,__vue_scope_id__$2,__vue_is_functional_template__$2,__vue_module_identifier__$2,!1,createInjector,void 0,void 0);Math.easeInOutQuad=function(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t};var requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};function move(e){document.documentElement.scrollTop=e,document.body.parentNode.scrollTop=e,document.body.scrollTop=e}function position(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function scrollTo(e,t,n){const r=position(),l=e-r;let i=0;t=void 0===t?500:t;var a=function(){i+=20,move(Math.easeInOutQuad(i,r,l,t)),i<t?requestAnimFrame(a):n&&"function"==typeof n&&n()};a()}var script$1={name:"Pagination",props:{total:{required:!0,type:Number},page:{type:Number,default:1},limit:{type:Number,default:20},pageSizes:{type:Array,default:()=>[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1}},computed:{currentPage:{get(){return this.page},set(e){this.$emit("update:page",e)}},pageSize:{get(){return this.limit},set(e){this.$emit("update:limit",e)}}},methods:{handleSizeChange(e){this.$emit("pagination",{pageNo:this.currentPage,size:e}),this.autoScroll&&scrollTo(0,800)},handleCurrentChange(e){this.$emit("pagination",{pageNo:e,size:this.pageSize}),this.autoScroll&&scrollTo(0,800)}}};const __vue_script__$1=script$1;var __vue_render__$1=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagination-container",class:{hidden:e.hidden}},[n("el-pagination",e._b({attrs:{background:e.background,"current-page":e.currentPage,"page-size":e.pageSize,layout:e.layout,"page-sizes":e.pageSizes,total:e.total},on:{"update:currentPage":function(t){e.currentPage=t},"update:current-page":function(t){e.currentPage=t},"update:pageSize":function(t){e.pageSize=t},"update:page-size":function(t){e.pageSize=t},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}},"el-pagination",e.$attrs,!1))],1)},__vue_staticRenderFns__$1=[];__vue_render__$1._withStripped=!0;const __vue_inject_styles__$1=function(e){e&&e("data-v-253b4db8_0",{source:"\n.pagination-container[data-v-253b4db8] {\r\n background: #fff;\r\n padding: 32px 16px;\n}\n.pagination-container.hidden[data-v-253b4db8] {\r\n display: none;\n}\r\n",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\components\\Pagination\\index.vue"],names:[],mappings:";AAqFA;IACA,gBAAA;IACA,kBAAA;AACA;AAEA;IACA,aAAA;AACA",file:"index.vue",sourcesContent:['<template>\r\n <div :class="{ \'hidden\': hidden }" class="pagination-container">\r\n <el-pagination :background="background" :current-page.sync="currentPage" :page-size.sync="pageSize"\r\n :layout="layout" :page-sizes="pageSizes" :total="total" v-bind="$attrs" @size-change="handleSizeChange"\r\n @current-change="handleCurrentChange" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { scrollTo } from \'../../utils/scroll-to\'\r\n\r\nexport default {\r\n name: \'Pagination\',\r\n props: {\r\n total: {\r\n required: true,\r\n type: Number\r\n },\r\n page: {\r\n type: Number,\r\n default: 1\r\n },\r\n limit: {\r\n type: Number,\r\n default: 20\r\n },\r\n pageSizes: {\r\n type: Array,\r\n default() {\r\n return [10, 20, 30, 50]\r\n }\r\n },\r\n layout: {\r\n type: String,\r\n default: \'total, sizes, prev, pager, next, jumper\'\r\n },\r\n background: {\r\n type: Boolean,\r\n default: true\r\n },\r\n autoScroll: {\r\n type: Boolean,\r\n default: true\r\n },\r\n hidden: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n currentPage: {\r\n get() {\r\n return this.page\r\n },\r\n set(val) {\r\n this.$emit(\'update:page\', val)\r\n }\r\n },\r\n pageSize: {\r\n get() {\r\n return this.limit\r\n },\r\n set(val) {\r\n this.$emit(\'update:limit\', val)\r\n }\r\n }\r\n },\r\n methods: {\r\n handleSizeChange(val) {\r\n this.$emit(\'pagination\', { pageNo: this.currentPage, size: val })\r\n if (this.autoScroll) {\r\n scrollTo(0, 800)\r\n }\r\n },\r\n handleCurrentChange(val) {\r\n this.$emit(\'pagination\', { pageNo: val, size: this.pageSize })\r\n if (this.autoScroll) {\r\n scrollTo(0, 800)\r\n }\r\n }\r\n }\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.pagination-container {\r\n background: #fff;\r\n padding: 32px 16px;\r\n}\r\n\r\n.pagination-container.hidden {\r\n display: none;\r\n}\r\n</style>\r\n']},media:void 0})},__vue_scope_id__$1="data-v-253b4db8",__vue_module_identifier__$1=void 0,__vue_is_functional_template__$1=!1,__vue_component__$1=normalizeComponent({render:__vue_render__$1,staticRenderFns:__vue_staticRenderFns__$1},__vue_inject_styles__$1,__vue_script__$1,__vue_scope_id__$1,__vue_is_functional_template__$1,__vue_module_identifier__$1,!1,createInjector,void 0,void 0);var script={name:"PreviewFile",components:{},props:{file:{type:Object,default:function(){return{fileurl:"",dialogVisible:!1,title:""}}}},data:()=>({height:window.innerHeight-400+"px",loading:!0,dialogVisible:!1,pdf:"https://lczhgy.zjmskj.com/img/政务中台.pdf",options:{xls:!0,minColLength:0,minRowLength:0,widthOffset:10,heightOffset:10,beforeTransformData:e=>e,transformData:e=>e}}),methods:{renderedHandler(){this.loading=!1},errorHandler(){this.$message({message:"渲染失败",type:"warning"}),this.loading=!1},handleClose(){this.file.dialogVisible=!1}}};const __vue_script__=script;var __vue_render__=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"附件预览",visible:e.file.dialogVisible,"before-close":e.handleClose,"append-to-body":""},on:{"update:visible":function(t){return e.$set(e.file,"dialogVisible",t)}}},[n("div",["pdf"==e.file.type||"pptx"==e.file.type||"wps"==e.file.type||"xls"==e.file.type||"excel"==e.file.type||"word"==e.file.type||"doc"==e.file.type||"docx"==e.file.type?n("iframe",{staticClass:"child",style:{height:e.height},attrs:{frameborder:"0",src:e.file.fileurl}}):e._e(),e._v(" "),"image"==e.file.type?n("el-image",{staticStyle:{height:"100%",width:"100%"},attrs:{fit:"contain ",src:e.file.fileurl,"preview-src-list":[e.file.fileurl]}}):e._e(),e._v(" "),"video"==e.file.type?n("video",{staticStyle:{height:"100%",width:"100%"},attrs:{src:e.file.fileurl,autoplay:"",controls:"controls"}}):e._e()],1)])],1)},__vue_staticRenderFns__=[];__vue_render__._withStripped=!0;const __vue_inject_styles__=function(e){e&&e("data-v-853af682_0",{source:"\n.child[data-v-853af682] {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\n}\n.dialog-box[data-v-853af682] .el-dialog__headerbtn {\r\n font-size: 34px;\n}\n.analysis[data-v-853af682] .el-dialog {\r\n left: 119px;\n}\n.analysis-dialog[data-v-853af682] .el-dialog {\r\n left: 27px;\n}\r\n",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\components\\PreviewFile\\index.vue"],names:[],mappings:";AA0HA;EACA,WAAA;EACA,YAAA;EACA,SAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,UAAA;AACA",file:"index.vue",sourcesContent:['<template>\r\n <div>\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n :title="`附件预览`"\r\n :visible.sync="file.dialogVisible"\r\n :before-close="handleClose"\r\n append-to-body\r\n >\r\n <div>\r\n \x3c!-- 简化版预览组件,移除 @vue-office 依赖 --\x3e\r\n <iframe\r\n v-if="file.type == \'pdf\' || file.type == \'pptx\' || file.type == \'wps\' || file.type == \'xls\' || file.type == \'excel\' || file.type == \'word\' || file.type == \'doc\' || file.type == \'docx\'"\r\n class="child"\r\n frameborder="0"\r\n :src="file.fileurl"\r\n :style="{ height: height }"\r\n />\r\n \x3c!-- <iframe\r\n v-if="\r\n file.type == \'word\' ||\r\n file.type == \'wps\' ||\r\n file.type == \'pdf\' ||\r\n file.type == \'pptx\' ||\r\n file.type == \'txt\'\r\n "\r\n class="child"\r\n frameborder="0"\r\n :src="file.fileurl"\r\n :style="{ height: height }"\r\n >\r\n </iframe> --\x3e\r\n <el-image\r\n v-if="file.type == \'image\'"\r\n :fit="\'contain \'"\r\n style="height: 100%; width: 100%"\r\n :src="file.fileurl"\r\n :preview-src-list="[file.fileurl]"\r\n />\r\n <video\r\n v-if="file.type == \'video\'"\r\n style="height: 100%; width: 100%"\r\n :src="file.fileurl"\r\n autoplay\r\n controls="controls"\r\n />\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n// 移除 @vue-office 相关依赖\r\nexport default {\r\n name: \'PreviewFile\',\r\n components: {\r\n // 移除组件注册\r\n },\r\n props: {\r\n file: {\r\n type: Object,\r\n default: function() {\r\n return {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\'\r\n }\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n height: window.innerHeight - 400 + \'px\',\r\n loading: true,\r\n dialogVisible: false,\r\n pdf: \'https://lczhgy.zjmskj.com/img/政务中台.pdf\',\r\n options: {\r\n xls: true, // 预览xlsx文件设为false;预览xls文件设为true\r\n minColLength: 0, // excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.\r\n minRowLength: 0, // excel最少渲染多少行,如果想实现根据xlsx实际函数渲染,可以将此值设置为0.\r\n widthOffset: 10, // 如果渲染出来的结果感觉单元格宽度不够,可以在默认渲染的列表宽度上再加 Npx宽\r\n heightOffset: 10, // 在默认渲染的列表高度上再加 Npx高\r\n beforeTransformData: (workbookData) => {\r\n return workbookData\r\n }, // 底层通过exceljs获取excel文件内容,通过该钩子函数,可以对获取的excel文件内容进行修改,比如某个单元格的数据显示不正确,可以在此自行修改每个单元格的value值。\r\n transformData: (workbookData) => {\r\n return workbookData\r\n } // 将获取到的excel数据进行处理之后且渲染到页面之前,可通过transformData对即将渲染的数据及样式进行修改,此时每个单元格的text值就是即将渲染到页面上的内容\r\n }\r\n }\r\n },\r\n // 这里是用来判断左边菜单栏是否打开\r\n // computed: {\r\n // ...mapGetters([\'sidebar\']),\r\n // isCollapse() {\r\n // return !this.sidebar.opened\r\n // }\r\n // },\r\n methods: {\r\n renderedHandler() {\r\n // this.$message({\r\n // message: "渲染成功",\r\n // type: "success",\r\n // });\r\n this.loading = false\r\n },\r\n errorHandler() {\r\n this.$message({\r\n message: \'渲染失败\',\r\n type: \'warning\'\r\n })\r\n this.loading = false\r\n },\r\n handleClose() {\r\n this.file.dialogVisible = false\r\n }\r\n }\r\n}\r\n<\/script>\r\n\r\n <style scoped>\r\n.child {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n}\r\n\r\n.dialog-box >>> .el-dialog__headerbtn {\r\n font-size: 34px;\r\n}\r\n\r\n.analysis >>> .el-dialog {\r\n left: 119px;\r\n}\r\n\r\n.analysis-dialog >>> .el-dialog {\r\n left: 27px;\r\n}\r\n</style>\r\n']},media:void 0})},__vue_scope_id__="data-v-853af682",__vue_module_identifier__=void 0,__vue_is_functional_template__=!1,__vue_component__=normalizeComponent({render:__vue_render__,staticRenderFns:__vue_staticRenderFns__},__vue_inject_styles__,__vue_script__,__vue_scope_id__,__vue_is_functional_template__,__vue_module_identifier__,!1,createInjector,void 0,void 0);var js_cookie={exports:{}},factory;
8
+ function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends(){return _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,l={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(l[n]=e[n]);return l}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,l=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var version="1.15.6";function userAgent(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var IE11OrLess=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Edge=userAgent(/Edge/i),FireFox=userAgent(/firefox/i),Safari=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i),IOS=userAgent(/iP(ad|od|hone)/i),ChromeForAndroid=userAgent(/chrome/i)&&userAgent(/android/i),captureMode={capture:!1,passive:!1};function on(e,t,n){e.addEventListener(t,n,!IE11OrLess&&captureMode)}function off(e,t,n){e.removeEventListener(t,n,!IE11OrLess&&captureMode)}function matches(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function getParentOrHost(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function closest(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&matches(e,t):matches(e,t))||r&&e===n)return e;if(e===n)break}while(e=getParentOrHost(e))}return null}var R_SPACE=/\s+/g,_throttleTimeout;function toggleClass(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(R_SPACE," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(R_SPACE," ")}}function css(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function matrix(e,t){var n="";if("string"==typeof e)n=e;else do{var r=css(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var l=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return l&&new l(n)}function find(e,t,n){if(e){var r=e.getElementsByTagName(t),l=0,i=r.length;if(n)for(;l<i;l++)n(r[l],l);return r}return[]}function getWindowScrollingElement(){var e=document.scrollingElement;return e||document.documentElement}function getRect(e,t,n,r,l){if(e.getBoundingClientRect||e===window){var i,a,s,o,c,d,p;if(e!==window&&e.parentNode&&e!==getWindowScrollingElement()?(a=(i=e.getBoundingClientRect()).top,s=i.left,o=i.bottom,c=i.right,d=i.height,p=i.width):(a=0,s=0,o=window.innerHeight,c=window.innerWidth,d=window.innerHeight,p=window.innerWidth),(t||n)&&e!==window&&(l=l||e.parentNode,!IE11OrLess))do{if(l&&l.getBoundingClientRect&&("none"!==css(l,"transform")||n&&"static"!==css(l,"position"))){var m=l.getBoundingClientRect();a-=m.top+parseInt(css(l,"border-top-width")),s-=m.left+parseInt(css(l,"border-left-width")),o=a+i.height,c=s+i.width;break}}while(l=l.parentNode);if(r&&e!==window){var u=matrix(l||e),h=u&&u.a,f=u&&u.d;u&&(o=(a/=f)+(d/=f),c=(s/=h)+(p/=h))}return{top:a,left:s,bottom:o,right:c,width:p,height:d}}}function isScrolledPast(e,t,n){for(var r=getParentAutoScrollElement(e,!0),l=getRect(e)[t];r;){var i=getRect(r)[n];if(!("top"===n||"left"===n?l>=i:l<=i))return r;if(r===getWindowScrollingElement())break;r=getParentAutoScrollElement(r,!1)}return!1}function getChild(e,t,n,r){for(var l=0,i=0,a=e.children;i<a.length;){if("none"!==a[i].style.display&&a[i]!==Sortable.ghost&&(r||a[i]!==Sortable.dragged)&&closest(a[i],n.draggable,e,!1)){if(l===t)return a[i];l++}i++}return null}function lastChild(e,t){for(var n=e.lastElementChild;n&&(n===Sortable.ghost||"none"===css(n,"display")||t&&!matches(n,t));)n=n.previousElementSibling;return n||null}function index$2(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)"TEMPLATE"===e.nodeName.toUpperCase()||e===Sortable.clone||t&&!matches(e,t)||n++;return n}function getRelativeScrollOffset(e){var t=0,n=0,r=getWindowScrollingElement();if(e)do{var l=matrix(e),i=l.a,a=l.d;t+=e.scrollLeft*i,n+=e.scrollTop*a}while(e!==r&&(e=e.parentNode));return[t,n]}function indexOfObject(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n);return-1}function getParentAutoScrollElement(e,t){if(!e||!e.getBoundingClientRect)return getWindowScrollingElement();var n=e,r=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var l=css(n);if(n.clientWidth<n.scrollWidth&&("auto"==l.overflowX||"scroll"==l.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==l.overflowY||"scroll"==l.overflowY)){if(!n.getBoundingClientRect||n===document.body)return getWindowScrollingElement();if(r||t)return n;r=!0}}}while(n=n.parentNode);return getWindowScrollingElement()}function extend(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function isRectEqual(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function throttle(e,t){return function(){if(!_throttleTimeout){var n=arguments;1===n.length?e.call(this,n[0]):e.apply(this,n),_throttleTimeout=setTimeout(function(){_throttleTimeout=void 0},t)}}}function cancelThrottle(){clearTimeout(_throttleTimeout),_throttleTimeout=void 0}function scrollBy(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function clone(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function getChildContainingRectFromElement(e,t,n){var r={};return Array.from(e.children).forEach(function(l){var i,a,s,o;if(closest(l,t.draggable,e,!1)&&!l.animated&&l!==n){var c=getRect(l);r.left=Math.min(null!==(i=r.left)&&void 0!==i?i:1/0,c.left),r.top=Math.min(null!==(a=r.top)&&void 0!==a?a:1/0,c.top),r.right=Math.max(null!==(s=r.right)&&void 0!==s?s:-1/0,c.right),r.bottom=Math.max(null!==(o=r.bottom)&&void 0!==o?o:-1/0,c.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var expando="Sortable"+(new Date).getTime();function AnimationStateManager(){var e,t=[];return{captureAnimationState:function(){(t=[],this.options.animation)&&[].slice.call(this.el.children).forEach(function(e){if("none"!==css(e,"display")&&e!==Sortable.ghost){t.push({target:e,rect:getRect(e)});var n=_objectSpread2({},t[t.length-1].rect);if(e.thisAnimationDuration){var r=matrix(e,!0);r&&(n.top-=r.f,n.left-=r.e)}e.fromRect=n}})},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice(indexOfObject(t,{target:e}),1)},animateAll:function(n){var r=this;if(!this.options.animation)return clearTimeout(e),void("function"==typeof n&&n());var l=!1,i=0;t.forEach(function(e){var t=0,n=e.target,a=n.fromRect,s=getRect(n),o=n.prevFromRect,c=n.prevToRect,d=e.rect,p=matrix(n,!0);p&&(s.top-=p.f,s.left-=p.e),n.toRect=s,n.thisAnimationDuration&&isRectEqual(o,s)&&!isRectEqual(a,s)&&(d.top-s.top)/(d.left-s.left)===(a.top-s.top)/(a.left-s.left)&&(t=calculateRealTime(d,o,c,r.options)),isRectEqual(s,a)||(n.prevFromRect=a,n.prevToRect=s,t||(t=r.options.animation),r.animate(n,d,s,t)),t&&(l=!0,i=Math.max(i,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(e),l?e=setTimeout(function(){"function"==typeof n&&n()},i):"function"==typeof n&&n(),t=[]},animate:function(e,t,n,r){if(r){css(e,"transition",""),css(e,"transform","");var l=matrix(this.el),i=l&&l.a,a=l&&l.d,s=(t.left-n.left)/(i||1),o=(t.top-n.top)/(a||1);e.animatingX=!!s,e.animatingY=!!o,css(e,"transform","translate3d("+s+"px,"+o+"px,0)"),this.forRepaintDummy=repaint(e),css(e,"transition","transform "+r+"ms"+(this.options.easing?" "+this.options.easing:"")),css(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout(function(){css(e,"transition",""),css(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function repaint(e){return e.offsetWidth}function calculateRealTime(e,t,n,r){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*r.animation}var plugins=[],defaults={initializeByDefault:!0},PluginManager={mount:function(e){for(var t in defaults)defaults.hasOwnProperty(t)&&!(t in e)&&(e[t]=defaults[t]);plugins.forEach(function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),plugins.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var l=e+"Global";plugins.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][l]&&t[r.pluginName][l](_objectSpread2({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](_objectSpread2({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var l in plugins.forEach(function(r){var l=r.pluginName;if(e.options[l]||r.initializeByDefault){var i=new r(e,t,e.options);i.sortable=e,i.options=e.options,e[l]=i,_extends(n,i.defaults)}}),e.options)if(e.options.hasOwnProperty(l)){var i=this.modifyOption(e,l,e.options[l]);void 0!==i&&(e.options[l]=i)}},getEventProperties:function(e,t){var n={};return plugins.forEach(function(r){"function"==typeof r.eventProperties&&_extends(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return plugins.forEach(function(l){e[l.pluginName]&&l.optionListeners&&"function"==typeof l.optionListeners[t]&&(r=l.optionListeners[t].call(e[l.pluginName],n))}),r}};function dispatchEvent(e){var t=e.sortable,n=e.rootEl,r=e.name,l=e.targetEl,i=e.cloneEl,a=e.toEl,s=e.fromEl,o=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,p=e.newDraggableIndex,m=e.originalEvent,u=e.putSortable,h=e.extraEventProperties;if(t=t||n&&n[expando]){var f,g=t.options,v="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||IE11OrLess||Edge?(f=document.createEvent("Event")).initEvent(r,!0,!0):f=new CustomEvent(r,{bubbles:!0,cancelable:!0}),f.to=a||n,f.from=s||n,f.item=l||n,f.clone=i,f.oldIndex=o,f.newIndex=c,f.oldDraggableIndex=d,f.newDraggableIndex=p,f.originalEvent=m,f.pullMode=u?u.lastPutMode:void 0;var b=_objectSpread2(_objectSpread2({},h),PluginManager.getEventProperties(r,t));for(var y in b)f[y]=b[y];n&&n.dispatchEvent(f),g[v]&&g[v].call(t,f)}}var _excluded=["evt"],pluginEvent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,l=_objectWithoutProperties(n,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl:dragEl,parentEl:parentEl,ghostEl:ghostEl,rootEl:rootEl,nextEl:nextEl,lastDownEl:lastDownEl,cloneEl:cloneEl,cloneHidden:cloneHidden,dragStarted:moved,putSortable:putSortable,activeSortable:Sortable.active,originalEvent:r,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(e){_dispatchEvent({sortable:t,name:e,originalEvent:r})}},l))};function _dispatchEvent(e){dispatchEvent(_objectSpread2({putSortable:putSortable,cloneEl:cloneEl,targetEl:dragEl,rootEl:rootEl,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex},e))}var dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,oldIndex,newIndex,oldDraggableIndex,newDraggableIndex,activeGroup,putSortable,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],tapEvt,touchEvt,lastDx,lastDy,tapDistanceLeft,tapDistanceTop,moved,lastTarget,lastDirection,pastFirstInvertThresh=!1,isCircumstantialInvert=!1,targetMoveDistance,ghostRelativeParent,ghostRelativeParentInitialScroll=[],_silent=!1,savedInputChecked=[],documentExists="undefined"!=typeof document,PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable=documentExists&&!ChromeForAndroid&&!IOS&&"draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(documentExists){if(IE11OrLess)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),_detectDirection=function(e,t){var n=css(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),l=getChild(e,0,t),i=getChild(e,1,t),a=l&&css(l),s=i&&css(i),o=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+getRect(l).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+getRect(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(l&&a.float&&"none"!==a.float){var d="left"===a.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return l&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||o>=r&&"none"===n[CSSFloatProperty]||i&&"none"===n[CSSFloatProperty]&&o+c>r)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,n){var r=n?e.left:e.top,l=n?e.right:e.bottom,i=n?e.width:e.height,a=n?t.left:t.top,s=n?t.right:t.bottom,o=n?t.width:t.height;return r===a||l===s||r+i/2===a+o/2},_detectNearestEmptySortable=function(e,t){var n;return sortables.some(function(r){var l=r[expando].options.emptyInsertThreshold;if(l&&!lastChild(r)){var i=getRect(r),a=e>=i.left-l&&e<=i.right+l,s=t>=i.top-l&&t<=i.bottom+l;return a&&s?n=r:void 0}}),n},_prepareGroup=function(e){function t(e,n){return function(r,l,i,a){var s=r.options.group.name&&l.options.group.name&&r.options.group.name===l.options.group.name;if(null==e&&(n||s))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,l,i,a),n)(r,l,i,a);var o=(n?r:l).options.group.name;return!0===e||"string"==typeof e&&e===o||e.join&&e.indexOf(o)>-1}}var n={},r=e.group;r&&"object"==_typeof(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","")};documentExists&&!ChromeForAndroid&&document.addEventListener("click",function(e){if(ignoreNextClick)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ignoreNextClick=!1,!1},!0);var nearestEmptyInsertDetectEvent=function(e){if(dragEl){e=e.touches?e.touches[0]:e;var t=_detectNearestEmptySortable(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[expando]._onDragOver(n)}}},_checkOutsideTargetEl=function(e){dragEl&&dragEl.parentNode[expando]._isOutsideThisEl(e.target)};function Sortable(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=_extends({},t),e[expando]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer&&"PointerEvent"in window&&(!Safari||IOS),emptyInsertThreshold:5};for(var r in PluginManager.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var l in _prepareGroup(t),this)"_"===l.charAt(0)&&"function"==typeof this[l]&&(this[l]=this[l].bind(this));this.nativeDraggable=!t.forceFallback&&supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?on(e,"pointerdown",this._onTapStart):(on(e,"mousedown",this._onTapStart),on(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(on(e,"dragover",this),on(e,"dragenter",this)),sortables.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),_extends(this,AnimationStateManager())}function _globalDragOver(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function _onMove(e,t,n,r,l,i,a,s){var o,c,d=e[expando],p=d.options.onMove;return!window.CustomEvent||IE11OrLess||Edge?(o=document.createEvent("Event")).initEvent("move",!0,!0):o=new CustomEvent("move",{bubbles:!0,cancelable:!0}),o.to=t,o.from=e,o.dragged=n,o.draggedRect=r,o.related=l||t,o.relatedRect=i||getRect(t),o.willInsertAfter=s,o.originalEvent=a,e.dispatchEvent(o),p&&(c=p.call(d,o,a)),c}function _disableDraggable(e){e.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(e,t,n){var r=getRect(getChild(n.el,0,n.options,!0)),l=getChildContainingRectFromElement(n.el,n.options,ghostEl);return t?e.clientX<l.left-10||e.clientY<r.top&&e.clientX<r.right:e.clientY<l.top-10||e.clientY<r.bottom&&e.clientX<r.left}function _ghostIsLast(e,t,n){var r=getRect(lastChild(n.el,n.options.draggable)),l=getChildContainingRectFromElement(n.el,n.options,ghostEl);return t?e.clientX>l.right+10||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>l.bottom+10||e.clientX>r.right&&e.clientY>r.top}function _getSwapDirection(e,t,n,r,l,i,a,s){var o=r?e.clientY:e.clientX,c=r?n.height:n.width,d=r?n.top:n.left,p=r?n.bottom:n.right,m=!1;if(!a)if(s&&targetMoveDistance<c*l){if(!pastFirstInvertThresh&&(1===lastDirection?o>d+c*i/2:o<p-c*i/2)&&(pastFirstInvertThresh=!0),pastFirstInvertThresh)m=!0;else if(1===lastDirection?o<d+targetMoveDistance:o>p-targetMoveDistance)return-lastDirection}else if(o>d+c*(1-l)/2&&o<p-c*(1-l)/2)return _getInsertDirection(t);return(m=m||a)&&(o<d+c*i/2||o>p-c*i/2)?o>d+c/2?1:-1:0}function _getInsertDirection(e){return index$2(dragEl)<index$2(e)?1:-1}function _generateId(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function _saveInputCheckedState(e){savedInputChecked.length=0;for(var t=e.getElementsByTagName("input"),n=t.length;n--;){var r=t[n];r.checked&&savedInputChecked.push(r)}}function _nextTick(e){return setTimeout(e,0)}function _cancelNextTick(e){return clearTimeout(e)}Sortable.prototype={constructor:Sortable,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(lastTarget=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,dragEl):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,l=r.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,s=(a||e).target,o=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=r.filter;if(_saveInputCheckedState(n),!dragEl&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||r.disabled)&&!o.isContentEditable&&(this.nativeDraggable||!Safari||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=closest(s,r.draggable,n,!1))&&s.animated||lastDownEl===s)){if(oldIndex=index$2(s),oldDraggableIndex=index$2(s,r.draggable),"function"==typeof c){if(c.call(this,e,s,this))return _dispatchEvent({sortable:t,rootEl:o,name:"filter",targetEl:s,toEl:n,fromEl:n}),pluginEvent("filter",t,{evt:e}),void(l&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(r){if(r=closest(o,r.trim(),n,!1))return _dispatchEvent({sortable:t,rootEl:r,name:"filter",targetEl:s,fromEl:n,toEl:n}),pluginEvent("filter",t,{evt:e}),!0})))return void(l&&e.preventDefault());r.handle&&!closest(o,r.handle,n,!1)||this._prepareDragStart(e,a,s)}}},_prepareDragStart:function(e,t,n){var r,l=this,i=l.el,a=l.options,s=i.ownerDocument;if(n&&!dragEl&&n.parentNode===i){var o=getRect(n);if(rootEl=i,parentEl=(dragEl=n).parentNode,nextEl=dragEl.nextSibling,lastDownEl=n,activeGroup=a.group,Sortable.dragged=dragEl,tapEvt={target:dragEl,clientX:(t||e).clientX,clientY:(t||e).clientY},tapDistanceLeft=tapEvt.clientX-o.left,tapDistanceTop=tapEvt.clientY-o.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,dragEl.style["will-change"]="all",r=function(){pluginEvent("delayEnded",l,{evt:e}),Sortable.eventCanceled?l._onDrop():(l._disableDelayedDragEvents(),!FireFox&&l.nativeDraggable&&(dragEl.draggable=!0),l._triggerDragStart(e,t),_dispatchEvent({sortable:l,name:"choose",originalEvent:e}),toggleClass(dragEl,a.chosenClass,!0))},a.ignore.split(",").forEach(function(e){find(dragEl,e.trim(),_disableDraggable)}),on(s,"dragover",nearestEmptyInsertDetectEvent),on(s,"mousemove",nearestEmptyInsertDetectEvent),on(s,"touchmove",nearestEmptyInsertDetectEvent),a.supportPointer?(on(s,"pointerup",l._onDrop),!this.nativeDraggable&&on(s,"pointercancel",l._onDrop)):(on(s,"mouseup",l._onDrop),on(s,"touchend",l._onDrop),on(s,"touchcancel",l._onDrop)),FireFox&&this.nativeDraggable&&(this.options.touchStartThreshold=4,dragEl.draggable=!0),pluginEvent("delayStart",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(Edge||IE11OrLess))r();else{if(Sortable.eventCanceled)return void this._onDrop();a.supportPointer?(on(s,"pointerup",l._disableDelayedDrag),on(s,"pointercancel",l._disableDelayedDrag)):(on(s,"mouseup",l._disableDelayedDrag),on(s,"touchend",l._disableDelayedDrag),on(s,"touchcancel",l._disableDelayedDrag)),on(s,"mousemove",l._delayedDragTouchMoveHandler),on(s,"touchmove",l._delayedDragTouchMoveHandler),a.supportPointer&&on(s,"pointermove",l._delayedDragTouchMoveHandler),l._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag),off(e,"touchend",this._disableDelayedDrag),off(e,"touchcancel",this._disableDelayedDrag),off(e,"pointerup",this._disableDelayedDrag),off(e,"pointercancel",this._disableDelayedDrag),off(e,"mousemove",this._delayedDragTouchMoveHandler),off(e,"touchmove",this._delayedDragTouchMoveHandler),off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?on(document,"pointermove",this._onTouchMove):on(document,t?"touchmove":"mousemove",this._onTouchMove):(on(dragEl,"dragend",this),on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var n=this.options;!e&&toggleClass(dragEl,n.dragClass,!1),toggleClass(dragEl,n.ghostClass,!0),Sortable.active=this,e&&this._appendGhost(),_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(touchEvt){this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var e=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY))!==t;)t=e;if(dragEl.parentNode[expando]._isOutsideThisEl(e),t)do{if(t[expando]){if(t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=getParentOrHost(t));_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,l=e.touches?e.touches[0]:e,i=ghostEl&&matrix(ghostEl,!0),a=ghostEl&&i&&i.a,s=ghostEl&&i&&i.d,o=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),c=(l.clientX-tapEvt.clientX+r.x)/(a||1)+(o?o[0]-ghostRelativeParentInitialScroll[0]:0)/(a||1),d=(l.clientY-tapEvt.clientY+r.y)/(s||1)+(o?o[1]-ghostRelativeParentInitialScroll[1]:0)/(s||1);if(!Sortable.active&&!awaitingDragStarted){if(n&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(ghostEl){i?(i.e+=c-(lastDx||0),i.f+=d-(lastDy||0)):i={a:1,b:0,c:0,d:1,e:c,f:d};var p="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");css(ghostEl,"webkitTransform",p),css(ghostEl,"mozTransform",p),css(ghostEl,"msTransform",p),css(ghostEl,"transform",p),lastDx=c,lastDy=d,touchEvt=l}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ghostEl){var e=this.options.fallbackOnBody?document.body:rootEl,t=getRect(dragEl,!0,PositionGhostAbsolutely,!0,e),n=this.options;if(PositionGhostAbsolutely){for(ghostRelativeParent=e;"static"===css(ghostRelativeParent,"position")&&"none"===css(ghostRelativeParent,"transform")&&ghostRelativeParent!==document;)ghostRelativeParent=ghostRelativeParent.parentNode;ghostRelativeParent!==document.body&&ghostRelativeParent!==document.documentElement?(ghostRelativeParent===document&&(ghostRelativeParent=getWindowScrollingElement()),t.top+=ghostRelativeParent.scrollTop,t.left+=ghostRelativeParent.scrollLeft):ghostRelativeParent=getWindowScrollingElement(),ghostRelativeParentInitialScroll=getRelativeScrollOffset(ghostRelativeParent)}toggleClass(ghostEl=dragEl.cloneNode(!0),n.ghostClass,!1),toggleClass(ghostEl,n.fallbackClass,!0),toggleClass(ghostEl,n.dragClass,!0),css(ghostEl,"transition",""),css(ghostEl,"transform",""),css(ghostEl,"box-sizing","border-box"),css(ghostEl,"margin",0),css(ghostEl,"top",t.top),css(ghostEl,"left",t.left),css(ghostEl,"width",t.width),css(ghostEl,"height",t.height),css(ghostEl,"opacity","0.8"),css(ghostEl,"position",PositionGhostAbsolutely?"absolute":"fixed"),css(ghostEl,"zIndex","100000"),css(ghostEl,"pointerEvents","none"),Sortable.ghost=ghostEl,e.appendChild(ghostEl),css(ghostEl,"transform-origin",tapDistanceLeft/parseInt(ghostEl.style.width)*100+"% "+tapDistanceTop/parseInt(ghostEl.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,l=n.options;pluginEvent("dragStart",this,{evt:e}),Sortable.eventCanceled?this._onDrop():(pluginEvent("setupClone",this),Sortable.eventCanceled||((cloneEl=clone(dragEl)).removeAttribute("id"),cloneEl.draggable=!1,cloneEl.style["will-change"]="",this._hideClone(),toggleClass(cloneEl,this.options.chosenClass,!1),Sortable.clone=cloneEl),n.cloneId=_nextTick(function(){pluginEvent("clone",n),Sortable.eventCanceled||(n.options.removeCloneOnHide||rootEl.insertBefore(cloneEl,dragEl),n._hideClone(),_dispatchEvent({sortable:n,name:"clone"}))}),!t&&toggleClass(dragEl,l.dragClass,!0),t?(ignoreNextClick=!0,n._loopId=setInterval(n._emulateDragOver,50)):(off(document,"mouseup",n._onDrop),off(document,"touchend",n._onDrop),off(document,"touchcancel",n._onDrop),r&&(r.effectAllowed="move",l.setData&&l.setData.call(n,r,dragEl)),on(document,"drop",n),css(dragEl,"transform","translateZ(0)")),awaitingDragStarted=!0,n._dragStartId=_nextTick(n._dragStarted.bind(n,t,e)),on(document,"selectstart",n),moved=!0,window.getSelection().removeAllRanges(),Safari&&css(document.body,"user-select","none"))},_onDragOver:function(e){var t,n,r,l,i=this.el,a=e.target,s=this.options,o=s.group,c=Sortable.active,d=activeGroup===o,p=s.sort,m=putSortable||c,u=this,h=!1;if(!_silent){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),a=closest(a,s.draggable,i,!0),L("dragOver"),Sortable.eventCanceled)return h;if(dragEl.contains(e.target)||a.animated&&a.animatingX&&a.animatingY||u._ignoreWhileAnimating===a)return P(!1);if(ignoreNextClick=!1,c&&!s.disabled&&(d?p||(r=parentEl!==rootEl):putSortable===this||(this.lastPutMode=activeGroup.checkPull(this,c,dragEl,e))&&o.checkPut(this,c,dragEl,e))){if(l="vertical"===this._getDirection(e,a),t=getRect(dragEl),L("dragOverValid"),Sortable.eventCanceled)return h;if(r)return parentEl=rootEl,$(),this._hideClone(),L("revert"),Sortable.eventCanceled||(nextEl?rootEl.insertBefore(dragEl,nextEl):rootEl.appendChild(dragEl)),P(!0);var f=lastChild(i,s.draggable);if(!f||_ghostIsLast(e,l,this)&&!f.animated){if(f===dragEl)return P(!1);if(f&&i===e.target&&(a=f),a&&(n=getRect(a)),!1!==_onMove(rootEl,i,dragEl,t,a,n,e,!!a))return $(),f&&f.nextSibling?i.insertBefore(dragEl,f.nextSibling):i.appendChild(dragEl),parentEl=i,N(),P(!0)}else if(f&&_ghostIsFirst(e,l,this)){var g=getChild(i,0,s,!0);if(g===dragEl)return P(!1);if(n=getRect(a=g),!1!==_onMove(rootEl,i,dragEl,t,a,n,e,!1))return $(),i.insertBefore(dragEl,g),parentEl=i,N(),P(!0)}else if(a.parentNode===i){n=getRect(a);var v,b,y,_=dragEl.parentNode!==i,x=!_dragElInRowColumn(dragEl.animated&&dragEl.toRect||t,a.animated&&a.toRect||n,l),A=l?"top":"left",w=isScrolledPast(a,"top","top")||isScrolledPast(dragEl,"top","top"),k=w?w.scrollTop:void 0;if(lastTarget!==a&&(b=n[A],pastFirstInvertThresh=!1,isCircumstantialInvert=!x&&s.invertSwap||_),0!==(v=_getSwapDirection(e,a,n,l,x?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,isCircumstantialInvert,lastTarget===a))){var C=index$2(dragEl);do{C-=v,y=parentEl.children[C]}while(y&&("none"===css(y,"display")||y===ghostEl))}if(0===v||y===a)return P(!1);lastTarget=a,lastDirection=v;var S=a.nextElementSibling,E=!1,D=_onMove(rootEl,i,dragEl,t,a,n,e,E=1===v);if(!1!==D)return 1!==D&&-1!==D||(E=1===D),_silent=!0,setTimeout(_unsilent,30),$(),E&&!S?i.appendChild(dragEl):a.parentNode.insertBefore(dragEl,E?S:a),w&&scrollBy(w,0,k-w.scrollTop),parentEl=dragEl.parentNode,void 0===b||isCircumstantialInvert||(targetMoveDistance=Math.abs(b-getRect(a)[A])),N(),P(!0)}if(i.contains(dragEl))return P(!1)}return!1}function L(s,o){pluginEvent(s,u,_objectSpread2({evt:e,isOwner:d,axis:l?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:p,fromSortable:m,target:a,completed:P,onMove:function(n,r){return _onMove(rootEl,i,dragEl,t,n,getRect(n),e,r)},changed:N},o))}function $(){L("dragOverAnimationCapture"),u.captureAnimationState(),u!==m&&m.captureAnimationState()}function P(t){return L("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(u),u!==m&&(toggleClass(dragEl,putSortable?putSortable.options.ghostClass:c.options.ghostClass,!1),toggleClass(dragEl,s.ghostClass,!0)),putSortable!==u&&u!==Sortable.active?putSortable=u:u===Sortable.active&&putSortable&&(putSortable=null),m===u&&(u._ignoreWhileAnimating=a),u.animateAll(function(){L("dragOverAnimationComplete"),u._ignoreWhileAnimating=null}),u!==m&&(m.animateAll(),m._ignoreWhileAnimating=null)),(a===dragEl&&!dragEl.animated||a===i&&!a.animated)&&(lastTarget=null),s.dragoverBubble||e.rootEl||a===document||(dragEl.parentNode[expando]._isOutsideThisEl(e.target),!t&&nearestEmptyInsertDetectEvent(e)),!s.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),h=!0}function N(){newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,s.draggable),_dispatchEvent({sortable:u,name:"change",toEl:i,newIndex:newIndex,newDraggableIndex:newDraggableIndex,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){off(document,"mousemove",this._onTouchMove),off(document,"touchmove",this._onTouchMove),off(document,"pointermove",this._onTouchMove),off(document,"dragover",nearestEmptyInsertDetectEvent),off(document,"mousemove",nearestEmptyInsertDetectEvent),off(document,"touchmove",nearestEmptyInsertDetectEvent)},_offUpEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._onDrop),off(e,"touchend",this._onDrop),off(e,"pointerup",this._onDrop),off(e,"pointercancel",this._onDrop),off(e,"touchcancel",this._onDrop),off(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,n.draggable),pluginEvent("drop",this,{evt:e}),parentEl=dragEl&&dragEl.parentNode,newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,n.draggable),Sortable.eventCanceled||(awaitingDragStarted=!1,isCircumstantialInvert=!1,pastFirstInvertThresh=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),_cancelNextTick(this.cloneId),_cancelNextTick(this._dragStartId),this.nativeDraggable&&(off(document,"drop",this),off(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Safari&&css(document.body,"user-select",""),css(dragEl,"transform",""),e&&(moved&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ghostEl&&ghostEl.parentNode&&ghostEl.parentNode.removeChild(ghostEl),(rootEl===parentEl||putSortable&&"clone"!==putSortable.lastPutMode)&&cloneEl&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),dragEl&&(this.nativeDraggable&&off(dragEl,"dragend",this),_disableDraggable(dragEl),dragEl.style["will-change"]="",moved&&!awaitingDragStarted&&toggleClass(dragEl,putSortable?putSortable.options.ghostClass:this.options.ghostClass,!1),toggleClass(dragEl,this.options.chosenClass,!1),_dispatchEvent({sortable:this,name:"unchoose",toEl:parentEl,newIndex:null,newDraggableIndex:null,originalEvent:e}),rootEl!==parentEl?(newIndex>=0&&(_dispatchEvent({rootEl:parentEl,name:"add",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"remove",toEl:parentEl,originalEvent:e}),_dispatchEvent({rootEl:parentEl,name:"sort",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),putSortable&&putSortable.save()):newIndex!==oldIndex&&newIndex>=0&&(_dispatchEvent({sortable:this,name:"update",toEl:parentEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex,newDraggableIndex=oldDraggableIndex),_dispatchEvent({sortable:this,name:"end",toEl:parentEl,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){pluginEvent("nulling",this),rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=cloneHidden=tapEvt=touchEvt=moved=newIndex=newDraggableIndex=oldIndex=oldDraggableIndex=lastTarget=lastDirection=putSortable=activeGroup=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,savedInputChecked.forEach(function(e){e.checked=!0}),savedInputChecked.length=lastDx=lastDy=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(e),_globalDragOver(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,l=n.length,i=this.options;r<l;r++)closest(e=n[r],i.draggable,this.el,!1)&&t.push(e.getAttribute(i.dataIdAttr)||_generateId(e));return t},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var l=r.children[t];closest(l,this.options.draggable,r,!1)&&(n[e]=l)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return closest(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];var r=PluginManager.modifyOption(this,e,t);n[e]=void 0!==r?r:t,"group"===e&&_prepareGroup(n)},destroy:function(){pluginEvent("destroy",this);var e=this.el;e[expando]=null,off(e,"mousedown",this._onTapStart),off(e,"touchstart",this._onTapStart),off(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(off(e,"dragover",this),off(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(e){e.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),sortables.splice(sortables.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!cloneHidden){if(pluginEvent("hideClone",this),Sortable.eventCanceled)return;css(cloneEl,"display","none"),this.options.removeCloneOnHide&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),cloneHidden=!0}},_showClone:function(e){if("clone"===e.lastPutMode){if(cloneHidden){if(pluginEvent("showClone",this),Sortable.eventCanceled)return;dragEl.parentNode!=rootEl||this.options.group.revertClone?nextEl?rootEl.insertBefore(cloneEl,nextEl):rootEl.appendChild(cloneEl):rootEl.insertBefore(cloneEl,dragEl),this.options.group.revertClone&&this.animate(dragEl,cloneEl),css(cloneEl,"display",""),cloneHidden=!1}}else this._hideClone()}},documentExists&&on(document,"touchmove",function(e){(Sortable.active||awaitingDragStarted)&&e.cancelable&&e.preventDefault()}),Sortable.utils={on:on,off:off,css:css,find:find,is:function(e,t){return!!closest(e,t,e,!1)},extend:extend,throttle:throttle,closest:closest,toggleClass:toggleClass,clone:clone,index:index$2,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:_detectDirection,getChild:getChild,expando:expando},Sortable.get=function(e){return e[expando]},Sortable.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]),t.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),e.utils)),PluginManager.mount(e)})},Sortable.create=function(e,t){return new Sortable(e,t)},Sortable.version=version;var autoScrolls=[],scrollEl,scrollRootEl,scrolling=!1,lastAutoScrollX,lastAutoScrollY,touchEvt$1,pointerElemChangedInterval;function AutoScrollPlugin(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?on(document,"dragover",this._handleAutoScroll):this.options.supportPointer?on(document,"pointermove",this._handleFallbackAutoScroll):t.touches?on(document,"touchmove",this._handleFallbackAutoScroll):on(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?off(document,"dragover",this._handleAutoScroll):(off(document,"pointermove",this._handleFallbackAutoScroll),off(document,"touchmove",this._handleFallbackAutoScroll),off(document,"mousemove",this._handleFallbackAutoScroll)),clearPointerElemChangedInterval(),clearAutoScrolls(),cancelThrottle()},nulling:function(){touchEvt$1=scrollRootEl=scrollEl=scrolling=pointerElemChangedInterval=lastAutoScrollX=lastAutoScrollY=null,autoScrolls.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,l=(e.touches?e.touches[0]:e).clientY,i=document.elementFromPoint(r,l);if(touchEvt$1=e,t||this.options.forceAutoScrollFallback||Edge||IE11OrLess||Safari){autoScroll(e,this.options,i,t);var a=getParentAutoScrollElement(i,!0);!scrolling||pointerElemChangedInterval&&r===lastAutoScrollX&&l===lastAutoScrollY||(pointerElemChangedInterval&&clearPointerElemChangedInterval(),pointerElemChangedInterval=setInterval(function(){var i=getParentAutoScrollElement(document.elementFromPoint(r,l),!0);i!==a&&(a=i,clearAutoScrolls()),autoScroll(e,n.options,i,t)},10),lastAutoScrollX=r,lastAutoScrollY=l)}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(i,!0)===getWindowScrollingElement())return void clearAutoScrolls();autoScroll(e,this.options,getParentAutoScrollElement(i,!1),!1)}}},_extends(e,{pluginName:"scroll",initializeByDefault:!0})}function clearAutoScrolls(){autoScrolls.forEach(function(e){clearInterval(e.pid)}),autoScrolls=[]}function clearPointerElemChangedInterval(){clearInterval(pointerElemChangedInterval)}var autoScroll=throttle(function(e,t,n,r){if(t.scroll){var l,i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,s=t.scrollSensitivity,o=t.scrollSpeed,c=getWindowScrollingElement(),d=!1;scrollRootEl!==n&&(scrollRootEl=n,clearAutoScrolls(),scrollEl=t.scroll,l=t.scrollFn,!0===scrollEl&&(scrollEl=getParentAutoScrollElement(n,!0)));var p=0,m=scrollEl;do{var u=m,h=getRect(u),f=h.top,g=h.bottom,v=h.left,b=h.right,y=h.width,_=h.height,x=void 0,A=void 0,w=u.scrollWidth,k=u.scrollHeight,C=css(u),S=u.scrollLeft,E=u.scrollTop;u===c?(x=y<w&&("auto"===C.overflowX||"scroll"===C.overflowX||"visible"===C.overflowX),A=_<k&&("auto"===C.overflowY||"scroll"===C.overflowY||"visible"===C.overflowY)):(x=y<w&&("auto"===C.overflowX||"scroll"===C.overflowX),A=_<k&&("auto"===C.overflowY||"scroll"===C.overflowY));var D=x&&(Math.abs(b-i)<=s&&S+y<w)-(Math.abs(v-i)<=s&&!!S),L=A&&(Math.abs(g-a)<=s&&E+_<k)-(Math.abs(f-a)<=s&&!!E);if(!autoScrolls[p])for(var $=0;$<=p;$++)autoScrolls[$]||(autoScrolls[$]={});autoScrolls[p].vx==D&&autoScrolls[p].vy==L&&autoScrolls[p].el===u||(autoScrolls[p].el=u,autoScrolls[p].vx=D,autoScrolls[p].vy=L,clearInterval(autoScrolls[p].pid),0==D&&0==L||(d=!0,autoScrolls[p].pid=setInterval(function(){r&&0===this.layer&&Sortable.active._onTouchMove(touchEvt$1);var t=autoScrolls[this.layer].vy?autoScrolls[this.layer].vy*o:0,n=autoScrolls[this.layer].vx?autoScrolls[this.layer].vx*o:0;"function"==typeof l&&"continue"!==l.call(Sortable.dragged.parentNode[expando],n,t,e,touchEvt$1,autoScrolls[this.layer].el)||scrollBy(autoScrolls[this.layer].el,n,t)}.bind({layer:p}),24))),p++}while(t.bubbleScroll&&m!==c&&(m=getParentAutoScrollElement(m,!1)));scrolling=d}},30),drop=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,l=e.activeSortable,i=e.dispatchSortableEvent,a=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var o=n||l;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,d=document.elementFromPoint(c.clientX,c.clientY);s(),o&&!o.el.contains(d)&&(i("spill"),this.onSpill({dragEl:r,putSortable:n}))}};function Revert(){}function Remove(){}Revert.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var r=getChild(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:drop},_extends(Revert,{pluginName:"revertOnSpill"}),Remove.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:drop},_extends(Remove,{pluginName:"removeOnSpill"}),Sortable.mount(new AutoScrollPlugin),Sortable.mount(Remove,Revert);var script$9={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({renyuanxinxi:[],institutionList:[],customerData:[],checklist:[],searchContent:"",disabilityLv:{"01":"基本正常","02":"轻度失能","03":"中度失能","04":"重度失能Ⅰ级","05":"重度失能ⅠⅠ级","06":"重度失能ⅠⅠⅠ级","":"请选择护理对象"},calendarTime:"",rangeTime:[],exportTime:{startDate:[]},unitType:null,nowdate:new Date,dialogVisibleExp:!1,loadExp:!1,expApi:"",expApiName:"",expBtn:[{key:1,name:"导出护理计划",api:"wxOrderInfo",fileName:"护理计划"},{key:2,name:"导出护理项明细",api:"wxOrderItemInfo",fileName:"护理计划明细"},{key:3,name:"导出分配信息",api:"wxOrderItemUserInfo",fileName:"护理计划分配信息"},{key:4,name:"导出排班信息",api:"wxOrderSchedulingInfo",fileName:"护理计划排班信息"},{key:5,name:"自动生成当月护理计划",api:"repeatedGeneration",fileName:"自动生成当月护理计划信息"}],file:{fileurl:"",dialogVisible:!1,title:"",type:""},workerObj:{},ruleForm:{SchedulingData:[]},value:new Date,title:"排班",SchedulingLoading:!0,SchedulingDialogVisible:!1,detailsDialogVisible:!1,expObjVisible:!1,expObj:{},expObjPrint:{},templateSelection:"",allocationData:[],allocationLoading:!0,allocationDialogVisible:!1,priceType:null,NursingArrData:[],placeOrder:[],nurseObject:[],FormData:{},fileList:[],NursingLoading:!0,dialogVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},NursingData:[],institutionData:[],institutionArrData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{status:[{required:!0,message:"请选择审核结果",trigger:"change"}],title:[{required:!0,message:"请输入套餐名称",trigger:"blur"}],no:[{required:!0,message:"请输入套餐编号",trigger:"blur"}],clockDate:[{required:!0,validator:(e,t,n)=>{t?n():n(new Error("请选择排班日期"))},trigger:"blur"}],startDate:[{required:!0,message:"请选择计划开始日期",trigger:"change"}],endDate:[{required:!0,message:"请选择计划结束日期",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}],projectPlanId:[{required:!0,message:"请选择护理内容",trigger:"change"}],priceType:[{required:!0,message:"请选择护理类型",trigger:"change"}],familyId:[{required:!0,message:"请选择护理对象",trigger:"change"}],familyLv:[{required:!0,message:"请选择失能等级",trigger:"change"}]},data:new Date,time:"",temp:{},setData:[],dates:[],downloadLoading:!1,checkAll:!1,dialogVisible:!1,projectList:[]}),computed:{ScheduleDate:()=>function(e){let t;return t=!(!e.clockDate||!e.id)&&e.clockDate<this.$moment().format("YYYY-MM-DD"),t},Summary:()=>function(e,t){return(e*t).toFixed(2)},getTimeDate:()=>function(e){if(e)return this.$moment(e).format("MM月DD号")},setTimeDate:()=>function(e){if(e)return this.$moment(e).format("HH:mm:ss")},getDate(){return this.$moment().format("YYYY-MM-DD")},compareDate:()=>function(e,t,n){if(e)var r=e.lastIndexOf("-"),l=e.substring(r+1,e.length),i=e.substring(0,r);if(this.$moment(t).format("HH:mm:ss")<i&&this.$moment(n).format("HH:mm:ss")>l)return!0}},created(){this.getList(),this.getinstitution()},updated(){this.$nextTick(()=>{this.$refs.standTable&&this.$refs.standTable.doLayout()})},methods:{initDrag(){new Sortable(document.querySelector(".draggable-table .el-table__body-wrapper tbody"),{handle:".handle",animation:150,onEnd:({newIndex:e,oldIndex:t})=>{const n=this.NursingData[t];this.NursingData.splice(t,1),this.NursingData.splice(e,0,n),this.NursingData.map((e,t)=>{e.sort=t+1}),console.log(this.NursingData)}})},addNurse(){this.dialogVisible=!0,this.projectList=[];const e=[];this.temp.itemList&&(this.temp.itemList.map(t=>{e.push(t.projectId)}),this.projectList=e)},determine(){this.dialogVisible=!1,setTimeout(()=>{this.NursingLoading=!1},1500);for(var e=0;e<this.projectList.length;e++){const t=this.institutionData.find((t,n)=>(t.projectPrice3=t.price3,t.threePrice=t.threePrice,t.value=t.value,t.type=t.type,t.value==this.projectList[e]));this.NursingData.some(e=>e.value===t.value)||(this.NursingData.push(t),this.NursingData.map((e,t)=>{e.sort=t+1}))}this.initDrag()},removeDataArr(e){var t={};return e=e.reduce(function(e,n){return!t[n.projectId]&&(t[n.projectId]=e.push(n)),e},[])},handleCheckAllChange(e){this.dates.map(t=>{t.show=!!e})},onPrint(){this.$print(this.$refs.printDom1)},getExpPrint(e){ClockJsInfo({yearMonth:e}).then(e=>{1===e.status&&(this.expObjPrint=e.result)})},PlanexpExcel(e){wxSettlementInfo({id:e.id,orderNo:e.no}).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`结算信息导出/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}})},expExcel2(e){ClockInfo({orderNo:e.no}).then(e=>{if(1===e.status){this.unitType=e.result.unitType;const t={},n=e.result.list[e.result.list.length-1];for(const e in n)"string"==typeof n[e]&&n[e].includes("-")?t[e]=n[e].split(/-/):t[e]=n[e];e.result.list[e.result.list.length-1]=t,this.expObj=e.result,this.expObjVisible=!0}})},familyChange(e){if(e){const t=this.nurseObject.find(t=>t.value==e);return void this.$set(this.temp,"familyLv",t.lv)}this.$set(this.temp,"familyLv","")},allcalendar(e,t){e.show=!e.show},getSummaries(e){const{columns:t,data:n}=e,r=[];return t.forEach((e,t)=>{if(0!==t){if("汇总价格"==e.label){const e=n.map(e=>Number(e.num)),l=n.map(e=>Number(e.projectPrice3));e.every(e=>isNaN(e))?r[t]="":r[t]=e.reduce((e,t,n)=>{const r=Number(t);return isNaN(r)?e:e+t*l[n]},0),r[t]&&(r[t]=r[t].toFixed(2))}}else r[t]="总价"}),r},expShow(e){if(5==e.key){const e=this.$createElement;var t=this;return void this.$msgbox({title:"请选择日期",message:e(Vue.component("msgboxDatePicker",{render:e=>e("div",null,[e("el-date-picker",{props:{value:t.value,type:"date",valueFormat:"yyyy-MM-dd",placeholder:"请选择日期"},on:{input:e=>{t.value=e,t.$emit("input",e)},change:e=>{t.data=e,t.$emit("change",e)}}})])})),showCancelButton:!0,closeOnClickModal:!1,confirmButtonText:"确定",cancelButtonText:"取消"}).then(()=>{repeatedGeneration({data:this.data}).then(e=>{1!=e.status?t.$notify({title:"提示",message:e.info,type:"error",duration:2e3}):t.$notify({title:"提示",message:e.info,type:"success",duration:2e3})})}).catch(()=>{this.$notify({title:"提示",message:"已取消",type:"error",duration:2e3})})}this.dialogVisibleExp=!0,this.expApi=e.api,this.expApiName=e.fileName,this.exportTime.startDate=[]},handleClose(){this.dialogVisibleExp=!1,this.expObjVisible=!1,this.exportTime.startDate=[],this.expApi="",this.expApiName=""},expExcel(){try{this.loadExp=!0;const e={startDate:this.exportTime.startDate[0],endDate:this.exportTime.startDate[1],url:this.expApi,familyId:this.exportTime.familyId,orderNo:this.exportTime.orderNo};ExportExcel(e).then(e=>{const t=new Blob([e]),n=this.expApiName;if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`${n}/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},complete(e){this.$confirm("此操作将更新订单状态, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{WxOrderFinish({id:e.id}).then(e=>{if(1==e.status)return this.$notify({title:"提示",message:e.info,type:"success",duration:2e3}),void this.getList();this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消"})})},details(e){WxOrderDetail({no:e.no}).then(t=>{if(this.temp=t.result,t.result.clockList||t.result.orderSchedulingList){this.calendarTime=this.temp.startDate;const e=this.$moment(this.temp.startDate).clone().subtract(1,"months").endOf("month"),n=e.clone().subtract((e.day()+6)%7,"days"),r=this.$moment(this.temp.endDate).clone().add(1,"months").startOf("month"),l=r.clone().add((7-r.day())%7,"days");this.rangeTime=[n.format("YYYY-MM-DD"),l.format("YYYY-MM-DD")];let i=[],a=[];t.result.clockList&&(i=t.result.clockList),t.result.orderSchedulingList&&(a=t.result.orderSchedulingList);const s=[...i,...a],o=[],c=new Map;s.forEach(e=>{const t=e.clockDate;if(c.has(t)){const n=c.get(t);n.upCreateTime=n.upCreateTime||e.upCreateTime,n.dnCreateTime=n.dnCreateTime||e.dnCreateTime,n.timeSlot=n.timeSlot||e.timeSlot}else c.set(t,e)}),o.push(...c.values()),this.setData=o}this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>(console.log(e),{label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),WxOrderItemgetOrderNoDetails({orderNo:e.no}).then(e=>{this.NursingData=e.result.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.type,threePrice:e.threePrice?e.threePrice:"-",projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3,alreadyNum:e.alreadyNum})),setTimeout(()=>{this.NursingLoading=!1},1500)}),e.pdfUrl&&this.fileList.push({name:e.pdfUrl,url:e.pdfUrl}),this.detailsDialogVisible=!0})},addScheduling(){this.ruleForm.SchedulingData.push({clockDate:"",time:[this.$moment().startOf("day").add(6,"hours").format("HH:mm"),this.$moment().startOf("day").add(10,"hours").format("HH:mm")],isUntime:""})},changeInput(e){console.log(e),0==e.isUntime?e.time=[this.$moment().startOf("day").format("HH:mm"),this.$moment().endOf("day").format("HH:mm")]:e.time=[this.$moment().startOf("day").add(6,"hours").format("HH:mm"),this.$moment().startOf("day").add(10,"hours").format("HH:mm")]},removeDomain(e,t){"新增排班"!=this.title&&e.id?WxOrderSchedulingDel({id:e.id}).then(e=>{if(1==e.status)return this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3}),void this.ruleForm.SchedulingData.splice(t,1);this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})}):this.ruleForm.SchedulingData.splice(t,1)},SchedulingConfirmation(){if(!this.time)return void this.$notify({title:"提示",message:"请选择排班时间",type:"error",duration:2e3});if(!this.dates.some(e=>!0===e.show))return void this.$notify({title:"提示",message:"请选择排班日期",type:"error",duration:2e3});const e={},t=[];for(let e=0;e<this.dates.length;e++)this.dates[e].show&&t.push({clockDate:this.dates[e].dataTime,IsUntime:"1",timeSlot:`${this.time[0]}-${this.time[1]}`});e.orderNo=this.temp.no,e.orderSchedulingList=t,WxOrderSchedulingSave(e).then(e=>{if(1==e.status)return this.SchedulingDialogVisible=!1,this.SchedulingLoading=!1,this.checkAll=!1,this.getList(),void this.$notify({title:e.info,message:"排班成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"排班失败",type:"error",duration:2e3})})},Scheduling(e){this.dates=[],this.temp=e;this.getAllDatesOfMonth(this.$moment(this.temp.startDate).format("YYYY"),this.$moment(this.temp.startDate).format("MM")).forEach(e=>{const t=this.$moment(e).format("YYYY-MM-DD");this.dates.push({show:!1,dataTime:t})}),this.ruleForm.SchedulingData=[],this.SchedulingDialogVisible=!0,this.SchedulingLoading=!0,setTimeout(()=>{WxOrderSchedulingGetByOrderNo({orderNo:e.no}).then(e=>{e.result.length>0?(this.title="编辑排班",this.ruleForm.SchedulingData=e.result.map(e=>{for(var t=0;t<this.dates.length;t++)this.dates[t].dataTime==e.clockDate&&(this.dates[t].show=!0);return e.isUntime=Number(e.isUntime),e.time=e.timeSlot.split("-"),e}),this.time=this.ruleForm.SchedulingData[0].time):this.title="新增排班"}),this.SchedulingLoading=!1},100)},getAllDatesOfMonth(e,t){const n=[],r=this.$moment([e,t-1,1]),l=r.clone().endOf("month"),i=r;for(;i.isBefore(l)||i.isSame(l,"day");)n.push(i.clone()),i.add(1,"days");return n},confirm(){this.templateSelection?WxOrderItemUserSave(this.workerObj).then(e=>{if(1==e.status)return this.allocationDialogVisible=!1,this.getList(),this.$notify({title:e.info,message:"分配成功",type:"success",duration:2e3}),void(this.templateSelection="");this.$notify({title:e.info,message:"分配失败",type:"error",duration:2e3})}):this.$message({message:"请选择护工",type:"warning",center:!0})},singleElection(e){this.templateSelection=e.id,this.workerObj.personId=this.templateSelection},selectTable(e){const t=JSON.parse(JSON.stringify(this.allocationData));let n;n=e.trim()?t.filter(t=>Object.keys(t).some(n=>String(t.name).toLowerCase().match(e.trim()))):this.allocationData,this.checklist=n},allocation(e){this.workerObj.orderNo=e.no,this.allocationDialogVisible=!0,SPersonAll().then(e=>{this.allocationData=e.result,this.checklist=e.result}),setTimeout(()=>{this.allocationLoading=!1},1500)},changePrice(e){this.priceType=e},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["PDF","pdf"].indexOf(n)<0?(this.$message({message:"只能pdf文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadPDF(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.pdfUrl=e.result.url)})},nurseDelete(e,t){"1"!=this.temp.projectPlanId?this.$message({message:"套餐内的护理项不能删除",type:"warning"}):this.NursingData.splice(t,1)},modify(e){e.edit=!0},InputBlur(e){e.edit=!1},getinstitution(){SProjectAll().then(e=>{this.institutionData=e.result.map((e,t)=>({label:e.title,type:e.type,value:e.id,threePrice:e.threePrice,price1:e.price1,price3:e.price3,edit:!1,num:"1",projectId:e.id}))}),SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))}),WxUserCustomAll().then(e=>{this.placeOrder=e.result.map((e,t)=>({label:e.nickName,value:e.id}))}),WxUserFamilyAll().then(e=>{this.nurseObject=e.result.map((e,t)=>({label:e.name,value:e.id,isDelete:e.isDelete,lv:e.lv?e.lv:""}))})},getList(){const e=JSON.parse(JSON.stringify(this.listQuery));e.playTime&&(e.startDate=e.playTime[0],e.endDate=e.playTime[1],delete e.playTime),WxOrderPage(e).then(e=>{this.list=e.result.data,this.total=e.result.count}),WxUserFamilyAll().then(e=>{this.customerData=e.result.map(e=>({label:e.name,value:e.name}))}),SysUnitAll().then(e=>{this.institutionList=e.result.map(e=>({label:e.name,value:e.id}))}),SPersonAll().then(e=>{this.renyuanxinxi=e.result.map(e=>({label:e.name,value:e.name}))})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>({label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),setTimeout(()=>{this.NursingLoading=!1},1500)},edit(e){"2"!=e.status?(this.dialogStatus="update",this.dialogFormVisible=!0,this.temp=e,this.fileList=[],this.NursingData=[],this.NursingArrData=[],SProjectPlanPage({pageNo:1,size:9999}).then(e=>{this.NursingArrData=e.result.data.map(e=>({label:e.title,value:e.id})),this.NursingArrData.unshift({label:"自定义护理项目",value:"1"})}),WxOrderItemgetOrderNoDetails({orderNo:e.no}).then(e=>{this.NursingData=e.result.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.type,threePrice:e.threePrice?e.threePrice:"-",projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3}))}),e.pdfUrl&&this.fileList.push({name:e.pdfUrl,url:e.pdfUrl}),setTimeout(()=>{this.NursingLoading=!1},1500)):this.$message({message:"已完成不允许编辑",type:"warning"})},NursingChange(e){console.log(e),"1"==e?this.NursingData=[]:SProjectPlanDetail({id:e}).then(e=>{e.result.itemList&&(this.NursingData=e.result.itemList.map((e,t)=>({sort:t+1,edit:!1,label:e.projectTitle,projectId:e.projectId,num:e.num,type:e.projectType,projectPrice1:e.projectPrice1,projectPrice2:e.projectPrice2,projectPrice3:e.projectPrice3})))})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.orderItemSaveList=this.NursingData,WxOrderSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})}))})},updateData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.orderItemSaveList=this.NursingData,WxOrderSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})}))})},handleDelete(e,t){"1"!=e.status&&"2"!=e.status?WxOrderDel({orderNo:e.no}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})}):this.$message({message:"进行中或已完成不允许删除",type:"warning"})}}};const __vue_script__$9=script$9;var __vue_render__$9=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"机构名称",prop:"unitName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择机构名称"},model:{value:e.listQuery.unitName,callback:function(t){e.$set(e.listQuery,"unitName",t)},expression:"listQuery.unitName"}},e._l(e.institutionList,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.label}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"护理对象",prop:"familyName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理对象"},model:{value:e.listQuery.familyName,callback:function(t){e.$set(e.listQuery,"familyName",t)},expression:"listQuery.familyName"}},e._l(e.customerData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.label}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"护工姓名",prop:"personName"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.personName,callback:function(t){e.$set(e.listQuery,"personName",t)},expression:"listQuery.personName"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"计划时间",prop:"playTime"}},[n("el-date-picker",{attrs:{size:"small","value-format":"yyyy-MM-dd",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.listQuery.playTime,callback:function(t){e.$set(e.listQuery,"playTime",t)},expression:"listQuery.playTime"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),e._l(e.expBtn,function(t){return n("el-form-item",{key:t.key},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(n){return e.expShow(t)}}},[e._v("\n "+e._s(t.name)+"\n ")])],1)})],2)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"所属机构",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理对象",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.familyName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划流水号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划开始日期",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.startDate))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"计划结束日期",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.endDate))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理计划状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"2"==r.status?"success":""}},[e._v(e._s("1"==r.status?"进行中":"2"==r.status?"已完成":"3"==r.status?"已取消":"0"==r.status?"待执行":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"分配护工",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.personName?r.personName:"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"380","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return["2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.Scheduling(r,l)}}},[e._v("\n 排班\n ")]):e._e(),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.allocation(r,l)}}},[e._v("\n 分配护工\n ")]):e._e(),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]):e._e(),e._v(" "),"0"==r.status?n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")]):e._e(),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.details(r,l)}}},[e._v("\n 详情\n ")]),e._v(" "),"2"!=r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.complete(r,l)}}},[e._v("\n 订单完成\n ")]):e._e(),e._v(" "),"2"==r.status?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.PlanexpExcel(r,l)}}},[e._v("\n 导出\n ")]):e._e(),e._v(" "),n("el-button",{staticStyle:{"margin-top":"8px"},attrs:{size:"mini",type:"success"},on:{click:function(t){return e.expExcel2(r,l)}}},[e._v("\n 打印\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"60%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理对象",prop:"familyId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},on:{change:e.familyChange},model:{value:e.temp.familyId,callback:function(t){e.$set(e.temp,"familyId",t)},expression:"temp.familyId"}},e._l(e.nurseObject,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("状态:"+e._s("0"==t.isDelete?"正常":"1"==t.isDelete?"注销":"-"))])])}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划开始日期",prop:"startDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划开始日期"},model:{value:e.temp.startDate,callback:function(t){e.$set(e.temp,"startDate",t)},expression:"temp.startDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划结束日期",prop:"endDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划结束日期"},model:{value:e.temp.endDate,callback:function(t){e.$set(e.temp,"endDate",t)},expression:"temp.endDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理内容",prop:"projectPlanId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理内容"},on:{change:e.NursingChange},model:{value:e.temp.projectPlanId,callback:function(t){e.$set(e.temp,"projectPlanId",t)},expression:"temp.projectPlanId"}},e._l(e.NursingArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"失能等级",prop:"familyLv"}},[n("el-tag",{attrs:{type:"success"}},[e._v(e._s(e.disabilityLv[e.temp.familyLv]))])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件",prop:"pdfUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),"1"==e.temp.projectPlanId?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项组合",prop:"projectPlanId"}},[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.addNurse}},[e._v("新增护理项")])],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],ref:"standTable",staticClass:"draggable-table",staticStyle:{width:"100%"},attrs:{border:"",height:"35vh",data:e.NursingData,"summary-method":e.getSummaries,"show-summary":"","row-key":"projectId"}},[n("el-table-column",{attrs:{label:"鼠标长按",width:"100",align:"center"}},[n("el-button",{staticClass:"handle",attrs:{link:"",type:"text",size:"small",icon:"el-icon-s-operation"}},[e._v("拖拽")])],1),e._v(" "),n("el-table-column",{attrs:{label:"序号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sort))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"类别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"生活照料":"02"==r.type?"精神慰藉":"03"==r.type?"安全巡视":"04"==r.type?"医疗护理":"05"==r.type?"康复护理":"06"==r.type?"辅助器具":"07"==r.type?"居家护理":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"次数",align:"center",prop:"num"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[r.edit?n("el-input",{attrs:{placeholder:"次数"},on:{blur:function(t){return e.InputBlur(r,l)}},model:{value:r.num,callback:function(t){e.$set(r,"num",t)},expression:"row.num"}}):n("span",[e._v(e._s(r.num))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构护理价",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.projectPrice3))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"省厅价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.threePrice))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"汇总价格",align:"center",prop:"projectPrice1"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(e.Summary(r.num,r.projectPrice3)))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"200","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 修改次数\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.nurseDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"分配护工",visible:e.allocationDialogVisible,width:"45%"},on:{"update:visible":function(t){e.allocationDialogVisible=t}}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{staticStyle:{"margin-bottom":"20px"},attrs:{span:6}},[n("el-input",{attrs:{size:"mini",placeholder:"输入护工名称搜索"},on:{input:e.selectTable},model:{value:e.searchContent,callback:function(t){e.searchContent=t},expression:"searchContent"}})],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.allocationLoading,expression:"allocationLoading"}],staticStyle:{width:"100%"},attrs:{border:"",height:"50vh",data:e.checklist},on:{"row-click":e.singleElection}},[n("el-table-column",{attrs:{align:"center",width:"55",label:"选择"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-radio",{staticClass:"radio",attrs:{label:t.row.id},model:{value:e.templateSelection,callback:function(t){e.templateSelection=t},expression:"templateSelection"}},[n("span")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工联系号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工地址",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])})],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.allocationDialogVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.confirm}},[e._v("\n 分 配\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.title,visible:e.SchedulingDialogVisible,width:"40%"},on:{"update:visible":function(t){e.SchedulingDialogVisible=t}}},[n("el-form",{ref:"ruleForm",attrs:{model:e.ruleForm,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"排班时间"}},[n("el-time-picker",{staticStyle:{width:"80%"},attrs:{size:"small","is-range":"","range-separator":"至","start-placeholder":"开始时间",format:"HH:mm","end-placeholder":"结束时间",placeholder:"请选择服务时间","value-format":"HH:mm"},model:{value:e.time,callback:function(t){e.time=t},expression:"time"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"是否全选"}},[n("el-checkbox",{on:{change:e.handleCheckAllChange},model:{value:e.checkAll,callback:function(t){e.checkAll=t},expression:"checkAll"}},[e._v(e._s(e.checkAll?"是":"否"))])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("div",{staticClass:"list"},e._l(e.dates,function(t,r){return n("div",{key:r,staticClass:"item",on:{click:function(n){return e.allcalendar(t,r)}}},[e._v("\n "+e._s(t.dataTime)+" "+e._s(t.show?"✔️":""))])}),0)])],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.SchedulingDialogVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){return e.SchedulingConfirmation("ruleForm")}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"详情",visible:e.detailsDialogVisible,width:"45%"},on:{"update:visible":function(t){e.detailsDialogVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理对象",prop:"familyId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},model:{value:e.temp.familyId,callback:function(t){e.$set(e.temp,"familyId",t)},expression:"temp.familyId"}},e._l(e.nurseObject,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划开始日期",prop:"startDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",disabled:"",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划开始日期"},model:{value:e.temp.startDate,callback:function(t){e.$set(e.temp,"startDate",t)},expression:"temp.startDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"计划结束日期",prop:"endDate"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",disabled:"",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择计划结束日期"},model:{value:e.temp.endDate,callback:function(t){e.$set(e.temp,"endDate",t)},expression:"temp.endDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理内容",prop:"projectPlanId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{disabled:"",clearable:"",filterable:"",size:"small",placeholder:"选择护理内容"},on:{change:e.NursingChange},model:{value:e.temp.projectPlanId,callback:function(t){e.$set(e.temp,"projectPlanId",t)},expression:"temp.projectPlanId"}},e._l(e.NursingArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"失能等级"}},["06"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能ⅠⅠⅠ级")]):e._e(),e._v(" "),"05"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能ⅠⅠ级")]):e._e(),e._v(" "),"04"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("重度失能Ⅰ级")]):e._e(),e._v(" "),"03"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("中度失能")]):e._e(),e._v(" "),"02"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("轻度失能")]):e._e(),e._v(" "),"01"==e.temp.familyLv?n("el-tag",{attrs:{type:"success"}},[e._v("基本正常")]):e._e()],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件",prop:"pdfUrl"}},[n("el-upload",{attrs:{action:"#",disabled:"",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",disabled:"",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("div",{staticClass:"calendar-dialog"},[n("el-calendar",{scopedSlots:e._u([{key:"dateCell",fn:function(t){t.date;var r=t.data;return[n("div",{staticClass:"card-group"},[n("div",{class:(r.isSelected,"card-calendar-text")},[n("span",[e._v(e._s(e.getTimeDate(r.day)))]),e._v(" "),r.isSelected?n("el-icon",[n("Select")],1):e._e()],1),e._v(" "),e._l(e.setData,function(t,l){return n("span",{key:t.id,staticClass:"card"},[t.clockDate===r.day?n("div",{staticClass:"card-flag"},[n("div",{class:e.getDate<t.clockDate?"card-text5":e.compareDate(t.timeSlot,t.upCreateTime,t.dnCreateTime)?" card-text1":" card-text2"},[n("span",[e._v(e._s(e.getTimeDate(r.day)))]),e._v(" "),t.timeSlot?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("排班:"+e._s(t.timeSlot))]):e._e(),e._v(" "),t.upCreateTime?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("上班:"+e._s(e.setTimeDate(t.upCreateTime)))]):e._e(),e._v(" "),t.dnCreateTime?n("span",{staticStyle:{"font-weight":"500","font-size":"12px"}},[e._v("下班:"+e._s(e.setTimeDate(t.dnCreateTime)))]):e._e()])]):n("div")])})],2)]}}]),model:{value:e.calendarTime,callback:function(t){e.calendarTime=t},expression:"calendarTime"}})],1)]),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],staticStyle:{width:"100%"},attrs:{border:"",height:"30vh",data:e.NursingData}},[n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"需要护理次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.num))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"实际护理次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("span",[e._v(e._s(r.alreadyNum?r.alreadyNum:"-"))])]}}])})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){e.detailsDialogVisible=!1}}},[e._v("\n 关 闭\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"30%","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{ref:"dataForm",staticClass:"demo-form-inline",attrs:{model:e.exportTime,rules:e.rules,"label-position":"right","label-width":"90px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("请根据护理计划的开始日期和结束日期选择时间")])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.exportTime.startDate,callback:function(t){e.$set(e.exportTime,"startDate",t)},expression:"exportTime.startDate"}})],1)],1),e._v(" "),"护理计划信息"==this.expApiName?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"护理对象"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"选择护理对象"},model:{value:e.exportTime.familyId,callback:function(t){e.$set(e.exportTime,"familyId",t)},expression:"exportTime.familyId"}},e._l(e.nurseObject,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),"护理计划信息"!=this.expApiName?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"计划流水号"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入计划流水号"},model:{value:e.exportTime.orderNo,callback:function(t){e.$set(e.exportTime,"orderNo",t)},expression:"exportTime.orderNo"}})],1)],1):e._e()],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),"机构护理"==e.unitType?n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"打印",visible:e.expObjVisible,width:"100%","before-close":e.handleClose,top:"3vh"},on:{"update:visible":function(t){e.expObjVisible=t}}},[n("div",{ref:"printDom1",staticClass:"exptable",attrs:{id:"printDom1",border:"1"}},[n("div",{staticClass:"thead"},[e._v("\n "+e._s(e.expObj.orderYearMonth)+"\n ")]),e._v(" "),n("div",{staticClass:"tbody"},[n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("参保人姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personName))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("身份证")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personIdCode))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("年龄")]),e._v(" "),n("div",[e._v("\n "+e._s(e.expObj.personAge)+"\n ")]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("参保类型")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalType))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("制表人")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.unitName))])]),e._v(" "),n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("所属参保区划")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalCounty))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("失能等级")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.lv))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("家属姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.familyName))])]),e._v(" "),n("div",{staticClass:"leftXuhao loop"},[n("div",{staticClass:"num"},[e._v("序号")]),e._v(" "),n("div",{staticClass:"name"},[e._v("服务项目")]),e._v(" "),n("div",{staticClass:"day headday"},[n("span",[e._v("护理服务执行日期及次数")]),e._v(" "),n("div",{staticClass:"forday"},e._l(31,function(t){return n("span",{key:t},[e._v(e._s(t)+"日")])}),0)]),e._v(" "),n("div",{staticClass:"total"},[e._v("床日合计")])]),e._v(" "),e._l(e.expObj.list,function(t,r){return n("div",{key:r,staticClass:"tr loop"},[n("div",{staticClass:"num"},[e._v(e._s(r+1))]),e._v(" "),n("div",{staticClass:"name"},[e._v(e._s(t.title))]),e._v(" "),n("div",{staticClass:"day bodyday"},[n("div",{staticClass:"forday"},[e._l(31,function(r){return[Array.isArray(t["day"+r])?n("span",{key:r},e._l(t["day"+r],function(t,r){return n("p",{key:r,staticStyle:{margin:"0"}},[e._v("\n "+e._s(t)+"\n ")])}),0):n("span",{key:r},[e._v(e._s(t["day"+r]))])]})],2)]),e._v(" "),n("div",{staticClass:"total"},[e._v(e._s(t.num))])])})],2),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("协议服务机构负责人签字:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("家属确认签字按手印:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("盖章:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("日期:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("日期:")])])]),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{directives:[{name:"print",rawName:"v-print",value:e.print,expression:"print"}],attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.onPrint}},[e._v("\n 打 印\n ")])],1)]):e._e(),e._v(" "),"居家护理"==e.unitType?n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"打印",visible:e.expObjVisible,width:"100%","before-close":e.handleClose,top:"3vh"},on:{"update:visible":function(t){e.expObjVisible=t}}},[n("div",{ref:"printDom1",staticClass:"exptable",attrs:{id:"printDom1",border:"1"}},[n("div",{staticClass:"thead"},[e._v("\n "+e._s(e.expObj.orderYearMonth)+"\n ")]),e._v(" "),n("div",{staticClass:"tbody"},[n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("参保人姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personName))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("身份证")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.personIdCode))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("年龄")]),e._v(" "),n("div",[e._v("\n "+e._s(e.expObj.personAge)+"\n ")]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("参保类型")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalType))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("制表人")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.unitName))])]),e._v(" "),n("div",{staticClass:"tr eight"},[n("div",{staticClass:"title eight_label"},[e._v("所属参保区划")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.medicalCounty))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("失能等级")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.lv))]),e._v(" "),n("div",{staticClass:"title eight_label"},[e._v("家属姓名")]),e._v(" "),n("div",{staticClass:"eight_label"},[e._v(e._s(e.expObj.familyName))])]),e._v(" "),n("div",{staticClass:"leftXuhao loop"},[n("div",{staticClass:"num"},[e._v("序号")]),e._v(" "),n("div",{staticClass:"name"},[e._v("服务项目")]),e._v(" "),n("div",{staticClass:"day headday"},[n("span",[e._v("护理服务执行日期及护理项目次数(分钟)")]),e._v(" "),n("div",{staticClass:"forday"},e._l(31,function(t){return n("span",{key:t},[e._v(e._s(t)+"日")])}),0)])]),e._v(" "),e._l(e.expObj.list,function(t,r){return n("div",{key:r,staticClass:"tr loop"},[n("div",{staticClass:"num"},[e._v(e._s(r+1))]),e._v(" "),n("div",{staticClass:"name"},[e._v(e._s(t.title))]),e._v(" "),"当月服务总时长(小时)"==t.title?n("div",{staticClass:"day bodyday merged-cell"},[e._v("\n "+e._s(t.num)+"(小时)\n ")]):n("div",{staticClass:"day bodyday"},[n("div",{staticClass:"forday"},[e._l(31,function(r){return[Array.isArray(t["day"+r])?n("span",{key:r},e._l(t["day"+r],function(t,r){return n("p",{key:r,staticStyle:{margin:"0"}},[e._v("\n "+e._s(t)+"\n ")])}),0):n("span",{key:r},[e._v(e._s(t["day"+r]))])]})],2)])])})],2),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("协议服务机构负责人签字:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("家属确认签字按手印:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("盖章:")]),e._v(" "),n("div",{staticClass:"day bodyday"},[e._v("日期:")])]),e._v(" "),n("div",{staticClass:"handwriting"},[n("div",{staticClass:"name"},[e._v("日期:")])])]),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{directives:[{name:"print",rawName:"v-print",value:e.print,expression:"print"}],attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.onPrint}},[e._v("\n 打 印\n ")])],1)]):e._e(),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"新增护理项",visible:e.dialogVisible,width:"30%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理项组合",multiple:""},model:{value:e.projectList,callback:function(t){e.projectList=t},expression:"projectList"}},e._l(e.institutionData,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("护理类型:"+e._s("01"==t.type?"生活照料":"02"==t.type?"精神慰藉":"03"==t.type?"安全巡视":"04"==t.type?"医疗护理":"05"==t.type?"康复护理":"06"==t.type?"辅助器具":"07"==t.type?"居家护理":"-"))])])}),1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.determine}},[e._v("确 定")])],1)],1)],1)},__vue_staticRenderFns__$9=[];__vue_render__$9._withStripped=!0;const __vue_inject_styles__$9=function(e){e&&e("data-v-36b0c510_0",{source:".el-col-12[data-v-36b0c510] {\n padding: 0 20px 0 0;\n}\n.addButton[data-v-36b0c510] {\n margin: 0 0 10px 0;\n}\n[data-v-36b0c510] .el-dialog__body {\n padding: 0px 20px;\n}\n[data-v-36b0c510] .el-calendar-table .el-calendar-day {\n padding: 0;\n}\n.is-selected[data-v-36b0c510] {\n color: #1989fa;\n background: yellow;\n}\n.is-add-selected[data-v-36b0c510] {\n color: #fff;\n background: #1989fa;\n}\n.calendar-dialog .card-group[data-v-36b0c510] {\n width: 100%;\n height: 100%;\n}\n.calendar-dialog .card-group .card-calendar-text[data-v-36b0c510] {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n padding: 8px;\n}\n.calendar-dialog .card-group .card[data-v-36b0c510] {\n position: relative;\n top: -100%;\n}\n.calendar-dialog .card-group .card-flag[data-v-36b0c510] {\n height: 100%;\n}\n.calendar-dialog .card-group .card1[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n}\n.calendar-dialog .card-group .card-text1[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text2[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text3[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text4[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text5[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card2[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n}\n.calendar-dialog .card-group .card3[data-v-36b0c510] {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .card-text3[data-v-36b0c510] {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .visits-val[data-v-36b0c510] {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n[data-v-36b0c510] .el-calendar__button-group {\n display: none;\n}\n.is-selected[data-v-36b0c510] {\n color: #1989fa;\n}\n.activeItem[data-v-36b0c510] {\n color: red;\n}\n.el-calendar-table td.is-today[data-v-36b0c510] {\n color: #000 !important;\n background: transparent !important;\n}\n.el-col-12[data-v-36b0c510] {\n padding: 0 20px 0 0;\n}\n.exptable[data-v-36b0c510] {\n font-size: 9px;\n text-align: center;\n width: 100%;\n}\n.exptable .leftXuhao[data-v-36b0c510] {\n display: flex;\n border-bottom: 1px solid #333;\n}\n.exptable .leftXuhao div[data-v-36b0c510] {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .thead[data-v-36b0c510] {\n border-bottom: 0;\n color: #000;\n padding: 8px 0;\n}\n.exptable .tbody[data-v-36b0c510] {\n border: 1px solid #333;\n font-size: 8px;\n}\n.exptable .tr[data-v-36b0c510] {\n display: flex;\n border-bottom: 1px solid #333;\n color: #111;\n}\n.exptable .tr div[data-v-36b0c510] {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .tr .bodyday[data-v-36b0c510] {\n flex: 1;\n}\n.exptable .tr div[data-v-36b0c510]:last-child {\n border-right: 0;\n}\n.exptable .eight div[data-v-36b0c510] {\n flex: 1;\n padding: 5px 0;\n}\n.exptable .eight .title[data-v-36b0c510] {\n width: 110px;\n flex: none;\n}\n.exptable .tr[data-v-36b0c510]:last-child {\n border-bottom: 0;\n}\n.exptable .loop .num[data-v-36b0c510] {\n width: 22px !important;\n}\n.exptable .loop .total[data-v-36b0c510] {\n width: 23px;\n padding: 5px 0;\n}\n.exptable .loop .name[data-v-36b0c510] {\n padding: 5px 0;\n flex: 0.1;\n}\n.exptable .loop .headday[data-v-36b0c510] {\n flex-flow: column;\n flex: 1;\n}\n.exptable .loop .headday .forday[data-v-36b0c510] {\n border-top: 1px solid #333;\n}\n.exptable .loop .day span[data-v-36b0c510] {\n padding: 10px 0;\n}\n.exptable .loop .forday[data-v-36b0c510] {\n display: table;\n width: 100%;\n}\n.exptable .loop .forday span[data-v-36b0c510] {\n display: table-cell;\n vertical-align: middle;\n border-right: 1px solid #333;\n width: 23px;\n height: 100%;\n overflow: hidden;\n word-wrap: break-word;\n word-break: break-all;\n}\n.exptable .loop .forday span[data-v-36b0c510]:last-child {\n border-right: 0;\n}\n.handwriting[data-v-36b0c510] {\n display: flex;\n}\n.handwriting div[data-v-36b0c510] {\n text-align: right;\n padding: 5px 0;\n}\n.handwriting .name[data-v-36b0c510] {\n margin-left: 60px;\n width: 120px;\n}\n.handwriting .bodyday[data-v-36b0c510] {\n width: 60%;\n margin-right: 60px;\n}\n.exptableprint[data-v-36b0c510] {\n font-size: 11px;\n}\n.exptableprint .tbody[data-v-36b0c510] {\n font-size: 10px;\n}\n.list[data-v-36b0c510] {\n padding: 15px;\n display: flex;\n flex-wrap: wrap;\n}\n.list .item[data-v-36b0c510] {\n border: 1px solid #ede9e9;\n height: 70px;\n padding: 10px;\n cursor: pointer;\n width: calc((100% - 50px) / 7);\n min-width: calc((100% - 30px) / 7);\n max-width: calc((100% - 30px) / 7);\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n}\n.list .item[data-v-36b0c510]:nth-child(7n+7) {\n margin-bottom: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\customerManagement\\carePlan\\index.vue","index.vue"],names:[],mappings:"AAokEA;EACA,mBAAA;ACnkEA;ADskEA;EACA,kBAAA;ACnkEA;ADskEA;EACA,iBAAA;ACnkEA;ADskEA;EACA,UAAA;ACnkEA;ADskEA;EACA,cAAA;EACA,kBAAA;ACnkEA;ADskEA;EACA,WAAA;EACA,mBAAA;ACnkEA;ADmmEA;EACA,WAAA;EACA,YAAA;AChmEA;ADkmEA;EACA,YAlCA;EAmCA,gBAnCA;EAoCA,gBApCA;EAqCA,YAAA;AChmEA;ADmmEA;EACA,kBAAA;EACA,UAAA;ACjmEA;ADomEA;EACA,YAAA;AClmEA;ADqmEA;EA1CA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,yCAVA;AC9iEA;ADgmEA;EApCA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,yCAtBA;EAoDA,YAAA;EACA,YAAA;EACA,eAAA;ACvlEA;AD0lEA;EA3CA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EA6DA,YAAA;EACA,YAAA;EACA,eAAA;ACjlEA;ADolEA;EAlDA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EAoEA,YAAA;EACA,YAAA;EACA,eAAA;AC3kEA;AD8kEA;EAzDA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sCAxBA;EA2EA,YAAA;EACA,YAAA;EACA,eAAA;ACrkEA;ADwkEA;EAhEA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,yCAvBA;EAiFA,YAAA;EACA,YAAA;EACA,eAAA;AC/jEA;ADkkEA;EAjFA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,yCAXA;ACn+DA;ADikEA;EAzFA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,WAAA;EACA,sBATA;AC59DA;AD4jEA;EAnFA,aAAA;EACA,sBAAA;EAEA,YApBA;EAqBA,gBArBA;EAsBA,gBAtBA;EAuBA,eAAA;EACA,WAAA;EACA,sBArBA;ACl9DA;ADsjEA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;ACpjEA;ADyjEA;EACA,aAAA;ACtjEA;ADyjEA;EACA,cAAA;ACtjEA;ADyjEA;EACA,UAAA;ACtjEA;ADyjEA;EACA,sBAAA;EACA,kCAAA;ACtjEA;ADyjEA;EACA,mBAAA;ACtjEA;ADyjEA;EACA,cAAA;EACA,kBAAA;EACA,WAAA;ACtjEA;ADyjEA;EACA,aAAA;EACA,6BAAA;ACvjEA;ADyjEA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,4BAAA;ACvjEA;AD2jEA;EAEA,gBAAA;EACA,WAAA;EACA,cAAA;AC1jEA;AD6jEA;EACA,sBAAA;EACA,cAAA;AC3jEA;AD8jEA;EACA,aAAA;EACA,6BAAA;EACA,WAAA;AC5jEA;AD8jEA;EAEA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,4BAAA;AC7jEA;ADikEA;EACA,OAAA;AC/jEA;ADkkEA;EACA,eAAA;AChkEA;ADokEA;EACA,OAAA;EAEA,cAAA;ACnkEA;ADskEA;EACA,YAAA;EACA,UAAA;ACpkEA;ADukEA;EACA,gBAAA;ACrkEA;ADykEA;EACA,sBAAA;ACvkEA;AD0kEA;EACA,WAAA;EACA,cAAA;ACxkEA;AD8kEA;EAEA,cAAA;EAEA,SAAA;AC9kEA;ADilEA;EACA,iBAAA;EACA,OAAA;AC/kEA;ADilEA;EACA,0BAAA;AC/kEA;ADmlEA;EACA,eAAA;ACjlEA;ADolEA;EACA,cAAA;EACA,WAAA;ACllEA;ADqlEA;EACA,mBAAA;EACA,sBAAA;EACA,4BAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,qBAAA;EACA,qBAAA;ACnlEA;ADslEA;EACA,eAAA;ACplEA;AD0lEA;EACA,aAAA;ACvlEA;ADylEA;EACA,iBAAA;EACA,cAAA;ACvlEA;AD0lEA;EACA,iBAAA;EACA,YAAA;ACxlEA;AD2lEA;EACA,UAAA;EACA,kBAAA;ACzlEA;AD6lEA;EACA,eAAA;AC1lEA;AD4lEA;EACA,eAAA;AC1lEA;AD8lEA;EACA,aAAA;EAGA,aAAA;EAEA,eAAA;AC9lEA;ADgmEA;EAEA,yBAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;EAIA,8BAAA;EAGA,kCAAA;EACA,kCAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,eAAA;ACpmEA;ADumEA;EACA,gBAAA;ACrmEA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="机构名称" prop="unitName">\r\n <el-select v-model="listQuery.unitName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择机构名称">\r\n <el-option v-for="(item, index) in institutionList" :key="index" :label="item.label" :value="item.label" />\r\n </el-select>\r\n \x3c!-- <el-input size="small" clearable v-model="listQuery.unitName" placeholder="请输入机构名称"></el-input> --\x3e\r\n </el-form-item>\r\n <el-form-item label="护理对象" prop="familyName">\r\n <el-select v-model="listQuery.familyName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择护理对象">\r\n <el-option v-for="(item, index) in customerData" :key="index" :label="item.label" :value="item.label" />\r\n </el-select>\r\n \x3c!-- <el-input size="small" clearable v-model="listQuery.familyName" placeholder="请输入护理对象"></el-input> --\x3e\r\n </el-form-item>\r\n <el-form-item label="护工姓名" prop="personName">\r\n <el-select v-model="listQuery.personName" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择姓名">\r\n <el-option v-for="(item, index) in renyuanxinxi" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label="计划时间" prop="playTime">\r\n <el-date-picker v-model="listQuery.playTime" size="small" value-format="yyyy-MM-dd" type="daterange"\r\n range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item v-for="item in expBtn" :key="item.key">\r\n <el-button size="small" type="primary" @click="expShow(item)">\r\n {{ item.name }}\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n <el-table-column :label="\'所属机构\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理对象\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.familyName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划流水号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划开始日期\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.startDate }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'计划结束日期\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.endDate }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理计划状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium" :type="row.status == \'2\' ? \'success\' : \'\'">{{\r\n row.status == "1"\r\n ? "进行中"\r\n : row.status == "2"\r\n ? "已完成"\r\n : row.status == "3"\r\n ? "已取消"\r\n : row.status == "0"\r\n ? "待执行"\r\n : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'分配护工\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.personName ? row.personName : "-" }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'操作\'" align="center" width="380" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="Scheduling(row, $index)">\r\n 排班\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="allocation(row, $index)">\r\n 分配护工\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button v-if="row.status == \'0\'" size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n <el-button size="mini" type="primary" @click="details(row, $index)">\r\n 详情\r\n </el-button>\r\n <el-button v-if="row.status != \'2\'" size="mini" type="success" @click="complete(row, $index)">\r\n 订单完成\r\n </el-button>\r\n <el-button v-if="row.status == \'2\'" size="mini" type="success" @click="PlanexpExcel(row, $index)">\r\n 导出\r\n </el-button>\r\n \x3c!-- v-if="row.status == \'2\'" --\x3e\r\n <el-button style="margin-top: 8px" size="mini" type="success" @click="expExcel2(row, $index)">\r\n 打印\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="60%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理对象" prop="familyId">\r\n <el-select v-model="temp.familyId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象" @change="familyChange">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value">\r\n <span style="float: left">{{ item.label }}</span>\r\n <span style="float: right; color: #8492a6; font-size: 13px">状态:{{ item.isDelete == "0" ? \'正常\' :\r\n item.isDelete == "1" ? \'注销\' : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划开始日期" prop="startDate">\r\n <el-date-picker v-model="temp.startDate" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择计划开始日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划结束日期" prop="endDate">\r\n <el-date-picker v-model="temp.endDate" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择计划结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理内容" prop="projectPlanId">\r\n <el-select v-model="temp.projectPlanId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理内容" @change="NursingChange">\r\n <el-option v-for="(item, index) in NursingArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="失能等级" prop="familyLv">\r\n <el-tag type="success">{{ disabilityLv[temp.familyLv] }}</el-tag>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="协议文件" prop="pdfUrl">\r\n <el-upload action="#" :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="temp.projectPlanId == \'1\'" :span="12">\r\n <el-form-item label="护理项组合" prop="projectPlanId">\r\n <el-button size="small" type="success" @click="addNurse">新增护理项</el-button>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table ref="standTable" v-loading="NursingLoading" border height="35vh" :data="NursingData"\r\n style="width: 100%" :summary-method="getSummaries" show-summary row-key="projectId"\r\n class="draggable-table">\r\n <el-table-column label="鼠标长按" width="100" align="center">\r\n <el-button link type="text" size="small" :icon="\'el-icon-s-operation\'" class="handle">拖拽</el-button>\r\n </el-table-column>\r\n <el-table-column :label="\'序号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sort }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'类别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium">{{ row.type == "01" ? "生活照料" : row.type == "02" ? "精神慰藉" : row.type == "03" ?\r\n "安全巡视" : row.type == "04" ? "医疗护理" : row.type == "05" ? "康复护理" : row.type == "06" ? "辅助器具" :\r\n row.type == "07" ? "居家护理" : \'-\' }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'次数\'" align="center" prop="num">\r\n <template slot-scope="{ row, $index }">\r\n <el-input v-if="row.edit" v-model="row.num" placeholder="次数" @blur="InputBlur(row, $index)" />\r\n <span v-else>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构护理价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.projectPrice3 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'省厅价格\'" align="center">\r\n <template slot-scope="{row}">\r\n <span>{{ row.threePrice }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'汇总价格\'" align="center" prop="projectPrice1">\r\n <template slot-scope="{ row }">\r\n <span>{{ Summary(row.num, row.projectPrice3) }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'机构护理价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.projectPrice3 }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'操作\'" align="center" width="200" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="modify(row, $index)">\r\n 修改次数\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="nurseDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button> --\x3e\r\n <el-button type="primary" size="small" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'分配护工\'"\r\n :visible.sync="allocationDialogVisible" width="45%">\r\n <el-row :gutter="20">\r\n <el-col :span="6" style="margin-bottom: 20px;">\r\n <el-input v-model="searchContent" size="mini" placeholder="输入护工名称搜索" @input="selectTable" />\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table v-loading="allocationLoading" border height="50vh" :data="checklist" style="width: 100%"\r\n @row-click="singleElection">\r\n <el-table-column align="center" width="55" label="选择">\r\n <template slot-scope="scope">\r\n \x3c!-- 可以手动的修改label的值,从而控制选择哪一项 --\x3e\r\n <el-radio v-model="templateSelection" class="radio" :label="scope.row.id">\r\n <span />\r\n </el-radio>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工联系号码\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.phoneNumber }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工性别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sex }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工地址\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.address }}</span>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="allocationDialogVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="confirm">\r\n 分 配\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title"\r\n :visible.sync="SchedulingDialogVisible" width="40%">\r\n <el-form ref="ruleForm" :model="ruleForm" label-position="right" label-width="100px">\r\n <el-row :gutter="20">\r\n <el-col :span="24">\r\n <el-form-item label="排班时间">\r\n <el-time-picker v-model="time" style="width: 80%" size="small" is-range range-separator="至"\r\n start-placeholder="开始时间" format="HH:mm" end-placeholder="结束时间" placeholder="请选择服务时间"\r\n value-format="HH:mm" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="是否全选">\r\n <el-checkbox v-model="checkAll" @change="handleCheckAllChange">{{ checkAll ? \'是\' : \'否\' }}</el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <div class="list">\r\n <div v-for="(item, index) in dates" :key="index" class="item" @click="allcalendar(item, index)">\r\n {{ item.dataTime }} {{ item.show ? \'✔️\' : \'\' }}</div>\r\n </div>\r\n\r\n \x3c!-- <el-button type="success" class="addButton" size="small" @click="addScheduling">\r\n 新增排班\r\n </el-button>\r\n <el-table border height="30vh" v-loading="SchedulingLoading" :data="ruleForm.SchedulingData"\r\n style="width: 100%" @row-click="singleElection">\r\n <el-table-column align="center" label="排班日期" width="215">\r\n <template slot-scope="{ row, $index }">\r\n <el-form-item label-width="0px" :prop="\'SchedulingData.\' + $index + \'.clockDate\'"\r\n :rules="rules.clockDate">\r\n <el-date-picker style="width: 100%" size="small" v-model="row.clockDate" type="date"\r\n :disabled="ScheduleDate(row)" placeholder="请选择排班日期" value-format="yyyy-MM-dd"></el-date-picker>\r\n </el-form-item>\r\n </template>\r\n </el-table-column>\r\n <el-table-column align="center" label="服务时间" width="350">\r\n <template slot-scope="{ row, $index }">\r\n <el-form-item label-width="0px">\r\n <el-time-picker :disabled="ScheduleDate(row)" style="width: 100%" size="small" is-range\r\n v-model="row.time" range-separator="至" start-placeholder="开始时间" format="HH:mm"\r\n end-placeholder="结束时间" placeholder="请选择服务时间" value-format="HH:mm">\r\n </el-time-picker>\r\n </el-form-item>\r\n </template>\r\n </el-table-column>\r\n <el-table-column align="center" label="操作" width="90">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="danger" @click="removeDomain(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table> --\x3e\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="SchedulingDialogVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="SchedulingConfirmation(\'ruleForm\')">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'详情\'"\r\n :visible.sync="detailsDialogVisible" width="45%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理对象" prop="familyId">\r\n <el-select v-model="temp.familyId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划开始日期" prop="startDate">\r\n <el-date-picker v-model="temp.startDate" size="small" disabled format="yyyy 年 MM 月 dd 日"\r\n value-format="yyyy-MM-dd" style="width: 100%" type="date" placeholder="请选择计划开始日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="计划结束日期" prop="endDate">\r\n <el-date-picker v-model="temp.endDate" size="small" disabled format="yyyy 年 MM 月 dd 日"\r\n value-format="yyyy-MM-dd" style="width: 100%" type="date" placeholder="请选择计划结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理内容" prop="projectPlanId">\r\n <el-select v-model="temp.projectPlanId" style="width: 100%" disabled clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理内容" @change="NursingChange">\r\n <el-option v-for="(item, index) in NursingArrData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="失能等级">\r\n <el-tag v-if="temp.familyLv == \'06\'" type="success">重度失能ⅠⅠⅠ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'05\'" type="success">重度失能ⅠⅠ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'04\'" type="success">重度失能Ⅰ级</el-tag>\r\n <el-tag v-if="temp.familyLv == \'03\'" type="success">中度失能</el-tag>\r\n <el-tag v-if="temp.familyLv == \'02\'" type="success">轻度失能</el-tag>\r\n <el-tag v-if="temp.familyLv == \'01\'" type="success">基本正常</el-tag>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="协议文件" prop="pdfUrl">\r\n <el-upload action="#" disabled :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" disabled size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <div class="calendar-dialog">\r\n \x3c!-- {{rangeTime}} --\x3e\r\n <el-calendar v-model="calendarTime">\r\n <template slot="dateCell" slot-scope="{ date, data }">\r\n <div class="card-group">\r\n <div :class="data.isSelected\r\n ? \'card-calendar-text\'\r\n : \'card-calendar-text\'\r\n ">\r\n <span>{{ getTimeDate(data.day) }}</span>\r\n <el-icon v-if="data.isSelected"><Select /></el-icon>\r\n </div>\r\n <span v-for="(item, index) in setData" :key="item.id" class="card">\r\n <div v-if="item.clockDate === data.day" class="card-flag">\r\n <div :class="getDate < item.clockDate\r\n ? \'card-text5\'\r\n : compareDate(\r\n item.timeSlot,\r\n item.upCreateTime,\r\n item.dnCreateTime\r\n )\r\n ? \' card-text1\'\r\n : \' card-text2\'\r\n ">\r\n <span>{{ getTimeDate(data.day) }}</span>\r\n <span v-if="item.timeSlot" style="font-weight: 500; font-size: 12px">排班:{{ item.timeSlot\r\n }}</span>\r\n <span v-if="item.upCreateTime" style="font-weight: 500; font-size: 12px">上班:{{\r\n setTimeDate(item.upCreateTime) }}</span>\r\n <span v-if="item.dnCreateTime" style="font-weight: 500; font-size: 12px">下班:{{\r\n setTimeDate(item.dnCreateTime) }}</span>\r\n </div>\r\n </div>\r\n <div v-else />\r\n </span>\r\n </div>\r\n </template>\r\n </el-calendar>\r\n </div>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-table v-loading="NursingLoading" border height="30vh" :data="NursingData" style="width: 100%">\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'需要护理次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'实际护理次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <span>{{ row.alreadyNum ? row.alreadyNum : \'-\' }}</span>\r\n </template>\r\n </el-table-column>\r\n\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" size="small" @click="detailsDialogVisible = false">\r\n 关 闭\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="导出" :visible.sync="dialogVisibleExp"\r\n width="30%" :before-close="handleClose">\r\n <el-form ref="dataForm" :model="exportTime" :rules="rules" class="demo-form-inline" label-position="right"\r\n label-width="90px">\r\n <el-row :gutter="20">\r\n <el-col :span="24">\r\n <el-form-item label="提示:">\r\n <el-link :underline="false" type="primary">请根据护理计划的开始日期和结束日期选择时间</el-link>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="时间">\r\n <el-date-picker v-model="exportTime.startDate" style="width: 100%" size="small" type="daterange"\r\n value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="this.expApiName == \'护理计划信息\'" :span="24">\r\n <el-form-item label="护理对象">\r\n <el-select v-model="exportTime.familyId" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="选择护理对象">\r\n <el-option v-for="(item, index) in nurseObject" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="this.expApiName != \'护理计划信息\'" :span="24">\r\n <el-form-item label="计划流水号">\r\n <el-input v-model="exportTime.orderNo" size="small" clearable placeholder="请输入计划流水号" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button size="small" type="primary" :loading="loadExp" @click="expExcel">\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog v-if="unitType == \'机构护理\'" :close-on-click-modal="false" :close-on-press-escape="false" title="打印"\r\n :visible.sync="expObjVisible" width="100%" :before-close="handleClose" top="3vh">\r\n <div id="printDom1" ref="printDom1" class="exptable" border="1">\r\n <div class="thead">\r\n {{ expObj.orderYearMonth }}\r\n </div>\r\n <div class="tbody">\r\n <div class="tr eight">\r\n <div class="title eight_label">参保人姓名</div>\r\n <div class="eight_label">{{ expObj.personName }}</div>\r\n <div class="title eight_label">身份证</div>\r\n <div class="eight_label">{{ expObj.personIdCode }}</div>\r\n <div class="title eight_label">年龄</div>\r\n <div>\r\n {{ expObj.personAge }}\r\n </div>\r\n <div class="title eight_label">参保类型</div>\r\n <div class="eight_label">{{ expObj.medicalType }}</div>\r\n\r\n <div class="title eight_label">制表人</div>\r\n <div class="eight_label">{{ expObj.unitName }}</div>\r\n </div>\r\n <div class="tr eight">\r\n <div class="title eight_label">所属参保区划</div>\r\n <div class="eight_label">{{ expObj.medicalCounty }}</div>\r\n <div class="title eight_label">失能等级</div>\r\n <div class="eight_label">{{ expObj.lv }}</div>\r\n <div class="title eight_label">家属姓名</div>\r\n <div class="eight_label">{{ expObj.familyName }}</div>\r\n \x3c!-- <div class="title eight_label" style="width: 750px;"></div> --\x3e\r\n \x3c!-- <div class="eight_label">{{ expObj.totalPrice }}</div> --\x3e\r\n </div>\r\n <div class="leftXuhao loop">\r\n <div class="num">序号</div>\r\n <div class="name">服务项目</div>\r\n <div class="day headday">\r\n <span>护理服务执行日期及次数</span>\r\n <div class="forday">\r\n <span v-for="i in 31" :key="i">{{ i }}日</span>\r\n </div>\r\n </div>\r\n <div class="total">床日合计</div>\r\n </div>\r\n <div v-for="(item, index) in expObj.list" :key="index" class="tr loop">\r\n <div class="num">{{ index + 1 }}</div>\r\n <div class="name">{{ item.title }}</div>\r\n <div class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div>\r\n <div class="total">{{ item.num }}</div>\r\n </div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">协议服务机构负责人签字:</div>\r\n <div class="day bodyday">家属确认签字按手印:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">盖章:</div>\r\n <div class="day bodyday">日期:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">日期:</div>\r\n </div>\r\n </div>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button v-print="print" size="small" type="primary" :loading="loadExp" @click="onPrint">\r\n 打 印\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n <el-dialog v-if="unitType == \'居家护理\'" :close-on-click-modal="false" :close-on-press-escape="false" title="打印"\r\n :visible.sync="expObjVisible" width="100%" :before-close="handleClose" top="3vh">\r\n <div id="printDom1" ref="printDom1" class="exptable" border="1">\r\n <div class="thead">\r\n {{ expObj.orderYearMonth }}\r\n </div>\r\n <div class="tbody">\r\n <div class="tr eight">\r\n <div class="title eight_label">参保人姓名</div>\r\n <div class="eight_label">{{ expObj.personName }}</div>\r\n <div class="title eight_label">身份证</div>\r\n <div class="eight_label">{{ expObj.personIdCode }}</div>\r\n <div class="title eight_label">年龄</div>\r\n <div>\r\n {{ expObj.personAge }}\r\n </div>\r\n <div class="title eight_label">参保类型</div>\r\n <div class="eight_label">{{ expObj.medicalType }}</div>\r\n\r\n <div class="title eight_label">制表人</div>\r\n <div class="eight_label">{{ expObj.unitName }}</div>\r\n </div>\r\n <div class="tr eight">\r\n <div class="title eight_label">所属参保区划</div>\r\n <div class="eight_label">{{ expObj.medicalCounty }}</div>\r\n <div class="title eight_label">失能等级</div>\r\n <div class="eight_label">{{ expObj.lv }}</div>\r\n <div class="title eight_label">家属姓名</div>\r\n <div class="eight_label">{{ expObj.familyName }}</div>\r\n \x3c!-- <div class="title eight_label" style="width: 750px;"></div> --\x3e\r\n \x3c!-- <div class="eight_label">{{ expObj.totalPrice }}</div> --\x3e\r\n </div>\r\n <div class="leftXuhao loop">\r\n <div class="num">序号</div>\r\n <div class="name">服务项目</div>\r\n <div class="day headday">\r\n <span>护理服务执行日期及护理项目次数(分钟)</span>\r\n <div class="forday">\r\n <span v-for="i in 31" :key="i">{{ i }}日</span>\r\n </div>\r\n </div>\r\n \x3c!-- <div class="total">床日合计</div> --\x3e\r\n </div>\r\n <div v-for="(item, index) in expObj.list" :key="index" class="tr loop">\r\n <div class="num">{{ index + 1 }}</div>\r\n <div class="name">{{ item.title }}</div>\r\n \x3c!-- 当月服务时长单元格合并显示 --\x3e\r\n <div v-if="item.title == \'当月服务总时长(小时)\'" class="day bodyday merged-cell">\r\n {{ item.num }}(小时)\r\n </div>\r\n \x3c!-- 普通日期单元格 --\x3e\r\n <div v-else class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div>\r\n \x3c!-- <div class="day bodyday">\r\n <div class="forday">\r\n <template v-for="i in 31">\r\n <span v-if="Array.isArray(item[`day${i}`])" :key="i">\r\n <p v-for="(items, index) in item[`day${i}`]" :key="index" style="margin: 0;">\r\n {{ items }}\r\n </p>\r\n </span>\r\n <span v-else-if="item.title == \'当月服务时长(小时)\'">{{ item.num }}</span>\r\n <span v-else :key="i">{{ item[`day${i}`] }}</span>\r\n </template>\r\n </div>\r\n </div> --\x3e\r\n \x3c!-- <div class="total">{{ item.num }}</div> --\x3e\r\n </div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">协议服务机构负责人签字:</div>\r\n <div class="day bodyday">家属确认签字按手印:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">盖章:</div>\r\n <div class="day bodyday">日期:</div>\r\n </div>\r\n <div class="handwriting">\r\n <div class="name">日期:</div>\r\n </div>\r\n </div>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button v-print="print" size="small" type="primary" :loading="loadExp" @click="onPrint">\r\n 打 印\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="新增护理项" :visible.sync="dialogVisible"\r\n width="30%">\r\n <el-select v-model="projectList" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择护理项组合" multiple>\r\n <el-option v-for="(item, index) in institutionData" :key="index" :label="item.label" :value="item.value">\r\n <span style="float: left">{{ item.label }}</span>\r\n <span style="float: right; color: #8492a6; font-size: 13px">护理类型:{{ item.type == "01" ? "生活照料" : item.type ==\r\n "02"\r\n ? "精神慰藉" : item.type == "03" ? "安全巡视" : item.type == "04" ? "医疗护理" : item.type == "05" ? "康复护理" : item.type\r\n ==\r\n "06" ? "辅助器具" : item.type == "07" ? "居家护理" : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogVisible = false">取 消</el-button>\r\n <el-button type="primary" size="small" @click="determine">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SProjectAll,\r\n SProjectPlanPage,\r\n SysUnitPage,\r\n SProjectPlanDetail,\r\n WxUserCustomAll,\r\n WxUserFamilyAll,\r\n SPersonAll,\r\n repeatedGeneration,\r\n WxOrderFinish,\r\n getByOrderNo,\r\n SysUnitAll\r\n} from \'@/api/institution\'\r\nimport { wxSettlementInfo, ClockInfo, ClockJsInfo } from \'@/api/settlement\'\r\nimport {\r\n WxOrderPage,\r\n WxOrderSave,\r\n WxOrderDel,\r\n WxOrderSchedulingGetByOrderNo,\r\n WxOrderSchedulingDel,\r\n WxOrderItemgetOrderNoDetails,\r\n WxOrderDetail,\r\n WxOrderItemUserSave,\r\n WxOrderSchedulingSave,\r\n ExportExcel\r\n} from \'@/api/plan\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nimport Vue from \'vue\'\r\nimport Sortable from \'sortablejs\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n var clockDateRules = (rule, value, callback) => {\r\n if (!value) {\r\n callback(new Error(\'请选择排班日期\'))\r\n } else {\r\n callback()\r\n }\r\n }\r\n return {\r\n\r\n renyuanxinxi: [],\r\n institutionList: [],\r\n customerData: [],\r\n checklist: [], // 筛选值\r\n searchContent: \'\',\r\n // 失能等级枚举\r\n disabilityLv: {\r\n \'01\': \'基本正常\',\r\n \'02\': \'轻度失能\',\r\n \'03\': \'中度失能\',\r\n \'04\': \'重度失能Ⅰ级\',\r\n \'05\': \'重度失能ⅠⅠ级\',\r\n \'06\': \'重度失能ⅠⅠⅠ级\',\r\n \'\': \'请选择护理对象\'\r\n },\r\n // 默认时间\r\n calendarTime: \'\',\r\n // 时间跨度的当前月的星期一和结束月份的星期日\r\n rangeTime: [],\r\n exportTime: {\r\n startDate: []\r\n },\r\n unitType: null,\r\n nowdate: new Date(),\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n // startDate: [],\r\n expApi: \'\',\r\n expApiName: \'\',\r\n expBtn: [\r\n {\r\n key: 1,\r\n name: \'导出护理计划\',\r\n api: \'wxOrderInfo\',\r\n fileName: \'护理计划\'\r\n },\r\n {\r\n key: 2,\r\n name: \'导出护理项明细\',\r\n api: \'wxOrderItemInfo\',\r\n fileName: \'护理计划明细\'\r\n },\r\n {\r\n key: 3,\r\n name: \'导出分配信息\',\r\n api: \'wxOrderItemUserInfo\',\r\n fileName: \'护理计划分配信息\'\r\n },\r\n {\r\n key: 4,\r\n name: \'导出排班信息\',\r\n api: \'wxOrderSchedulingInfo\',\r\n fileName: \'护理计划排班信息\'\r\n },\r\n {\r\n key: 5,\r\n name: \'自动生成当月护理计划\',\r\n api: \'repeatedGeneration\',\r\n fileName: \'自动生成当月护理计划信息\'\r\n }\r\n ],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n // 单条数据\r\n workerObj: {},\r\n ruleForm: {\r\n SchedulingData: []\r\n },\r\n value: new Date(),\r\n title: \'排班\',\r\n SchedulingLoading: true,\r\n SchedulingDialogVisible: false,\r\n detailsDialogVisible: false,\r\n expObjVisible: false,\r\n expObj: {},\r\n expObjPrint: {},\r\n templateSelection: \'\',\r\n // 分配护工数据\r\n allocationData: [],\r\n // 分配护工loading\r\n allocationLoading: true,\r\n // 分配模态框\r\n allocationDialogVisible: false,\r\n // 护理类型价格\r\n priceType: null,\r\n // 所有套餐\r\n NursingArrData: [],\r\n // 下单人员\r\n placeOrder: [],\r\n // 护理对象\r\n nurseObject: [],\r\n FormData: {},\r\n fileList: [],\r\n NursingLoading: true,\r\n dialogVisible: false,\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n NursingData: [],\r\n institutionData: [],\r\n institutionArrData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n\r\n rules: {\r\n status: [\r\n { required: true, message: \'请选择审核结果\', trigger: \'change\' }\r\n ],\r\n title: [{ required: true, message: \'请输入套餐名称\', trigger: \'blur\' }],\r\n no: [{ required: true, message: \'请输入套餐编号\', trigger: \'blur\' }],\r\n clockDate: [\r\n { required: true, validator: clockDateRules, trigger: \'blur\' }\r\n ],\r\n startDate: [\r\n { required: true, message: \'请选择计划开始日期\', trigger: \'change\' }\r\n ],\r\n endDate: [\r\n { required: true, message: \'请选择计划结束日期\', trigger: \'change\' }\r\n ],\r\n unitId: [\r\n { required: true, message: \'请选择所属机构\', trigger: \'change\' }\r\n ],\r\n projectPlanId: [\r\n { required: true, message: \'请选择护理内容\', trigger: \'change\' }\r\n ],\r\n priceType: [\r\n { required: true, message: \'请选择护理类型\', trigger: \'change\' }\r\n ],\r\n familyId: [\r\n { required: true, message: \'请选择护理对象\', trigger: \'change\' }\r\n ],\r\n familyLv: [\r\n { required: true, message: \'请选择失能等级\', trigger: \'change\' }\r\n ]\r\n },\r\n data: new Date(),\r\n time: \'\',\r\n temp: {},\r\n setData: [],\r\n // 当月的所有日期天数\r\n dates: [],\r\n downloadLoading: false,\r\n checkAll: false,\r\n dialogVisible: false,\r\n projectList: []\r\n }\r\n },\r\n computed: {\r\n ScheduleDate() {\r\n return function (item) {\r\n let data\r\n if (item.clockDate && item.id) {\r\n data = item.clockDate < this.$moment().format(\'YYYY-MM-DD\')\r\n } else {\r\n data = false\r\n }\r\n return data\r\n }\r\n },\r\n Summary() {\r\n return function (num, projectPrice3) {\r\n return (num * projectPrice3).toFixed(2)\r\n }\r\n },\r\n getTimeDate() {\r\n return function (day) {\r\n if (day) {\r\n return this.$moment(day).format(\'MM月DD号\')\r\n }\r\n }\r\n },\r\n setTimeDate() {\r\n return function (day) {\r\n if (day) {\r\n return this.$moment(day).format(\'HH:mm:ss\')\r\n }\r\n }\r\n },\r\n // 获取当日\r\n getDate() {\r\n return this.$moment().format(\'YYYY-MM-DD\')\r\n },\r\n // 根据时间进行比较\r\n compareDate() {\r\n return function (d1, d2, d3) {\r\n if (d1) {\r\n var index = d1.lastIndexOf(\'-\')\r\n var str1 = d1.substring(index + 1, d1.length) // 下班时间\r\n var str2 = d1.substring(0, index) // 上班时间\r\n // var time = str1 + str2\r\n }\r\n // 判断上下班打卡时间\r\n if (\r\n this.$moment(d2).format(\'HH:mm:ss\') < str2 &&\r\n this.$moment(d3).format(\'HH:mm:ss\') > str1\r\n ) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n updated() {\r\n this.$nextTick(() => {\r\n if (this.$refs[\'standTable\']) {\r\n this.$refs[\'standTable\'].doLayout()\r\n }\r\n })\r\n },\r\n methods: {\r\n initDrag() {\r\n const tbody = document.querySelector(\r\n \'.draggable-table .el-table__body-wrapper tbody\'\r\n )\r\n new Sortable(tbody, {\r\n handle: \'.handle\', // handle\'s class\r\n animation: 150,\r\n // 需要在odEnd方法中处理原始eltable数据,使原始数据与显示数据保持顺序一致\r\n onEnd: ({ newIndex, oldIndex }) => {\r\n const targetRow = this.NursingData[oldIndex]\r\n this.NursingData.splice(oldIndex, 1)\r\n this.NursingData.splice(newIndex, 0, targetRow)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n console.log(this.NursingData)\r\n }\r\n })\r\n },\r\n addNurse() {\r\n this.dialogVisible = true\r\n this.projectList = []\r\n const dataArr = []\r\n if (this.temp.itemList) {\r\n this.temp.itemList.map((item) => {\r\n dataArr.push(item.projectId)\r\n })\r\n this.projectList = dataArr\r\n }\r\n },\r\n determine() {\r\n this.dialogVisible = false\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n for (var i = 0; i < this.projectList.length; i++) {\r\n const arr1 = this.institutionData.find((item, index) => {\r\n item.projectPrice3 = item.price3\r\n item.threePrice = item.threePrice\r\n item.value = item.value\r\n item.type = item.type\r\n return item.value == this.projectList[i]\r\n })\r\n const data = this.NursingData.some((u) => u.value === arr1.value)\r\n if (!data) {\r\n this.NursingData.push(arr1)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n }\r\n }\r\n this.initDrag()\r\n },\r\n // 数组去重\r\n removeDataArr(arr) {\r\n var obj = {}\r\n arr = arr.reduce(function (item, next) {\r\n obj[next.projectId]\r\n ? \'\'\r\n : (obj[next.projectId] = true && item.push(next))\r\n return item\r\n }, [])\r\n return arr\r\n },\r\n handleCheckAllChange(val) {\r\n this.dates.map((item) => {\r\n item.show = !!val\r\n })\r\n // this.checkedCities = val ? cityOptions : [];\r\n },\r\n /**\r\n * 打印\r\n */\r\n onPrint() {\r\n this.$print(this.$refs.printDom1)\r\n },\r\n getExpPrint(v) {\r\n ClockJsInfo({ yearMonth: v }).then((res) => {\r\n if (res.status === 1) {\r\n this.expObjPrint = res.result\r\n }\r\n })\r\n },\r\n PlanexpExcel(row) {\r\n wxSettlementInfo({ id: row.id, orderNo: row.no }).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'结算信息导出\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n })\r\n },\r\n expExcel2(row) {\r\n ClockInfo({ orderNo: row.no }).then((res) => {\r\n if (res.status === 1) {\r\n this.unitType = res.result.unitType\r\n const result = {}\r\n const lastElement = res.result.list[res.result.list.length - 1]\r\n for (const key in lastElement) {\r\n if (\r\n typeof lastElement[key] === \'string\' &&\r\n lastElement[key].includes(\'-\')\r\n ) {\r\n result[key] = lastElement[key].split(/-/)\r\n } else {\r\n result[key] = lastElement[key]\r\n }\r\n }\r\n res.result.list[res.result.list.length - 1] = result\r\n this.expObj = res.result\r\n this.expObjVisible = true\r\n }\r\n })\r\n },\r\n\r\n // 护理对象选择 取 失能等级\r\n familyChange(value) {\r\n if (value) {\r\n const data = this.nurseObject.find((v) => v.value == value)\r\n this.$set(this.temp, \'familyLv\', data.lv)\r\n return\r\n }\r\n this.$set(this.temp, \'familyLv\', \'\')\r\n },\r\n // 日历点击\r\n allcalendar(date, index) {\r\n date.show = !date.show\r\n // this.ruleForm.SchedulingData.push({\r\n // clockDate: date,\r\n // time: [\r\n // this.$moment().startOf("day").add(6, "hours").format("HH:mm"),\r\n // this.$moment().startOf("day").add(10, "hours").format("HH:mm"),\r\n // ],\r\n // isUntime: "",\r\n // });\r\n },\r\n // 合计\r\n getSummaries(param) {\r\n const { columns, data } = param\r\n const sums = []\r\n columns.forEach((column, index) => {\r\n if (index === 0) {\r\n sums[index] = \'总价\'\r\n return\r\n } else if (column.label == \'汇总价格\') {\r\n // const values = data.map(item => Number(item[column.property]));\r\n // 数量\r\n const values = data.map((item) => Number(item[\'num\']))\r\n // 价格\r\n const price = data.map((item) => Number(item[\'projectPrice3\']))\r\n if (!values.every((value) => isNaN(value))) {\r\n sums[index] = values.reduce((prev, curr, index) => {\r\n const value = Number(curr)\r\n if (!isNaN(value)) {\r\n // curr为数量,price为单价,求得每行的金额,再通过reduce累加求和\r\n return prev + curr * price[index]\r\n } else {\r\n return prev\r\n }\r\n }, 0)\r\n // sums[index] += \' 元\';\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n if (sums[index]) {\r\n sums[index] = sums[index].toFixed(2) // 保留2位小数\r\n }\r\n }\r\n })\r\n\r\n return sums\r\n },\r\n expShow(u) {\r\n if (u.key == 5) {\r\n // this.$prompt(\'请选择日期\', \'提示\', {\r\n // confirmButtonText: \'确定\',\r\n // cancelButtonText: \'取消\',\r\n // }).then(({ value }) => {\r\n // this.$message({\r\n // type: \'success\',\r\n // message: \'你的邮箱是: \' + value\r\n // });\r\n // }).catch(() => {\r\n // this.$message({\r\n // type: \'info\',\r\n // message: \'取消输入\'\r\n // });\r\n // });\r\n const h = this.$createElement\r\n var _this = this\r\n this.$msgbox({\r\n title: \'请选择日期\', // 弹框标题\r\n // 弹框信息\r\n message: h(\r\n Vue.component(\'msgboxDatePicker\', {\r\n render(h) {\r\n return h(\'div\', null, [\r\n h(\'el-date-picker\', {\r\n props: {\r\n value: _this.value,\r\n type: \'date\',\r\n valueFormat: \'yyyy-MM-dd\',\r\n placeholder: \'请选择日期\'\r\n },\r\n on: {\r\n input: (v) => {\r\n _this.value = v\r\n _this.$emit(\'input\', v)\r\n },\r\n change: (v) => {\r\n _this.data = v\r\n _this.$emit(\'change\', v)\r\n }\r\n }\r\n })\r\n ])\r\n }\r\n })\r\n ),\r\n showCancelButton: true,\r\n closeOnClickModal: false,\r\n confirmButtonText: \'确定\',\r\n cancelButtonText: \'取消\'\r\n })\r\n .then(() => {\r\n repeatedGeneration({ data: this.data }).then((res) => {\r\n if (res.status == 1) {\r\n _this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n _this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n })\r\n .catch(() => {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'已取消\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n\r\n return\r\n }\r\n this.dialogVisibleExp = true\r\n this.expApi = u.api\r\n this.expApiName = u.fileName\r\n this.exportTime.startDate = []\r\n },\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.expObjVisible = false\r\n this.exportTime.startDate = []\r\n this.expApi = \'\'\r\n this.expApiName = \'\'\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.exportTime.startDate[0],\r\n endDate: this.exportTime.startDate[1],\r\n url: this.expApi,\r\n familyId: this.exportTime.familyId,\r\n orderNo: this.exportTime.orderNo\r\n }\r\n ExportExcel(form)\r\n .then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = this.expApiName\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n complete(row) {\r\n this.$confirm(\'此操作将更新订单状态, 是否继续?\', \'提示\', {\r\n confirmButtonText: \'确定\',\r\n cancelButtonText: \'取消\',\r\n type: \'warning\'\r\n })\r\n .then(() => {\r\n WxOrderFinish({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.getList()\r\n return\r\n }\r\n this.$notify({\r\n title: \'提示\',\r\n message: res.info,\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \'info\',\r\n message: \'已取消\'\r\n })\r\n })\r\n },\r\n details(row) {\r\n // this.rangeTime = [];\r\n WxOrderDetail({ no: row.no }).then((res) => {\r\n this.temp = res.result\r\n if (res.result.clockList || res.result.orderSchedulingList) {\r\n this.calendarTime = this.temp.startDate\r\n // 获取当前日期\r\n // 根据当前日期获取上个月份\r\n const lastMonth = this.$moment(this.temp.startDate)\r\n .clone()\r\n .subtract(1, \'months\')\r\n\r\n // 获取上个月份的最后一天\r\n const lastDayOfLastMonth = lastMonth.endOf(\'month\')\r\n\r\n // 从上个月份的最后一天开始向前查找,直到找到第一个星期一\r\n const lastMondayOfLastMonth = lastDayOfLastMonth\r\n .clone()\r\n .subtract((lastDayOfLastMonth.day() + 6) % 7, \'days\')\r\n\r\n // 获取下个月份\r\n const nextMonth = this.$moment(this.temp.endDate)\r\n .clone()\r\n .add(1, \'months\')\r\n\r\n // 获取下个月的第一天\r\n const firstDayOfNextMonth = nextMonth.startOf(\'month\')\r\n\r\n // 从下个月的第一天开始向后查找,直到找到第一个星期日\r\n const firstSundayOfNextMonth = firstDayOfNextMonth\r\n .clone()\r\n .add((7 - firstDayOfNextMonth.day()) % 7, \'days\')\r\n\r\n // //处理计划开始日期 复制给日历组件\r\n // const firstDayOfMonth = this.$moment(this.temp.startDate).startOf(\'month\'); // 月份的第一天\r\n // const lastDayOfMonth = this.$moment(this.temp.endDate).endOf(\'month\'); // 月份的最后一天\r\n // // 查找第一个星期一\r\n // let currentDay = firstDayOfMonth;\r\n // while (currentDay.isoWeekday() !== 1) {\r\n // currentDay.add(1, \'days\');\r\n // }\r\n // const firstMonday = currentDay.format(\'YYYY-MM-DD\');\r\n // // 查找最后一个星期日\r\n // currentDay = lastDayOfMonth;\r\n // while (currentDay.isoWeekday() !== 7) {\r\n // currentDay.subtract(1, \'days\');\r\n // }\r\n // const sunday = currentDay.format(\'YYYY-MM-DD\');\r\n this.rangeTime = [\r\n lastMondayOfLastMonth.format(\'YYYY-MM-DD\'),\r\n firstSundayOfNextMonth.format(\'YYYY-MM-DD\')\r\n ]\r\n let clockList = []\r\n let orderSchedulingList = []\r\n if (res.result.clockList) {\r\n clockList = res.result.clockList\r\n }\r\n if (res.result.orderSchedulingList) {\r\n orderSchedulingList = res.result.orderSchedulingList\r\n }\r\n const setData = [...clockList, ...orderSchedulingList]\r\n const result = []\r\n const map = new Map()\r\n setData.forEach((item) => {\r\n const key = item.clockDate\r\n if (map.has(key)) {\r\n const existingItem = map.get(key)\r\n existingItem.upCreateTime =\r\n existingItem.upCreateTime || item.upCreateTime\r\n existingItem.dnCreateTime =\r\n existingItem.dnCreateTime || item.dnCreateTime\r\n existingItem.timeSlot = existingItem.timeSlot || item.timeSlot\r\n } else {\r\n map.set(key, item)\r\n }\r\n })\r\n result.push(...map.values())\r\n this.setData = result\r\n }\r\n // const setData = [\r\n // ...res.result.clockList,\r\n // ...res.result.orderSchedulingList,\r\n // ];\r\n // const result = [];\r\n // const map = new Map();\r\n // setData.forEach((item) => {\r\n // const key = item.clockDate;\r\n // if (map.has(key)) {\r\n // const existingItem = map.get(key);\r\n // existingItem.upCreateTime =\r\n // existingItem.upCreateTime || item.upCreateTime;\r\n // existingItem.dnCreateTime =\r\n // existingItem.dnCreateTime || item.dnCreateTime;\r\n // existingItem.timeSlot = existingItem.timeSlot || item.timeSlot;\r\n // } else {\r\n // map.set(key, item);\r\n // }\r\n // });\r\n // result.push(...map.values());\r\n // this.setData = result;\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n console.log(item)\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n WxOrderItemgetOrderNoDetails({ orderNo: row.no }).then((res) => {\r\n this.NursingData = res.result.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.type,\r\n threePrice: item.threePrice ? item.threePrice : \'-\',\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3,\r\n alreadyNum: item.alreadyNum\r\n }\r\n })\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n if (row.pdfUrl) {\r\n this.fileList.push({\r\n name: row.pdfUrl,\r\n url: row.pdfUrl\r\n })\r\n }\r\n this.detailsDialogVisible = true\r\n })\r\n },\r\n\r\n addScheduling() {\r\n this.ruleForm.SchedulingData.push({\r\n clockDate: \'\',\r\n time: [\r\n this.$moment().startOf(\'day\').add(6, \'hours\').format(\'HH:mm\'),\r\n this.$moment().startOf(\'day\').add(10, \'hours\').format(\'HH:mm\')\r\n ],\r\n isUntime: \'\'\r\n })\r\n },\r\n changeInput(item) {\r\n console.log(item)\r\n if (item.isUntime == 0) {\r\n item.time = [\r\n this.$moment().startOf(\'day\').format(\'HH:mm\'),\r\n this.$moment().endOf(\'day\').format(\'HH:mm\')\r\n ]\r\n } else {\r\n item.time = [\r\n this.$moment().startOf(\'day\').add(6, \'hours\').format(\'HH:mm\'),\r\n this.$moment().startOf(\'day\').add(10, \'hours\').format(\'HH:mm\')\r\n ]\r\n }\r\n },\r\n removeDomain(item, index) {\r\n if (this.title == \'新增排班\') {\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n return\r\n }\r\n if (item.id) {\r\n WxOrderSchedulingDel({ id: item.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n return\r\n }\r\n this.ruleForm.SchedulingData.splice(index, 1)\r\n },\r\n SchedulingConfirmation() {\r\n if (!this.time) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'请选择排班时间\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n const result = this.dates.some((item) => {\r\n return item.show === true\r\n })\r\n if (!result) {\r\n this.$notify({\r\n title: \'提示\',\r\n message: \'请选择排班日期\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n const temp = {}\r\n const orderSchedulingList = []\r\n for (let i = 0; i < this.dates.length; i++) {\r\n if (this.dates[i].show) {\r\n orderSchedulingList.push({\r\n clockDate: this.dates[i].dataTime,\r\n IsUntime: \'1\',\r\n timeSlot: `${this.time[0]}-${this.time[1]}`\r\n })\r\n }\r\n }\r\n temp.orderNo = this.temp.no\r\n temp.orderSchedulingList = orderSchedulingList\r\n WxOrderSchedulingSave(temp).then((res) => {\r\n if (res.status == 1) {\r\n this.SchedulingDialogVisible = false\r\n this.SchedulingLoading = false\r\n this.checkAll = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'排班成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'排班失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n // 排班方法\r\n Scheduling(row) {\r\n this.dates = []\r\n // console.log(this.temp.startDate.format(\'MM\'));\r\n this.temp = row\r\n const dates = this.getAllDatesOfMonth(\r\n this.$moment(this.temp.startDate).format(\'YYYY\'),\r\n this.$moment(this.temp.startDate).format(\'MM\')\r\n )\r\n dates.forEach((date) => {\r\n const dataTime = this.$moment(date).format(\'YYYY-MM-DD\')\r\n this.dates.push({\r\n show: false,\r\n dataTime: dataTime\r\n })\r\n })\r\n this.ruleForm.SchedulingData = []\r\n this.SchedulingDialogVisible = true\r\n this.SchedulingLoading = true\r\n setTimeout(() => {\r\n WxOrderSchedulingGetByOrderNo({ orderNo: row.no }).then((res) => {\r\n if (res.result.length > 0) {\r\n this.title = \'编辑排班\'\r\n this.ruleForm.SchedulingData = res.result.map((item) => {\r\n for (var i = 0; i < this.dates.length; i++) {\r\n if (this.dates[i].dataTime == item.clockDate) {\r\n this.dates[i].show = true\r\n }\r\n }\r\n item.isUntime = Number(item.isUntime)\r\n item.time = item.timeSlot.split(\'-\')\r\n return item\r\n })\r\n this.time = this.ruleForm.SchedulingData[0].time\r\n // this.dates = res.result.map((item) => {\r\n // return {\r\n // detaTime:item.clockDate\r\n // }\r\n // })\r\n } else {\r\n this.title = \'新增排班\'\r\n }\r\n })\r\n this.SchedulingLoading = false\r\n }, 100)\r\n },\r\n // 获取当月日期\r\n getAllDatesOfMonth(year, month) {\r\n const dates = []\r\n const startDate = this.$moment([year, month - 1, 1])\r\n const endDate = startDate.clone().endOf(\'month\')\r\n const currentDate = startDate\r\n while (\r\n currentDate.isBefore(endDate) ||\r\n currentDate.isSame(endDate, \'day\')\r\n ) {\r\n dates.push(currentDate.clone())\r\n currentDate.add(1, \'days\')\r\n }\r\n return dates\r\n },\r\n confirm() {\r\n if (!this.templateSelection) {\r\n this.$message({\r\n message: \'请选择护工\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return\r\n }\r\n WxOrderItemUserSave(this.workerObj).then((res) => {\r\n if (res.status == 1) {\r\n this.allocationDialogVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'分配成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n this.templateSelection = \'\'\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'分配失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n singleElection(row) {\r\n this.templateSelection = row.id\r\n this.workerObj.personId = this.templateSelection\r\n // let aaaa = this.allocationData.filter((item) => item.id === row.id)\r\n },\r\n selectTable(e) {\r\n const oldArr = JSON.parse(JSON.stringify(this.allocationData))\r\n let arr\r\n if (e.trim()) {\r\n arr = oldArr.filter((item) => {\r\n return Object.keys(item).some((key) => {\r\n return String(item[\'name\']).toLowerCase().match(e.trim())\r\n })\r\n })\r\n } else {\r\n arr = this.allocationData\r\n }\r\n this.checklist = arr\r\n },\r\n // 分配护工\r\n allocation(row) {\r\n // if (row.status == "1" || row.status == "2") {\r\n // this.$message({\r\n // message: "进行中或已完成不允许分配护工",\r\n // type: "warning",\r\n // });\r\n // return;\r\n // }\r\n // if (row.personId) {\r\n // this.$message({\r\n // message: "当前护理计划已分配护工",\r\n // type: "warning",\r\n // });\r\n // return;\r\n // }\r\n this.workerObj.orderNo = row.no\r\n this.allocationDialogVisible = true\r\n SPersonAll().then((res) => {\r\n this.allocationData = res.result\r\n this.checklist = res.result\r\n })\r\n setTimeout(() => {\r\n this.allocationLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n changePrice(value) {\r\n this.priceType = value\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'PDF\', \'pdf\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能pdf文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `${this.$constant.imgAddr}${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadPDF(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.pdfUrl = res.result.url\r\n }\r\n })\r\n },\r\n nurseDelete(row, index) {\r\n if (this.temp.projectPlanId == \'1\') {\r\n this.NursingData.splice(index, 1)\r\n return\r\n }\r\n this.$message({\r\n message: \'套餐内的护理项不能删除\',\r\n type: \'warning\'\r\n })\r\n // this.NursingData.splice(index, 1);\r\n },\r\n modify(row) {\r\n row.edit = true\r\n },\r\n InputBlur(row) {\r\n row.edit = false\r\n },\r\n getinstitution() {\r\n SProjectAll().then((response) => {\r\n this.institutionData = response.result.map((item, index) => {\r\n return {\r\n label: item.title,\r\n type: item.type,\r\n value: item.id,\r\n threePrice: item.threePrice,\r\n price1: item.price1,\r\n price3: item.price3,\r\n edit: false,\r\n num: \'1\',\r\n projectId: item.id\r\n }\r\n })\r\n })\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionArrData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n WxUserCustomAll().then((response) => {\r\n this.placeOrder = response.result.map((item, index) => {\r\n return { label: item.nickName, value: item.id }\r\n })\r\n })\r\n WxUserFamilyAll().then((response) => {\r\n this.nurseObject = response.result.map((item, index) => {\r\n return {\r\n label: item.name,\r\n value: item.id,\r\n isDelete: item.isDelete,\r\n lv: item.lv ? item.lv : \'\'\r\n }\r\n })\r\n })\r\n },\r\n getList() {\r\n // this.listLoading = true;\r\n const form = JSON.parse(JSON.stringify(this.listQuery))\r\n if (form.playTime) {\r\n form.startDate = form.playTime[0]\r\n form.endDate = form.playTime[1]\r\n delete form.playTime\r\n }\r\n WxOrderPage(form).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n // setTimeout(() => {\r\n // this.listLoading = false;\r\n // }, 1.5 * 1000);\r\n })\r\n WxUserFamilyAll().then((res) => {\r\n this.customerData = res.result.map((item) => {\r\n return { label: item.name, value: item.name }\r\n })\r\n })\r\n SysUnitAll().then((res) => {\r\n this.institutionList = res.result.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n SPersonAll().then((res) => {\r\n this.renyuanxinxi = res.result.map((item) => {\r\n return { label: item.name, value: item.name }\r\n })\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n // 新增护理项\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n edit(row) {\r\n if (row.status == \'2\') {\r\n this.$message({\r\n message: \'已完成不允许编辑\',\r\n type: \'warning\'\r\n })\r\n return\r\n }\r\n this.dialogStatus = \'update\'\r\n this.dialogFormVisible = true\r\n this.temp = row\r\n this.fileList = []\r\n this.NursingData = []\r\n this.NursingArrData = []\r\n SProjectPlanPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.NursingArrData = response.result.data.map((item) => {\r\n return { label: item.title, value: item.id }\r\n })\r\n this.NursingArrData.unshift({ label: \'自定义护理项目\', value: \'1\' })\r\n })\r\n WxOrderItemgetOrderNoDetails({ orderNo: row.no }).then((res) => {\r\n this.NursingData = res.result.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.type,\r\n threePrice: item.threePrice ? item.threePrice : \'-\',\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3\r\n }\r\n })\r\n })\r\n if (row.pdfUrl) {\r\n this.fileList.push({\r\n name: row.pdfUrl,\r\n url: row.pdfUrl\r\n })\r\n }\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n // 获取套餐里的列表\r\n NursingChange(value) {\r\n console.log(value)\r\n if (value == \'1\') {\r\n // SProjectAll().then((response) => {\r\n // this.NursingData = response.result.map((item, index) => {\r\n // return {\r\n // label: item.title,\r\n // value: item.id,\r\n // projectPrice1: item.price1,\r\n // projectPrice2: item.price2,\r\n // projectPrice3: item.price3,\r\n // type: item.type,\r\n // edit: false,\r\n // num: item.num ? item.num : \'1\',\r\n // projectId: item.id,\r\n // };\r\n // });\r\n // });\r\n this.NursingData = []\r\n } else {\r\n SProjectPlanDetail({ id: value }).then((res) => {\r\n if (res.result.itemList) {\r\n this.NursingData = res.result.itemList.map((item, index) => {\r\n return {\r\n sort: index + 1,\r\n edit: false,\r\n label: item.projectTitle,\r\n projectId: item.projectId,\r\n num: item.num,\r\n type: item.projectType,\r\n projectPrice1: item.projectPrice1,\r\n projectPrice2: item.projectPrice2,\r\n projectPrice3: item.projectPrice3\r\n }\r\n })\r\n }\r\n })\r\n }\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n this.temp.orderItemSaveList = this.NursingData\r\n WxOrderSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n this.temp.orderItemSaveList = this.NursingData\r\n WxOrderSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n handleDelete(row, index) {\r\n if (row.status == \'1\' || row.status == \'2\') {\r\n this.$message({\r\n message: \'进行中或已完成不允许删除\',\r\n type: \'warning\'\r\n })\r\n return\r\n }\r\n WxOrderDel({ orderNo: row.no }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.addButton {\r\n margin: 0 0 10px 0;\r\n}\r\n\r\n::v-deep .el-dialog__body {\r\n padding: 0px 20px;\r\n}\r\n\r\n::v-deep .el-calendar-table .el-calendar-day {\r\n padding: 0;\r\n}\r\n\r\n.is-selected {\r\n color: #1989fa;\r\n background: yellow;\r\n}\r\n\r\n.is-add-selected {\r\n color: #fff;\r\n background: #1989fa;\r\n}\r\n\r\n$titleHeight: 100%;\r\n$redColor: rgba(255, 0, 0, 0.8);\r\n$lowColor: rgba(217, 210, 53, 0.8);\r\n$middleColor: rgba(64, 158, 255, 0.8);\r\n$heightColor: #f00;\r\n\r\n@mixin card-o($bgColor) {\r\n position: relative;\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n font-size: 15px;\r\n color: #fff;\r\n background-color: $bgColor;\r\n}\r\n\r\n@mixin card-text-o($bgColor) {\r\n display: flex;\r\n flex-direction: column;\r\n // justify-content: space-between;\r\n height: $titleHeight;\r\n max-height: $titleHeight;\r\n min-height: $titleHeight;\r\n font-size: 12px;\r\n color: #fff;\r\n background-color: $bgColor;\r\n}\r\n\r\n.calendar-dialog {\r\n .card-group {\r\n width: 100%;\r\n height: 100%;\r\n\r\n .card-calendar-text {\r\n height: $titleHeight;\r\n max-height: $titleHeight;\r\n min-height: $titleHeight;\r\n padding: 8px;\r\n }\r\n\r\n .card {\r\n position: relative;\r\n top: -$titleHeight;\r\n }\r\n\r\n .card-flag {\r\n height: 100%;\r\n }\r\n\r\n .card1 {\r\n @include card-o($middleColor);\r\n }\r\n\r\n .card-text1 {\r\n @include card-text-o($middleColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text2 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text3 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text4 {\r\n @include card-text-o($redColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card-text5 {\r\n @include card-text-o($lowColor);\r\n height: 100%;\r\n padding: 8px;\r\n font-size: 14px;\r\n }\r\n\r\n .card2 {\r\n @include card-o($lowColor);\r\n }\r\n\r\n // .card-text2 {\r\n // @include card-text-o($lowColor);\r\n // }\r\n\r\n .card3 {\r\n @include card-o($heightColor);\r\n }\r\n\r\n .card-text3 {\r\n @include card-text-o($heightColor);\r\n }\r\n\r\n .visits-val {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-calendar__button-group {\r\n display: none;\r\n}\r\n\r\n.is-selected {\r\n color: #1989fa;\r\n}\r\n\r\n.activeItem {\r\n color: red;\r\n}\r\n\r\n.el-calendar-table td.is-today {\r\n color: #000 !important;\r\n background: transparent !important;\r\n}\r\n\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.exptable {\r\n font-size: 9px;\r\n text-align: center;\r\n width: 100%;\r\n\r\n // line-height: 26px;\r\n .leftXuhao {\r\n display: flex;\r\n border-bottom: 1px solid #333;\r\n\r\n div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-right: 1px solid #333;\r\n }\r\n }\r\n\r\n .thead {\r\n // border: 1px solid #333;\r\n border-bottom: 0;\r\n color: #000;\r\n padding: 8px 0;\r\n }\r\n\r\n .tbody {\r\n border: 1px solid #333;\r\n font-size: 8px;\r\n }\r\n\r\n .tr {\r\n display: flex;\r\n border-bottom: 1px solid #333;\r\n color: #111;\r\n\r\n div {\r\n // flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-right: 1px solid #333;\r\n // padding: 5px 2px;\r\n }\r\n\r\n .bodyday {\r\n flex: 1;\r\n }\r\n\r\n div:last-child {\r\n border-right: 0;\r\n }\r\n }\r\n\r\n .eight div {\r\n flex: 1;\r\n // width: calc((100% - 120px * 8) / 8);\r\n padding: 5px 0;\r\n }\r\n\r\n .eight .title {\r\n width: 110px;\r\n flex: none;\r\n }\r\n\r\n .tr:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n .loop {\r\n .num {\r\n width: 22px !important;\r\n }\r\n\r\n .total {\r\n width: 23px;\r\n padding: 5px 0;\r\n }\r\n\r\n // .day {\r\n // width: calc(27px * 27);\r\n // }\r\n .name {\r\n // flex: 1;\r\n padding: 5px 0;\r\n // width: 300px !important;\r\n flex: 0.1;\r\n }\r\n\r\n .headday {\r\n flex-flow: column;\r\n flex: 1;\r\n\r\n .forday {\r\n border-top: 1px solid #333;\r\n }\r\n }\r\n\r\n .day span {\r\n padding: 10px 0;\r\n }\r\n\r\n .forday {\r\n display: table;\r\n width: 100%;\r\n\r\n // height: 100%;\r\n span {\r\n display: table-cell;\r\n vertical-align: middle;\r\n border-right: 1px solid #333;\r\n width: 23px;\r\n height: 100%;\r\n overflow: hidden;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n\r\n span:last-child {\r\n border-right: 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.handwriting {\r\n display: flex;\r\n\r\n div {\r\n text-align: right;\r\n padding: 5px 0;\r\n }\r\n\r\n .name {\r\n margin-left: 60px;\r\n width: 120px;\r\n }\r\n\r\n .bodyday {\r\n width: 60%;\r\n margin-right: 60px;\r\n }\r\n}\r\n\r\n.exptableprint {\r\n font-size: 11px;\r\n\r\n .tbody {\r\n font-size: 10px;\r\n }\r\n}\r\n\r\n.list {\r\n padding: 15px;\r\n // background-color: #baf;\r\n // 设置父元素成为弹性盒\r\n display: flex;\r\n // 让弹性盒元素在必要的时候拆行\r\n flex-wrap: wrap;\r\n\r\n .item {\r\n // background-color: deeppink;\r\n border: 1px solid #ede9e9;\r\n height: 70px;\r\n padding: 10px;\r\n cursor: pointer;\r\n // 每个元素都要设置右边距margin-right(每个元素的左右间隙)\r\n // 同时设置下边距margin-bottom(每个元素的上下间隙)\r\n // margin: 0 1px 1px 0;\r\n width: calc((100% - 50px) / 7);\r\n // 这里一行显示4个,所以是/4,一行显示几个就除以几\r\n // 这里的60rpx = (分布个数4-1)*间隙20rpx, 可以根据实际的分布个数和间隙区调整\r\n min-width: calc((100% - 30px) / 7);\r\n max-width: calc((100% - 30px) / 7);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 12px;\r\n\r\n // 每行最右侧的那个不设置右外边距\r\n &:nth-child(7n + 7) {\r\n margin-bottom: 0;\r\n }\r\n }\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.addButton {\n margin: 0 0 10px 0;\n}\n\n::v-deep .el-dialog__body {\n padding: 0px 20px;\n}\n\n::v-deep .el-calendar-table .el-calendar-day {\n padding: 0;\n}\n\n.is-selected {\n color: #1989fa;\n background: yellow;\n}\n\n.is-add-selected {\n color: #fff;\n background: #1989fa;\n}\n\n.calendar-dialog .card-group {\n width: 100%;\n height: 100%;\n}\n.calendar-dialog .card-group .card-calendar-text {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n padding: 8px;\n}\n.calendar-dialog .card-group .card {\n position: relative;\n top: -100%;\n}\n.calendar-dialog .card-group .card-flag {\n height: 100%;\n}\n.calendar-dialog .card-group .card1 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n}\n.calendar-dialog .card-group .card-text1 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(64, 158, 255, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text2 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text3 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text4 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(255, 0, 0, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card-text5 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n height: 100%;\n padding: 8px;\n font-size: 14px;\n}\n.calendar-dialog .card-group .card2 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: rgba(217, 210, 53, 0.8);\n}\n.calendar-dialog .card-group .card3 {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n font-size: 15px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .card-text3 {\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n font-size: 12px;\n color: #fff;\n background-color: #f00;\n}\n.calendar-dialog .card-group .visits-val {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n\n::v-deep .el-calendar__button-group {\n display: none;\n}\n\n.is-selected {\n color: #1989fa;\n}\n\n.activeItem {\n color: red;\n}\n\n.el-calendar-table td.is-today {\n color: #000 !important;\n background: transparent !important;\n}\n\n.el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.exptable {\n font-size: 9px;\n text-align: center;\n width: 100%;\n}\n.exptable .leftXuhao {\n display: flex;\n border-bottom: 1px solid #333;\n}\n.exptable .leftXuhao div {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .thead {\n border-bottom: 0;\n color: #000;\n padding: 8px 0;\n}\n.exptable .tbody {\n border: 1px solid #333;\n font-size: 8px;\n}\n.exptable .tr {\n display: flex;\n border-bottom: 1px solid #333;\n color: #111;\n}\n.exptable .tr div {\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #333;\n}\n.exptable .tr .bodyday {\n flex: 1;\n}\n.exptable .tr div:last-child {\n border-right: 0;\n}\n.exptable .eight div {\n flex: 1;\n padding: 5px 0;\n}\n.exptable .eight .title {\n width: 110px;\n flex: none;\n}\n.exptable .tr:last-child {\n border-bottom: 0;\n}\n.exptable .loop .num {\n width: 22px !important;\n}\n.exptable .loop .total {\n width: 23px;\n padding: 5px 0;\n}\n.exptable .loop .name {\n padding: 5px 0;\n flex: 0.1;\n}\n.exptable .loop .headday {\n flex-flow: column;\n flex: 1;\n}\n.exptable .loop .headday .forday {\n border-top: 1px solid #333;\n}\n.exptable .loop .day span {\n padding: 10px 0;\n}\n.exptable .loop .forday {\n display: table;\n width: 100%;\n}\n.exptable .loop .forday span {\n display: table-cell;\n vertical-align: middle;\n border-right: 1px solid #333;\n width: 23px;\n height: 100%;\n overflow: hidden;\n word-wrap: break-word;\n word-break: break-all;\n}\n.exptable .loop .forday span:last-child {\n border-right: 0;\n}\n\n.handwriting {\n display: flex;\n}\n.handwriting div {\n text-align: right;\n padding: 5px 0;\n}\n.handwriting .name {\n margin-left: 60px;\n width: 120px;\n}\n.handwriting .bodyday {\n width: 60%;\n margin-right: 60px;\n}\n\n.exptableprint {\n font-size: 11px;\n}\n.exptableprint .tbody {\n font-size: 10px;\n}\n\n.list {\n padding: 15px;\n display: flex;\n flex-wrap: wrap;\n}\n.list .item {\n border: 1px solid #ede9e9;\n height: 70px;\n padding: 10px;\n cursor: pointer;\n width: calc((100% - 50px) / 7);\n min-width: calc((100% - 30px) / 7);\n max-width: calc((100% - 30px) / 7);\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n}\n.list .item:nth-child(7n+7) {\n margin-bottom: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$9="data-v-36b0c510",__vue_module_identifier__$9=void 0,__vue_is_functional_template__$9=!1,__vue_component__$9=normalizeComponent({render:__vue_render__$9,staticRenderFns:__vue_staticRenderFns__$9},__vue_inject_styles__$9,__vue_script__$9,__vue_scope_id__$9,__vue_is_functional_template__$9,__vue_module_identifier__$9,!1,createInjector,void 0,void 0);var script$8={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({dialogVisibleExp:!1,loadExp:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},fileList:[],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},institutionData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{type:[{required:!0,message:"请选择护理类型",trigger:"change"}],title:[{required:!0,message:"请输入护理机构名称",trigger:"blur"}],startTime:[{required:!0,message:"请选择有效开始时间",trigger:"change"}],endTime:[{required:!0,message:"请选择有效结束时间",trigger:"change"}],hourNum:[{required:!0,message:"请输入护理参考时间",trigger:"blur"}],description:[{required:!0,message:"请输入详情",trigger:"blur"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}]},temp:{},downloadLoading:!1}),created(){this.getList(),this.getinstitution()},methods:{handleClose(){this.dialogVisibleExp=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcel$1(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理项信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`http://192.168.1.21/img/${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadTP(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.picUrl=e.result.url)})},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionData=e.result.data.map(e=>({label:e.name,value:e.id}))})},getList(){this.listLoading=!0,SProjectPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},synchronization(){SProjectTake().then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"同步成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"同步失败",type:"error",duration:2e3})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.fileList=[]},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{e&&SProjectSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})})})},updateData(){this.$refs.dataForm.validate(e=>{e&&SProjectSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})})},edit(e){this.fileList=[],this.temp=e,this.dialogStatus="update",this.dialogFormVisible=!0,e.picUrl&&this.fileList.push({name:e.picUrl,url:e.picUrl})},handleDelete(e,t){SProjectDel({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}}};const __vue_script__$8=script$8;var __vue_render__$8=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"护理项目名称",prop:"title"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入护理项目名称"},model:{value:e.listQuery.title,callback:function(t){e.$set(e.listQuery,"title",t)},expression:"listQuery.title"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"状态",prop:"status"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.listQuery.status,callback:function(t){e.$set(e.listQuery,"status",t)},expression:"listQuery.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item"),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"护理项目编号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理项目名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.title))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"类别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"生活照料":"02"==r.type?"精神慰藉":"03"==r.type?"安全巡视":"04"==r.type?"医疗护理":"05"==r.type?"康复护理":"06"==r.type?"辅助器具":"07"==r.type?"居家护理":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构上门护理价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.price1))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"省厅价格",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.threePrice))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"参考护理时间(小时)",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.hourNum))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"1"==r.status?"success":"2"==r.status?"warning":""}},[e._v(e._s("1"==r.status?"启用":"2"==r.status?"下架":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"海报",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[r.picUrl?n("el-image",{staticStyle:{width:"50px",height:"50px"},attrs:{src:"http://192.168.1.21/img/"+r.picUrl,"preview-src-list":["http://192.168.1.21/img/"+r.picUrl]}}):n("span",[e._v(" - ")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属机构名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"详情",align:"center",width:"300"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.description))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"150","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"50%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项目名称",prop:"title"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入护理项目名称",size:"small"},model:{value:e.temp.title,callback:function(t){e.$set(e.temp,"title",t)},expression:"temp.title"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理类型",prop:"type"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理类型"},model:{value:e.temp.type,callback:function(t){e.$set(e.temp,"type",t)},expression:"temp.type"}},e._l([{label:"生活服务",value:"1"},{label:"医疗护理",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构上门护理价格",prop:"price1"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入机构上门护理价格",size:"small"},model:{value:e.temp.price1,callback:function(t){e.$set(e.temp,"price1",t)},expression:"temp.price1"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"亲情护理价格",prop:"price2"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入亲情护理价格",size:"small"},model:{value:e.temp.price2,callback:function(t){e.$set(e.temp,"price2",t)},expression:"temp.price2"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构护理价格",prop:"price3"}},[n("el-input",{attrs:{placeholder:"请输入机构护理价格",clearable:"",size:"small"},model:{value:e.temp.price3,callback:function(t){e.$set(e.temp,"price3",t)},expression:"temp.price3"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"参考护理时间(小时)",prop:"hourNum"}},[n("el-input",{attrs:{placeholder:"请输入参考护理时间(小时)",clearable:"",size:"small"},model:{value:e.temp.hourNum,callback:function(t){e.$set(e.temp,"hourNum",t)},expression:"temp.hourNum"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"有效开始时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请选择有效开始时间"},model:{value:e.temp.startTime,callback:function(t){e.$set(e.temp,"startTime",t)},expression:"temp.startTime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"有效结束时间"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{size:"small",format:"yyyy 年 MM 月 dd 日","value-format":"yyyy-MM-dd",type:"date",placeholder:"请输入有效结束时间"},model:{value:e.temp.endTime,callback:function(t){e.$set(e.temp,"endTime",t)},expression:"temp.endTime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.temp.status,callback:function(t){e.$set(e.temp,"status",t)},expression:"temp.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"项目海报",prop:"picUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"详情",prop:"description"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入详情",type:"textarea",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1)],1)},__vue_staticRenderFns__$8=[];__vue_render__$8._withStripped=!0;const __vue_inject_styles__$8=function(e){e&&e("data-v-ddd4d53a_0",{source:".el-col-12[data-v-ddd4d53a] {\n padding: 0 20px 0 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\nurseProjects\\NursingProjects\\index.vue","index.vue"],names:[],mappings:"AAmjBA;EACA,mBAAA;ACljBA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="护理项目名称" prop="title">\r\n <el-input v-model="listQuery.title" size="small" placeholder="请输入护理项目名称" />\r\n </el-form-item>\r\n <el-form-item label="状态" prop="status">\r\n <el-select v-model="listQuery.status" style="width: 100%" clearable filterable size="small"\r\n class="filter-item" placeholder="请选择状态">\r\n <el-option v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n \x3c!-- <el-button size="small" type="success" @click="synchronization">同步护理项</el-button> --\x3e\r\n \x3c!-- <el-button size="small" type="success" @click="add">新增</el-button> --\x3e\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="dialogVisibleExp = true">导出</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n \x3c!-- @sort-change="sortChange" --\x3e\r\n <el-table-column :label="\'护理项目编号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项目名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.title }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'类别\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium">{{\r\n row.type == "01" ? "生活照料" : row.type == "02" ? "精神慰藉" : row.type == "03" ? "安全巡视" : row.type == "04" ?\r\n "医疗护理" : row.type == "05" ? "康复护理" : row.type == "06" ? "辅助器具" : row.type == "07" ? "居家护理" : \'-\'\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构上门护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price1 }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'亲情护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price2 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构护理价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price3 }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'省厅价格\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.threePrice }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'参考护理时间(小时)\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.hourNum }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-tag size="medium" :type="row.status == \'1\' ? \'success\' : row.status == \'2\' ? \'warning\' : \'\'\r\n ">{{\r\n row.status == "1" ? "启用" : row.status == "2" ? "下架" : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'海报\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-image v-if="row.picUrl" style="width: 50px; height: 50px" :src="`http://192.168.1.21/img/${row.picUrl}`"\r\n :preview-src-list="[`http://192.168.1.21/img/${row.picUrl}`]" />\r\n <span v-else> - </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属机构名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'详情\'" align="center" width="300">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'操作\'" align="center" width="150" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="50%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="150px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="护理项目名称" prop="title">\r\n <el-input v-model="temp.title" clearable placeholder="请输入护理项目名称" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理类型" prop="type">\r\n <el-select v-model="temp.type" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择护理类型">\r\n <el-option v-for="(item, index) in [\r\n { label: \'生活服务\', value: \'1\' },\r\n { label: \'医疗护理\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构上门护理价格" prop="price1">\r\n <el-input v-model="temp.price1" clearable placeholder="请输入机构上门护理价格" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="亲情护理价格" prop="price2">\r\n <el-input v-model="temp.price2" clearable placeholder="请输入亲情护理价格" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构护理价格" prop="price3">\r\n <el-input v-model="temp.price3" placeholder="请输入机构护理价格" clearable size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="参考护理时间(小时)" prop="hourNum">\r\n <el-input v-model="temp.hourNum" placeholder="请输入参考护理时间(小时)" clearable size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="有效开始时间">\r\n <el-date-picker v-model="temp.startTime" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请选择有效开始时间" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="有效结束时间">\r\n <el-date-picker v-model="temp.endTime" size="small" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"\r\n style="width: 100%" type="date" placeholder="请输入有效结束时间" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="状态">\r\n <el-select v-model="temp.status" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择状态">\r\n <el-option v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select v-model="temp.unitId" style="width: 100%" clearable filterable size="small" class="filter-item"\r\n placeholder="请选择所属机构">\r\n <el-option v-for="(item, index) in institutionData" :key="index" :label="item.label"\r\n :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="项目海报" prop="picUrl">\r\n <el-upload action="#" :limit="1" :data="FormData" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :file-list="fileList" :on-preview="onPreview">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="详情" prop="description">\r\n <el-input v-model="temp.description" clearable placeholder="请输入详情" type="textarea" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button type="primary" size="small" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="导出" :visible.sync="dialogVisibleExp"\r\n width="600px" :before-close="handleClose">\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link :underline="false" type="primary">选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker v-model="startDate" type="daterange" value-format="yyyy-MM-dd" range-separator="至"\r\n start-placeholder="开始日期" end-placeholder="结束日期" />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" :loading="loadExp" @click="handleClose">取 消</el-button>\r\n <el-button size="small" type="primary" :loading="loadExp" @click="expExcel">\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SysUnitPage,\r\n SProjectPage,\r\n SProjectDel,\r\n SProjectSave,\r\n ExportExcel,\r\n SProjectTake\r\n} from \'@/api/institution\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n startDate: [],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n FormData: {},\r\n fileList: [],\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n institutionData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n type: [\r\n { required: true, message: \'请选择护理类型\', trigger: \'change\' }\r\n ],\r\n title: [\r\n { required: true, message: \'请输入护理机构名称\', trigger: \'blur\' }\r\n ],\r\n startTime: [\r\n { required: true, message: \'请选择有效开始时间\', trigger: \'change\' }\r\n ],\r\n endTime: [\r\n { required: true, message: \'请选择有效结束时间\', trigger: \'change\' }\r\n ],\r\n hourNum: [\r\n { required: true, message: \'请输入护理参考时间\', trigger: \'blur\' }\r\n ],\r\n description: [\r\n { required: true, message: \'请输入详情\', trigger: \'blur\' }\r\n ],\r\n unitId: [\r\n { required: true, message: \'请选择所属机构\', trigger: \'change\' }\r\n ]\r\n },\r\n temp: {},\r\n downloadLoading: false\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n methods: {\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.startDate = []\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcel(form).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理项信息\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\'YYYY-MM-DD\')}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'png\', \'PNG\', \'jpg\', \'JPG\', \'jpeg\', \'JPEG\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能图片文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `http://192.168.1.21/img/${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadTP(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.picUrl = res.result.url\r\n }\r\n })\r\n },\r\n getinstitution() {\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n },\r\n getList() {\r\n this.listLoading = true\r\n SProjectPage(this.listQuery).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n setTimeout(() => {\r\n this.listLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n synchronization() {\r\n SProjectTake().then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'同步成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'同步失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n },\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.fileList = []\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n // this.temp.id = parseInt(Math.random() * 100) + 1024 // mock a id\r\n // this.temp.author = \'vue-element-admin\'\r\n SProjectSave(this.temp).then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n edit(row) {\r\n this.fileList = []\r\n this.temp = row\r\n this.dialogStatus = \'update\'\r\n this.dialogFormVisible = true\r\n if (row.picUrl) {\r\n this.fileList.push({\r\n name: row.picUrl,\r\n url: row.picUrl\r\n })\r\n }\r\n },\r\n handleDelete(row, index) {\r\n SProjectDel({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n // this.list.splice(index, 1)\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$8="data-v-ddd4d53a",__vue_module_identifier__$8=void 0,__vue_is_functional_template__$8=!1,__vue_component__$8=normalizeComponent({render:__vue_render__$8,staticRenderFns:__vue_staticRenderFns__$8},__vue_inject_styles__$8,__vue_script__$8,__vue_scope_id__$8,__vue_is_functional_template__$8,__vue_module_identifier__$8,!1,createInjector,void 0,void 0);var script$7={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({height:"20vh",show:!0,tableShow:!0,dialogVisibleExp:!1,loadExp:!1,dialogVisibleExp2:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},fileList:[],NursingLoading:!0,dialogVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},NursingData:[],institutionData:[],institutionArrData:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{type:[{required:!0,message:"请选择护理机构类型",trigger:"change"}],title:[{required:!0,message:"请输入套餐名称",trigger:"blur"}],no:[{required:!0,message:"请输入套餐编号",trigger:"blur"}],startTime:[{required:!0,message:"请选择有效开始时间",trigger:"change"}],endTime:[{required:!0,message:"请选择有效结束时间",trigger:"change"}],description:[{required:!0,message:"请输入详情",trigger:"blur"}],projectList:[{required:!0,message:"请选择护理项组合",trigger:"change"}]},temp:{},projectList:[],downloadLoading:!1}),computed:{Summary:()=>function(e,t){const n=Number(e),r=Number(t);return isNaN(n)||isNaN(r)?"":(n*r).toFixed(2)}},created(){this.getList(),this.getinstitution()},mounted(){},methods:{initDrag(){new Sortable(document.querySelector(".draggable-table .el-table__body-wrapper tbody"),{handle:".handle",animation:150,onEnd:({newIndex:e,oldIndex:t})=>{const n=this.NursingData[t];this.NursingData.splice(t,1),this.NursingData.splice(e,0,n),this.NursingData.map((e,t)=>{e.sort=t+1}),console.log(this.NursingData)}})},getSummaries(e){const{columns:t,data:n}=e,r=[];return t.forEach((e,t)=>{if(0!==t){if("合计"==e.label){const e=n.map(e=>Number(e.num)),l=n.map(e=>Number(e.price3));e.every(e=>isNaN(e))?r[t]="":r[t]=e.reduce((e,t,n)=>{const r=Number(t);return isNaN(r)?e:e+t*l[n]},0),"number"!=typeof r[t]||isNaN(r[t])?r[t]="":r[t]=r[t].toFixed(2)}else if("参考时长(小时)"==e.label){const e=n.reduce((e,t)=>{const n=Number(t.hourNum);return isNaN(n)?e:e+n},0);r[t]=isNaN(e)?"":`${e.toFixed(2)} 小时`}}else r[t]="总计"}),r},handleMouseEnter(){this.height="50vh",this.show=!1,this.tableShow=!0},handleMouseLeave(){this.height="20vh",this.show=!0,this.tableShow=!0},handleClose(){this.dialogVisibleExp=!1,this.dialogVisibleExp2=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcelPlan(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理套餐信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},expExcel2(){try{const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcelInfo(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护理套餐明细/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose()})}catch(e){console.log(e)}},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`http://192.168.1.21/img/${e.url}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),uploadTP(t).then(e=>{1==e.status&&(this.$message({message:"上传成功",type:"success"}),this.temp.picUrl=e.result.url)})},nurseDelete(e,t){this.NursingData.splice(t,1),this.projectList=this.projectList.filter(t=>t!=e.value)},modify(e){e.edit=!0},InputBlur(e){e.edit=!1},determine(){this.dialogVisible=!1,setTimeout(()=>{this.NursingLoading=!1},1500);for(var e=0;e<this.projectList.length;e++){const t=this.institutionData.find((t,n)=>(t.price3=t.price3,t.type=t.type,t.value==this.projectList[e]));this.NursingData.some(e=>e.value===t.value)||(this.NursingData.push(t),this.NursingData.map((e,t)=>{e.sort=t+1}))}this.NursingData=this.removeDataArr(this.NursingData);const t=[];for(let e=0;e<this.projectList.length;e++)for(let n=0;n<this.NursingData.length;n++)this.NursingData[n].projectId==this.projectList[e]&&t.push(this.NursingData[n]);this.NursingData=t,this.NursingData.map((e,t)=>{e.sort=t+1}),this.temp.itemList=t,this.initDrag()},removeDataArr(e){var t={};return e=e.reduce(function(e,n){return!t[n.projectId]&&(t[n.projectId]=e.push(n)),e},[])},addNurse(){this.dialogVisible=!0,this.projectList=[];const e=[];this.temp.itemList&&(this.temp.itemList.map(t=>{e.push(t.projectId)}),this.projectList=e)},getinstitution(){SProjectAll().then(e=>{console.log(e.result),this.institutionData=e.result.map((e,t)=>({label:e.title,type:e.type,value:e.id,price1:e.price1,price3:e.price3,edit:!1,num:"1",hourNum:e.hourNum?e.hourNum:"-",projectId:e.id}))}),SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},getList(){this.listLoading=!0,SProjectPlanPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.NursingData=[],this.fileList=[],setTimeout(()=>{this.NursingLoading=!1},1500)},onSubmit(){this.getList()},createData(){delete this.temp.projectList,this.temp.projectList=this.NursingData,this.$refs.dataForm.validate(e=>{e&&SProjectPlanSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})})})},updateData(){delete this.temp.itemList,this.temp.projectList=this.NursingData,this.$refs.dataForm.validate(e=>{e&&SProjectPlanSave(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})})},edit(e){console.log(e),this.dialogFormVisible=!0,this.fileList=[],this.dialogStatus="update",SProjectPlanDetail({id:e.id}).then(e=>{e.result.itemList&&(this.NursingData=e.result.itemList.map(e=>(e.edit=!1,e.price3=e.projectPrice3,e.label=e.projectTitle,e))),this.temp=e.result}),e.picUrl&&this.fileList.push({name:e.picUrl,url:e.picUrl}),setTimeout(()=>{this.NursingLoading=!1},1500)},handleDelete(e,t){SProjectPlanDel({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}}};const __vue_script__$7=script$7;var __vue_render__$7=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"套餐名称",prop:"title"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入套餐名称"},model:{value:e.listQuery.title,callback:function(t){e.$set(e.listQuery,"title",t)},expression:"listQuery.title"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"状态",prop:"status"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.listQuery.status,callback:function(t){e.$set(e.listQuery,"status",t)},expression:"listQuery.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出套餐")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp2=!0}}},[e._v("导出明细")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"套餐名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.title))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s("1"==r.status?"启用":"2"==r.status?"下架":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"宣传图",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[r.picUrl?n("el-image",{staticStyle:{width:"50px",height:"50px"},attrs:{src:"http://192.168.1.21/img/"+r.picUrl,"preview-src-list":["http://192.168.1.21/img/"+r.picUrl]}}):n("span",[e._v(" - ")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属机构名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.unitName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"套餐内容",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.description))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"150","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"新增护理项",visible:e.dialogVisible,width:"30%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理项组合",multiple:""},model:{value:e.projectList,callback:function(t){e.projectList=t},expression:"projectList"}},e._l(e.institutionData,function(t,r){return n("el-option",{key:r,attrs:{label:t.label,value:t.value}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.label))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#8492a6","font-size":"13px"}},[e._v("护理类型:"+e._s("01"==t.type?"生活照料":"02"==t.type?"精神慰藉":"03"==t.type?"安全巡视":"04"==t.type?"医疗护理":"05"==t.type?"康复护理":"06"==t.type?"辅助器具":"07"==t.type?"居家护理":"-"))])])}),1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.determine}},[e._v("确 定")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"套餐名称",prop:"title"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入套餐名称",size:"small"},model:{value:e.temp.title,callback:function(t){e.$set(e.temp,"title",t)},expression:"temp.title"}})],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择状态"},model:{value:e.temp.status,callback:function(t){e.$set(e.temp,"status",t)},expression:"temp.status"}},e._l([{label:"启用",value:"1"},{label:"下架",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"项目海报",prop:"picUrl"}},[n("el-upload",{attrs:{action:"#",limit:1,data:e.FormData,"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"file-list":e.fileList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1):e._e(),e._v(" "),e.show?n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"详情",prop:"description"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入详情",type:"textarea",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理项组合"}},[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.addNurse}},[e._v("新增护理项")])],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("Transition",[e.tableShow?n("div",{on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave}},[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.NursingLoading,expression:"NursingLoading"}],staticClass:"draggable-table",staticStyle:{width:"100%"},attrs:{border:"",height:e.height,data:e.NursingData,"summary-method":e.getSummaries,"show-summary":"","row-key":"projectId"}},[n("el-table-column",{attrs:{label:"鼠标长按",width:"100",align:"center"}},[n("el-button",{staticClass:"handle",attrs:{link:"",type:"text",size:"small",icon:"el-icon-s-operation"}},[e._v("拖拽")])],1),e._v(" "),n("el-table-column",{attrs:{label:"序号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sort))])]}}],null,!1,3981901502)}),e._v(" "),n("el-table-column",{attrs:{label:"护理项",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.label))])]}}],null,!1,3451937186)}),e._v(" "),n("el-table-column",{attrs:{label:"次数",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[r.edit?n("el-input",{attrs:{placeholder:"次数"},on:{blur:function(t){return e.InputBlur(r,l)}},model:{value:r.num,callback:function(t){e.$set(r,"num",t)},expression:"row.num"}}):n("span",[e._v(e._s(r.num))])]}}],null,!1,2353372964)}),e._v(" "),n("el-table-column",{attrs:{label:"单价",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.price3))])]}}],null,!1,1148645082)}),e._v(" "),n("el-table-column",{attrs:{label:"参考时长(小时)",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.hourNum))])]}}],null,!1,461110482)}),e._v(" "),n("el-table-column",{attrs:{label:"合计",align:"center",prop:"projectPrice1"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(e.Summary(r.num,r.price3)))])]}}],null,!1,892702249)}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"180","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 修改次数\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.nurseDelete(r,l)}}},[e._v("\n 删除\n ")])]}}],null,!1,1851948995)})],1)],1):e._e()])],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp2,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp2=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.expExcel2}},[e._v("导 出")])],1)],1)],1)},__vue_staticRenderFns__$7=[];__vue_render__$7._withStripped=!0;const __vue_inject_styles__$7=function(e){e&&e("data-v-3e87461c_0",{source:".el-col-12[data-v-3e87461c] {\n padding: 0 20px 0 0;\n}\n.v-enter-active[data-v-3e87461c],\n.v-leave-active[data-v-3e87461c] {\n transition: opacity 1s ease;\n}\n.v-enter-from[data-v-3e87461c],\n.v-leave-to[data-v-3e87461c] {\n opacity: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\nurseProjects\\NursingPackage\\index.vue","index.vue"],names:[],mappings:"AAw/BA;EACA,mBAAA;ACv/BA;AD0/BA;;EAEA,2BAAA;ACv/BA;AD0/BA;;EAEA,UAAA;ACv/BA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form\r\n ref="listQuery"\r\n :inline="true"\r\n :model="listQuery"\r\n class="demo-form-inline"\r\n >\r\n <el-form-item label="套餐名称" prop="title">\r\n <el-input\r\n v-model="listQuery.title"\r\n size="small"\r\n placeholder="请输入套餐名称"\r\n />\r\n </el-form-item>\r\n <el-form-item label="状态" prop="status">\r\n <el-select\r\n v-model="listQuery.status"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择状态"\r\n >\r\n <el-option\r\n v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="onSubmit"\r\n >查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="warning"\r\n @click="resetting(\'listQuery\')"\r\n >重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="dialogVisibleExp = true"\r\n >导出套餐</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="dialogVisibleExp2 = true"\r\n >导出明细</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n <el-table-column :label="\'套餐名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.title }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'状态\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{\r\n row.status == "1" ? "启用" : row.status == "2" ? "下架" : "-"\r\n }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'宣传图\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-image\r\n v-if="row.picUrl"\r\n style="width: 50px; height: 50px"\r\n :src="`http://192.168.1.21/img/${row.picUrl}`"\r\n :preview-src-list="[`http://192.168.1.21/img/${row.picUrl}`]"\r\n />\r\n <span v-else> - </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属机构名称\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.unitName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'套餐内容\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'操作\'"\r\n align="center"\r\n width="150"\r\n class-name="small-padding fixed-width"\r\n >\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button\r\n size="mini"\r\n type="danger"\r\n @click="handleDelete(row, $index)"\r\n >\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination\r\n v-show="total > 0"\r\n :total="total"\r\n :page.sync="listQuery.pageNo"\r\n :limit.sync="listQuery.size"\r\n @pagination="getList"\r\n />\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="新增护理项"\r\n :visible.sync="dialogVisible"\r\n width="30%"\r\n >\r\n <el-select\r\n v-model="projectList"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择护理项组合"\r\n multiple\r\n >\r\n <el-option\r\n v-for="(item, index) in institutionData"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n >\r\n <span style="float: left">{{ item.label }}</span>\r\n <span\r\n style="float: right; color: #8492a6; font-size: 13px"\r\n >护理类型:{{ item.type == "01" ? "生活照料" : item.type == "02" ? "精神慰藉" : item.type == "03" ? "安全巡视" : item.type == "04" ? "医疗护理" : item.type == "05" ? "康复护理" : item.type == "06" ? "辅助器具" : item.type == "07" ? "居家护理" : \'-\' }}</span>\r\n </el-option>\r\n </el-select>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogVisible = false">取 消</el-button>\r\n <el-button\r\n type="primary"\r\n size="small"\r\n @click="determine"\r\n >确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible"\r\n width="40%"\r\n >\r\n <el-form\r\n ref="dataForm"\r\n :rules="rules"\r\n :model="temp"\r\n label-position="right"\r\n label-width="100px"\r\n >\r\n <el-row :gutter="20">\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="套餐名称" prop="title">\r\n <el-input\r\n v-model="temp.title"\r\n clearable\r\n placeholder="请输入套餐名称"\r\n size="small"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="所属机构" prop="unitId">\r\n <el-select\r\n v-model="temp.unitId"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择所属机构"\r\n >\r\n <el-option\r\n v-for="(item, index) in institutionArrData"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="状态">\r\n <el-select\r\n v-model="temp.status"\r\n style="width: 100%"\r\n clearable\r\n filterable\r\n size="small"\r\n class="filter-item"\r\n placeholder="请选择状态"\r\n >\r\n <el-option\r\n v-for="(item, index) in [\r\n { label: \'启用\', value: \'1\' },\r\n { label: \'下架\', value: \'2\' },\r\n ]"\r\n :key="index"\r\n :label="item.label"\r\n :value="item.value"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="12">\r\n <el-form-item label="项目海报" prop="picUrl">\r\n <el-upload\r\n action="#"\r\n :limit="1"\r\n :data="FormData"\r\n :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload"\r\n :file-list="fileList"\r\n :on-preview="onPreview"\r\n >\r\n <el-button\r\n slot="trigger"\r\n size="small"\r\n type="primary"\r\n >选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col v-if="show" :span="24">\r\n <el-form-item label="详情" prop="description">\r\n <el-input\r\n v-model="temp.description"\r\n clearable\r\n placeholder="请输入详情"\r\n type="textarea"\r\n size="small"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理项组合">\r\n <el-button\r\n size="small"\r\n type="success"\r\n @click="addNurse"\r\n >新增护理项</el-button>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <Transition>\r\n <div\r\n v-if="tableShow"\r\n @mouseenter="handleMouseEnter"\r\n @mouseleave="handleMouseLeave"\r\n >\r\n <el-table\r\n v-loading="NursingLoading"\r\n border\r\n :height="height"\r\n :data="NursingData"\r\n :summary-method="getSummaries"\r\n show-summary\r\n style="width: 100%"\r\n row-key="projectId"\r\n class="draggable-table"\r\n >\r\n <el-table-column label="鼠标长按" width="100" align="center">\r\n <el-button\r\n link\r\n type="text"\r\n size="small"\r\n :icon="\'el-icon-s-operation\'"\r\n class="handle"\r\n >拖拽</el-button>\r\n </el-table-column>\r\n <el-table-column :label="\'序号\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.sort }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理项\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.label }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'次数\'" align="center">\r\n <template slot-scope="{ row, $index }">\r\n <el-input\r\n v-if="row.edit"\r\n v-model="row.num"\r\n placeholder="次数"\r\n @blur="InputBlur(row, $index)"\r\n />\r\n <span v-else>{{ row.num }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'单价\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.price3 }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'参考时长(小时)\'" align="center">\r\n <template slot-scope="{ row }">\r\n <span>{{ row.hourNum }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'合计\'"\r\n align="center"\r\n prop="projectPrice1"\r\n >\r\n <template slot-scope="{ row }">\r\n <span>{{ Summary(row.num, row.price3) }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label="\'操作\'"\r\n align="center"\r\n width="180"\r\n class-name="small-padding fixed-width"\r\n >\r\n <template slot-scope="{ row, $index }">\r\n <el-button\r\n size="mini"\r\n type="primary"\r\n @click="modify(row, $index)"\r\n >\r\n 修改次数\r\n </el-button>\r\n <el-button\r\n size="mini"\r\n type="danger"\r\n @click="nurseDelete(row, $index)"\r\n >\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n </Transition>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button @click="dialogFormVisible = false" size="small">\r\n 取 消\r\n </el-button> --\x3e\r\n <el-button\r\n type="primary"\r\n size="small"\r\n @click="dialogStatus === \'create\' ? createData() : updateData()"\r\n >\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="导出"\r\n :visible.sync="dialogVisibleExp"\r\n width="600px"\r\n :before-close="handleClose"\r\n >\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link\r\n :underline="false"\r\n type="primary"\r\n >选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker\r\n v-model="startDate"\r\n type="daterange"\r\n value-format="yyyy-MM-dd"\r\n range-separator="至"\r\n start-placeholder="开始日期"\r\n end-placeholder="结束日期"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button\r\n size="small"\r\n :loading="loadExp"\r\n @click="handleClose"\r\n >取 消</el-button>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n :loading="loadExp"\r\n @click="expExcel"\r\n >\r\n 导 出\r\n </el-button>\r\n </span>\r\n </el-dialog>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n title="导出"\r\n :visible.sync="dialogVisibleExp2"\r\n width="600px"\r\n :before-close="handleClose"\r\n >\r\n <el-form :inline="true" class="demo-form-inline">\r\n <el-form-item label="提示:">\r\n <el-link\r\n :underline="false"\r\n type="primary"\r\n >选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天</el-link>\r\n </el-form-item>\r\n <el-form-item label="时间">\r\n <el-date-picker\r\n v-model="startDate"\r\n type="daterange"\r\n value-format="yyyy-MM-dd"\r\n range-separator="至"\r\n start-placeholder="开始日期"\r\n end-placeholder="结束日期"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <span slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="handleClose">取 消</el-button>\r\n <el-button\r\n size="small"\r\n type="primary"\r\n @click="expExcel2"\r\n >导 出</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SProjectAll,\r\n SProjectPlanPage,\r\n SProjectPlanDel,\r\n SProjectPlanSave,\r\n SysUnitPage,\r\n SProjectPlanDetail,\r\n ExportExcelPlan,\r\n ExportExcelInfo\r\n} from \'@/api/institution\'\r\nimport Pagination from \'@/components/Pagination\'\r\nimport { uploadTP, uploadPDF } from \'@/api/upload\'\r\nimport { fileUrl } from \'@/utils/fileUrl.js\'\r\nimport PreviewFile from \'@/components/previewFile\'\r\nimport Sortable from \'sortablejs\'\r\nexport default {\r\n name: \'Personnel\',\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n height: \'20vh\',\r\n show: true,\r\n tableShow: true,\r\n dialogVisibleExp: false,\r\n loadExp: false,\r\n dialogVisibleExp2: false,\r\n\r\n startDate: [],\r\n file: {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\',\r\n type: \'\'\r\n },\r\n FormData: {},\r\n fileList: [],\r\n NursingLoading: true,\r\n dialogVisible: false,\r\n dialogStatus: \'\',\r\n textMap: { update: \'编辑\', create: \'创建\' },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20\r\n },\r\n NursingData: [],\r\n institutionData: [],\r\n institutionArrData: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n type: [\r\n { required: true, message: \'请选择护理机构类型\', trigger: \'change\' }\r\n ],\r\n title: [{ required: true, message: \'请输入套餐名称\', trigger: \'blur\' }],\r\n no: [{ required: true, message: \'请输入套餐编号\', trigger: \'blur\' }],\r\n startTime: [\r\n { required: true, message: \'请选择有效开始时间\', trigger: \'change\' }\r\n ],\r\n endTime: [\r\n { required: true, message: \'请选择有效结束时间\', trigger: \'change\' }\r\n ],\r\n description: [\r\n { required: true, message: \'请输入详情\', trigger: \'blur\' }\r\n ],\r\n projectList: [\r\n { required: true, message: \'请选择护理项组合\', trigger: \'change\' }\r\n ]\r\n },\r\n temp: {},\r\n projectList: [],\r\n downloadLoading: false\r\n }\r\n },\r\n computed: {\r\n Summary() {\r\n return function(num, price3) {\r\n const n = Number(num)\r\n const p = Number(price3)\r\n if (isNaN(n) || isNaN(p)) return \'\'\r\n return (n * p).toFixed(2)\r\n }\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n // 获取机构信息\r\n this.getinstitution()\r\n },\r\n mounted() {},\r\n methods: {\r\n initDrag() {\r\n const tbody = document.querySelector(\r\n \'.draggable-table .el-table__body-wrapper tbody\'\r\n )\r\n new Sortable(tbody, {\r\n handle: \'.handle\', // handle\'s class\r\n animation: 150,\r\n // 需要在odEnd方法中处理原始eltable数据,使原始数据与显示数据保持顺序一致\r\n onEnd: ({ newIndex, oldIndex }) => {\r\n const targetRow = this.NursingData[oldIndex]\r\n this.NursingData.splice(oldIndex, 1)\r\n this.NursingData.splice(newIndex, 0, targetRow)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n console.log(this.NursingData)\r\n }\r\n })\r\n },\r\n // 合计\r\n getSummaries(param) {\r\n const { columns, data } = param\r\n const sums = []\r\n columns.forEach((column, index) => {\r\n if (index === 0) {\r\n sums[index] = \'总计\'\r\n return\r\n } else if (column.label == \'合计\') {\r\n // 数量\r\n const values = data.map((item) => Number(item[\'num\']))\r\n // 价格\r\n const price = data.map((item) => Number(item[\'price3\']))\r\n if (!values.every((value) => isNaN(value))) {\r\n sums[index] = values.reduce((prev, curr, index) => {\r\n const value = Number(curr)\r\n if (!isNaN(value)) {\r\n // curr为数量,price为单价,求得每行的金额,再通过reduce累加求和\r\n return prev + curr * price[index]\r\n } else {\r\n return prev\r\n }\r\n }, 0)\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n if (typeof sums[index] === \'number\' && !isNaN(sums[index])) {\r\n sums[index] = sums[index].toFixed(2) // 保留2位小数\r\n } else {\r\n sums[index] = \'\'\r\n }\r\n } else if (column.label == \'参考时长(小时)\') {\r\n // 参考时长合计:直接累加 hourNum\r\n const totalHours = data.reduce((prev, item) => {\r\n const h = Number(item.hourNum)\r\n if (isNaN(h)) return prev\r\n return prev + h\r\n }, 0)\r\n sums[index] = !isNaN(totalHours) ? `${totalHours.toFixed(2)} 小时` : \'\'\r\n }\r\n })\r\n\r\n return sums\r\n },\r\n handleMouseEnter() {\r\n this.height = \'50vh\'\r\n this.show = false\r\n this.tableShow = true\r\n // 在这里执行你需要的操作\r\n },\r\n handleMouseLeave() {\r\n this.height = \'20vh\'\r\n this.show = true\r\n this.tableShow = true\r\n },\r\n handleClose() {\r\n this.dialogVisibleExp = false\r\n this.dialogVisibleExp2 = false\r\n this.startDate = []\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcelPlan(form)\r\n .then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理套餐信息\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n this.loadExp = false\r\n })\r\n .catch(() => {\r\n this.loadExp = false\r\n })\r\n } catch (e) {\r\n this.loadExp = false\r\n console.log(e)\r\n }\r\n },\r\n expExcel2() {\r\n try {\r\n const form = {\r\n startDate: this.startDate[0],\r\n endDate: this.startDate[1]\r\n }\r\n ExportExcelInfo(form).then((res) => {\r\n const blob = new Blob([res])\r\n const fileName = \'护理套餐明细\'\r\n if (blob.size > 0) {\r\n const elink = document.createElement(\'a\')\r\n elink.style.display = \'none\'\r\n elink.href = URL.createObjectURL(blob)\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n \'YYYY-MM-DD\'\r\n )}.xlsx`\r\n document.body.appendChild(elink)\r\n elink.click()\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href)\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink)\r\n }\r\n this.handleClose()\r\n })\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true\r\n const index = file.name.lastIndexOf(\'.\')\r\n const extension = file.name.substr(index + 1)\r\n const extensionList = [\'png\', \'PNG\', \'jpg\', \'JPG\', \'jpeg\', \'JPEG\']\r\n const isLt2M = file.size / 1024 / 1024 < 10\r\n if (!isLt2M) {\r\n this.$message({\r\n message: \'封面不可超出10M\',\r\n type: \'warning\',\r\n center: true\r\n })\r\n return false\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: \'只能图片文件\',\r\n type: \'error\',\r\n center: true\r\n })\r\n return false\r\n }\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url)\r\n let url = `http://192.168.1.21/img/${file.url}`\r\n if (\r\n type == \'word\' ||\r\n type == \'wps\' ||\r\n type == \'pdf\' ||\r\n type == \'pptx\' ||\r\n type == \'txt\'\r\n ) {\r\n this.file.type = type\r\n url = `https://wps-view.zhihuipk.com/?src=` + url\r\n } else if (type == \'image\') {\r\n this.file.type = type\r\n } else if (type == \'video\') {\r\n this.file.type = type\r\n } else if (type == \'radio\') {\r\n this.file.type = type\r\n } else {\r\n this.$message.error(\'该格式不可在线预览,请下载后查看\')\r\n return\r\n }\r\n this.file.fileurl = url // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true // 弹窗\r\n this.file.title = file.name // 文件名称\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData()\r\n // 上传文件\r\n obj.append(\'file\', file.file)\r\n obj.append(\'realPath\', file.file.name)\r\n // 上传文件接口\r\n uploadTP(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: \'上传成功\',\r\n type: \'success\'\r\n })\r\n this.temp.picUrl = res.result.url\r\n }\r\n })\r\n },\r\n nurseDelete(row, index) {\r\n this.NursingData.splice(index, 1)\r\n this.projectList = this.projectList.filter((item) => {\r\n return item != row.value\r\n })\r\n },\r\n modify(row) {\r\n row.edit = true\r\n },\r\n InputBlur(row) {\r\n row.edit = false\r\n },\r\n determine() {\r\n this.dialogVisible = false\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n for (var i = 0; i < this.projectList.length; i++) {\r\n const arr1 = this.institutionData.find((item, index) => {\r\n item.price3 = item.price3\r\n item.type = item.type\r\n return item.value == this.projectList[i]\r\n })\r\n const data = this.NursingData.some((u) => u.value === arr1.value)\r\n if (!data) {\r\n this.NursingData.push(arr1)\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n }\r\n // this.NursingData.push(arr1);\r\n }\r\n\r\n this.NursingData = this.removeDataArr(this.NursingData)\r\n const dataArr = []\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n for (let y = 0; y < this.NursingData.length; y++) {\r\n if (this.NursingData[y].projectId == this.projectList[i]) {\r\n dataArr.push(this.NursingData[y])\r\n }\r\n }\r\n }\r\n this.NursingData = dataArr\r\n this.NursingData.map((item, index) => {\r\n item.sort = index + 1\r\n })\r\n this.temp.itemList = dataArr\r\n this.initDrag()\r\n },\r\n // 数组去重\r\n removeDataArr(arr) {\r\n var obj = {}\r\n arr = arr.reduce(function(item, next) {\r\n obj[next.projectId]\r\n ? \'\'\r\n : (obj[next.projectId] = true && item.push(next))\r\n return item\r\n }, [])\r\n return arr\r\n },\r\n addNurse() {\r\n this.dialogVisible = true\r\n this.projectList = []\r\n const dataArr = []\r\n if (this.temp.itemList) {\r\n this.temp.itemList.map((item) => {\r\n dataArr.push(item.projectId)\r\n })\r\n this.projectList = dataArr\r\n }\r\n },\r\n getinstitution() {\r\n SProjectAll().then((response) => {\r\n console.log(response.result)\r\n this.institutionData = response.result.map((item, index) => {\r\n return {\r\n label: item.title,\r\n type: item.type,\r\n value: item.id,\r\n price1: item.price1,\r\n price3: item.price3,\r\n edit: false,\r\n num: \'1\',\r\n hourNum: item.hourNum ? item.hourNum : \'-\',\r\n projectId: item.id\r\n }\r\n })\r\n })\r\n SysUnitPage({ pageNo: 1, size: 9999 }).then((response) => {\r\n this.institutionArrData = response.result.data.map((item) => {\r\n return { label: item.name, value: item.id }\r\n })\r\n })\r\n },\r\n getList() {\r\n this.listLoading = true\r\n SProjectPlanPage(this.listQuery).then((response) => {\r\n this.list = response.result.data\r\n this.total = response.result.count\r\n setTimeout(() => {\r\n this.listLoading = false\r\n }, 1.5 * 1000)\r\n })\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: \'操作成功\',\r\n type: \'success\'\r\n })\r\n row.status = status\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields()\r\n this.getList()\r\n })\r\n },\r\n // 新增护理项\r\n add() {\r\n this.dialogStatus = \'create\'\r\n this.dialogFormVisible = true\r\n this.temp = {}\r\n this.NursingData = []\r\n this.fileList = []\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n onSubmit() {\r\n this.getList()\r\n },\r\n createData() {\r\n delete this.temp.projectList\r\n this.temp.projectList = this.NursingData\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectPlanSave(this.temp).then((res) => {\r\n // this.list.unshift(this.temp)\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'新增失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n updateData() {\r\n delete this.temp.itemList\r\n this.temp.projectList = this.NursingData\r\n this.$refs[\'dataForm\'].validate((valid) => {\r\n if (valid) {\r\n SProjectPlanSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'更新失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n })\r\n },\r\n edit(row) {\r\n console.log(row)\r\n this.dialogFormVisible = true\r\n this.fileList = []\r\n this.dialogStatus = \'update\'\r\n SProjectPlanDetail({ id: row.id }).then((res) => {\r\n if (res.result.itemList) {\r\n this.NursingData = res.result.itemList.map((item) => {\r\n item.edit = false\r\n item.price3 = item.projectPrice3\r\n item.label = item.projectTitle\r\n return item\r\n })\r\n }\r\n this.temp = res.result\r\n })\r\n if (row.picUrl) {\r\n this.fileList.push({\r\n name: row.picUrl,\r\n url: row.picUrl\r\n })\r\n }\r\n setTimeout(() => {\r\n this.NursingLoading = false\r\n }, 1.5 * 1000)\r\n },\r\n handleDelete(row, index) {\r\n SProjectPlanDel({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList()\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除成功\',\r\n type: \'success\',\r\n duration: 2000\r\n })\r\n return\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: \'删除失败\',\r\n type: \'error\',\r\n duration: 2000\r\n })\r\n })\r\n }\r\n }\r\n}\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.v-enter-active,\r\n.v-leave-active {\r\n transition: opacity 1s ease;\r\n}\r\n\r\n.v-enter-from,\r\n.v-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.v-enter-active,\n.v-leave-active {\n transition: opacity 1s ease;\n}\n\n.v-enter-from,\n.v-leave-to {\n opacity: 0;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$7="data-v-3e87461c",__vue_module_identifier__$7=void 0,__vue_is_functional_template__$7=!1,__vue_component__$7=normalizeComponent({render:__vue_render__$7,staticRenderFns:__vue_staticRenderFns__$7},__vue_inject_styles__$7,__vue_script__$7,__vue_scope_id__$7,__vue_is_functional_template__$7,__vue_module_identifier__$7,!1,createInjector,void 0,void 0);var script$6={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({userInfo:{},renyuanxinxi:[],dialogVisibleExp:!1,loadExp:!1,startDate:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},idCord:"",HugongdialogVisible:!1,FormData:{},institutionArrData:[],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},dialogFormVisible:!1,dialogPvVisible:!1,rules:{name:[{required:!0,message:"请输入姓名",trigger:"blur"}],idCode:[{required:!0,message:"请输入身份证号",trigger:"blur"}],phoneNumber:[{required:!0,message:"请输入手机号码",trigger:"blur"}],sex:[{required:!0,message:"请选择性别",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}]},temp:{longtermPsnAttDtoList:[]},downloadLoading:!1}),computed:{constant(){return this.$constant.imgAddr},img:()=>function(e){return e.match(/^chx\/tp\//)?e:"chx/tp/"+e}},created(){console.log("VUE_APP_BASE_API:",process.env),this.getList(),this.getinstitution(),this.userInfo=JSON.parse(getUserInfoRole())},methods:{handleError(e,t,n){console.log("上传失败",e,t,n),this.$message.error("图片上传失败,请重试")},synchronization(){this.HugongdialogVisible=!0},synchronous(){SPersonSync({unitId:this.userInfo.unitId,idCord:this.idCord}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:"提示",message:e.info,type:"success",duration:2e3}),this.dialogFormVisible=!1,void(this.idCord="");this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})},handleClose(){this.dialogVisibleExp=!1,this.HugongdialogVisible=!1,this.startDate=[]},expExcel(){try{this.loadExp=!0;const e={startDate:this.startDate[0],endDate:this.startDate[1]};ExportExcel$2(e).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`护工信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1}},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if(console.log(n),"word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){this.temp.certPicUrlList=this.temp.certPicUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleSfzUrllRemove(e,t){this.temp.sfzUrlList=this.temp.sfzUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleXlUrlRemove(e,t){this.temp.xlUrlList=this.temp.xlUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},certhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.certPicUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.certPicUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},sfzhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.sfzUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.sfzUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},xlhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.xlUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.xlUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.temp.longtermPsnAttDtoList=[],this.temp.xlUrlList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[]},update(e){updateStatus({id:e.id}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})},edit(e){if(this.temp=JSON.parse(JSON.stringify(e)),this.dialogStatus="update",this.dialogFormVisible=!0,this.temp.longtermPsnAttDtoList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[],this.temp.xlUrlList=[],e.certPicUrlList&&(this.temp.certPicUrlList=e.certPicUrlList.map(e=>({name:e,url:e}))),e.sfzUrlList&&(this.temp.sfzUrlList=e.sfzUrlList.map(e=>({name:e,url:e}))),e.xlUrlList&&(this.temp.xlUrlList=e.xlUrlList.map(e=>({name:e,url:e}))),this.temp.thirdFileList&&this.temp.thirdFileList.length>0)for(var t=0;t<this.temp.thirdFileList.length;t++)"01"!=this.temp.thirdFileList[t].att_type&&"21"!=this.temp.thirdFileList[t].att_type&&"22"!=this.temp.thirdFileList[t].att_type||this.temp.longtermPsnAttDtoList.push(this.temp.thirdFileList[t])},getList(){this.listLoading=!0,SPersonPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)}),SPersonPage({size:9999,pageNo:1}).then(e=>{this.renyuanxinxi=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields()})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};this.temp.certPicUrlList.length>0&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"创建成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"创建失败",type:"error",duration:2e3})})}})},hasBothValues(e,t,n){const r=e.some(e=>e.att_type===t),l=e.some(e=>e.att_type===n);return r&&l},updateData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};if(this.temp.certPicUrlList.length>0&&this.temp.certPicUrlList[0]&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&this.temp.xlUrlList[0]&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&this.temp.sfzUrlList[0]&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),0==this.temp.longtermPsnAttDtoList.length)return void this.$message({message:"请上传材料",type:"warning",center:!0});const t=this.hasBothValues(this.temp.longtermPsnAttDtoList,"22","01");console.log(t),t||this.$message({message:"请传资质证书或身份证",type:"warning",center:!0}),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})}})},handleDelete(e,t){this.$confirm("护工注销需要确认上传明细,以免冲正重新上传变成自费,是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SPersonDel({id:e.id,isDelete:"1"}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消删除"})})}}};const __vue_script__$6=script$6;var __vue_render__$6=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择性别"},model:{value:e.listQuery.sex,callback:function(t){e.$set(e.listQuery,"sex",t)},expression:"listQuery.sex"}},e._l([{label:"男",value:"1"},{label:"女",value:"2"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){e.dialogVisibleExp=!0}}},[e._v("导出")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.synchronization}},[e._v("护工同步")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"姓名",prop:"id",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"手机号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证号",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.idCode))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"居住地",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:"0"==r.status?"danger":"1"==r.status?"success":""}},["0"==r.status?n("span",[e._v("不可用")]):e._e(),e._v(" "),"1"==r.status?n("span",[e._v("正常")]):e._e()])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"资质证书",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.certPicUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.sfzUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"健康证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.xlUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.update(r,"draft")}}},[e._v("\n 更新状态\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,"draft")}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 注销\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入姓名"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择性别"},model:{value:e.temp.sex,callback:function(t){e.$set(e.temp,"sex",t)},expression:"temp.sex"}},e._l([{label:"男",value:"男"},{label:"女",value:"女"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"手机号码",prop:"phoneNumber"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入手机号码"},model:{value:e.temp.phoneNumber,callback:function(t){e.$set(e.temp,"phoneNumber",t)},expression:"temp.phoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证号",prop:"idCode"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.temp.idCode,callback:function(t){e.$set(e.temp,"idCode",t)},expression:"temp.idCode"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"居住地",prop:"address"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入居住地"},model:{value:e.temp.address,callback:function(t){e.$set(e.temp,"address",t)},expression:"temp.address"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"持证时间",prop:"liceIssuDate"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd",type:"date",placeholder:"持证时间"},model:{value:e.temp.liceIssuDate,callback:function(t){e.$set(e.temp,"liceIssuDate",t)},expression:"temp.liceIssuDate"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"学历",prop:"educ"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.educ,callback:function(t){e.$set(e.temp,"educ",t)},expression:"temp.educ"}},e._l([{label:"初中",value:"初中"},{label:"高中",value:"高中"},{label:"大专",value:"大专"},{label:"本科",value:"本科"},{label:"硕士",value:"硕士"},{label:"博士",value:"博士"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"注:",prop:"unitId"}},[n("span",{staticStyle:{color:"red"}},[e._v("上传的文件请使用姓名+类型去命名。防止文件名字重复被覆盖")])])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"资质证书",prop:"certPicUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,"before-upload":e.beforeAvatarUploada,"http-request":e.certhandleFileUpload,data:{att_type:"22"},"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"on-error":e.handleError,"file-list":e.temp.certPicUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证",prop:"sfzUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.sfzhandleFileUpload,"on-remove":e.handleSfzUrllRemove,"before-remove":e.beforeRemove,"file-list":e.temp.sfzUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"健康证",prop:"xlUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"21"},"before-upload":e.beforeAvatarUploada,"http-request":e.xlhandleFileUpload,"on-remove":e.handleXlUrlRemove,"before-remove":e.beforeRemove,"file-list":e.temp.xlUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"导出",visible:e.dialogVisibleExp,width:"600px","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisibleExp=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"提示:"}},[n("el-link",{attrs:{underline:!1,type:"primary"}},[e._v("选择的开始日期和结束日期请将数据的入录时间包含起来,结束日期选后一天")])],1),e._v(" "),n("el-form-item",{attrs:{label:"时间"}},[n("el-date-picker",{attrs:{type:"daterange","value-format":"yyyy-MM-dd","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.startDate,callback:function(t){e.startDate=t},expression:"startDate"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small",loading:e.loadExp},on:{click:e.handleClose}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"护工同步",visible:e.HugongdialogVisible,width:"500px","before-close":e.handleClose},on:{"update:visible":function(t){e.HugongdialogVisible=t}}},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"身份证"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.idCord,callback:function(t){e.idCord=t},expression:"idCord"}})],1)],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.HugongdialogVisible=!1}}},[e._v("关 闭")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.synchronous}},[e._v("\n 同 步\n ")])],1)],1)],1)},__vue_staticRenderFns__$6=[];__vue_render__$6._withStripped=!0;const __vue_inject_styles__$6=void 0,__vue_scope_id__$6=void 0,__vue_module_identifier__$6=void 0,__vue_is_functional_template__$6=!1,__vue_component__$6=normalizeComponent({render:__vue_render__$6,staticRenderFns:__vue_staticRenderFns__$6},__vue_inject_styles__$6,__vue_script__$6,__vue_scope_id__$6,__vue_is_functional_template__$6,__vue_module_identifier__$6,!1,void 0,void 0,void 0);var script$5={name:"Personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({userInfo:{},renyuanxinxi:[],file:{fileurl:"",dialogVisible:!1,title:"",type:""},FormData:{},institutionArrData:[],admdvsOptions:[{value:"330302",label:"鹿城区"},{value:"330303",label:"龙湾区"},{value:"330304",label:"瓯海区"},{value:"330305",label:"洞头区"},{value:"330381",label:"瑞安市"},{value:"330382",label:"乐清市"},{value:"330383",label:"龙港市"},{value:"330324",label:"永嘉县"},{value:"330326",label:"平阳县"},{value:"330327",label:"苍南县"},{value:"330328",label:"文成县"},{value:"330329",label:"泰顺县"},{value:"330399",label:"市本级"}],dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},dialogFormVisible:!1,dialogPvVisible:!1,rules:{name:[{required:!0,message:"请输入姓名",trigger:"blur"}],idCard:[{required:!0,message:"请输入身份证号",trigger:"blur"}],phoneNumber:[{required:!0,message:"请输入手机号码",trigger:"blur"}],sex:[{required:!0,message:"请选择性别",trigger:"change"}],unitId:[{required:!0,message:"请选择所属机构",trigger:"change"}],addrAdmdvs:[{required:!0,message:"请选择归属医保区划",trigger:"change"}],admdvs:[{required:!0,message:"请选择数据权限医保区划",trigger:"change"}],approveStatus:[{required:!0,message:"请选择审核状态",trigger:"change"}]},temp:{longtermPsnAttDtoList:[]},downloadLoading:!1}),computed:{constant(){return this.$constant.imgAddr},img:()=>function(e){return e.match(/^chx\/tp\//)?e:"chx/tp/"+e}},created(){console.log("VUE_APP_BASE_API:",process.env),this.getList(),this.getinstitution(),this.userInfo=JSON.parse(getUserInfoRole())},methods:{handleError(e,t,n){console.log("上传失败",e,t,n),this.$message.error("图片上传失败,请重试")},getinstitution(){SysUnitPage({pageNo:1,size:9999}).then(e=>{this.institutionArrData=e.result.data.map(e=>({label:e.name,value:e.id}))})},beforeAvatarUploada(e){this.loadingstate=!0;const t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["png","PNG","jpg","JPG","jpeg","JPEG"].indexOf(n)<0?(this.$message({message:"只能图片文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},onPreview(e){const t=fileUrl(e.url);let n=`${this.$constant.imgAddr}${e.url}`;if(console.log(n),"word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t,n="https://wps-view.zhihuipk.com/?src="+n;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){this.temp.certPicUrlList=this.temp.certPicUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleSfzUrllRemove(e,t){this.temp.sfzUrlList=this.temp.sfzUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},handleXlUrlRemove(e,t){this.temp.xlUrlList=this.temp.xlUrlList.filter(t=>t.name!=e.name),this.temp.longtermPsnAttDtoList=this.temp.longtermPsnAttDtoList.filter(t=>t.att_name!=e.name)},certhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.certPicUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.certPicUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},sfzhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.sfzUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.sfzUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},xlhandleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.att_type),this.temp.xlUrlList=[],uploadTP(t).then(n=>{console.log(n),1==n.status&&this.$message({message:"上传成功",type:"success"}),this.temp.xlUrlList.push({url:n.result.url,name:n.result.name}),uploadThird(t).then(t=>{if(1==t.status){const n={att_type:e.data.att_type,att_name:t.result.output.att_name,file_id:t.result.output.file_id,file_type:t.result.output.file_type};this.temp.longtermPsnAttDtoList.push(n)}})})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={},this.temp.longtermPsnAttDtoList=[],this.temp.xlUrlList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[]},update(e){SPersonMedicalStatus({id:e.id}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})},edit(e){if(this.temp=JSON.parse(JSON.stringify(e)),this.dialogStatus="update",this.dialogFormVisible=!0,this.temp.longtermPsnAttDtoList=[],this.temp.certPicUrlList=[],this.temp.sfzUrlList=[],this.temp.xlUrlList=[],e.certPicUrlList&&(this.temp.certPicUrlList=e.certPicUrlList.map(e=>({name:e,url:e}))),e.sfzUrlList&&(this.temp.sfzUrlList=e.sfzUrlList.map(e=>({name:e,url:e}))),e.xlUrlList&&(this.temp.xlUrlList=e.xlUrlList.map(e=>({name:e,url:e}))),this.temp.thirdFileList&&this.temp.thirdFileList.length>0)for(var t=0;t<this.temp.thirdFileList.length;t++)"01"!=this.temp.thirdFileList[t].att_type&&"21"!=this.temp.thirdFileList[t].att_type&&"99"!=this.temp.thirdFileList[t].att_type||this.temp.longtermPsnAttDtoList.push(this.temp.thirdFileList[t])},getList(){this.listLoading=!0,SPersonMedicalPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,setTimeout(()=>{this.listLoading=!1},1500)}),SPersonMedicalPage({size:9999,pageNo:1}).then(e=>{this.renyuanxinxi=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields()})},onSubmit(){this.getList()},createData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};this.temp.certPicUrlList.length>0&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"创建成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"创建失败",type:"error",duration:2e3})})}})},hasBothValues(e,t,n){const r=e.some(e=>e.att_type===t),l=e.some(e=>e.att_type===n);return r&&l},updateData(){this.$refs.dataForm.validate(e=>{if(e){this.temp.rolel="2";const e={certPicUrlList:[],xlUrlList:[],sfzUrlList:[]};if(this.temp.certPicUrlList.length>0&&this.temp.certPicUrlList[0]&&(e.certPicUrlList=this.temp.certPicUrlList.map(e=>e.name)),this.temp.xlUrlList.length>0&&this.temp.xlUrlList[0]&&(e.xlUrlList=this.temp.xlUrlList.map(e=>e.name)),this.temp.sfzUrlList.length>0&&this.temp.sfzUrlList[0]&&(e.sfzUrlList=this.temp.sfzUrlList.map(e=>e.name)),0==this.temp.longtermPsnAttDtoList.length)return void this.$message({message:"请上传材料",type:"warning",center:!0});const t=this.hasBothValues(this.temp.longtermPsnAttDtoList,"22","01");console.log(t),t||this.$message({message:"请传资质证书或身份证",type:"warning",center:!0}),SPersonSave({...this.temp,...e}).then(e=>{if(1==e.status)return this.getList(),this.$notify({title:e.info,message:"更新成功,请通知医保审核",type:"success",duration:2e3}),void(this.dialogFormVisible=!1);this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})})}})},handleDelete(e,t){this.$confirm("护工注销需要确认上传明细,以免冲正重新上传变成自费,是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SPersonDel({id:e.id,isDelete:"1"}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})}).catch(()=>{this.$message({type:"info",message:"已取消删除"})})}}};const __vue_script__$5=script$5;var __vue_render__$5=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择姓名"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.renyuanxinxi,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"姓名",prop:"id",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"性别",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.sex))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"手机号码",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.phoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium",type:0==r.approveStatus?"danger":1==r.approveStatus?"success":""}},[0==r.approveStatus?n("span",[e._v("不通过")]):e._e(),e._v(" "),1==r.approveStatus?n("span",[e._v("通过")]):e._e()])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"资质证书",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.certPicUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"身份证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.sfzUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"健康证",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return e._l(r.xlUrlList,function(t,r){return n("el-image",{key:r,staticStyle:{width:"50px",height:"50px"},attrs:{src:""+e.constant+e.img(t),"preview-src-list":[""+e.constant+e.img(t)]}})})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return t.$index,[n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.update(r,"draft")}}},[e._v("\n 更新状态\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,"draft")}}},[e._v("\n 修改\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"40%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"姓名",prop:"name"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入姓名"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"性别",prop:"sex"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择性别"},model:{value:e.temp.sex,callback:function(t){e.$set(e.temp,"sex",t)},expression:"temp.sex"}},e._l([{label:"男",value:1},{label:"女",value:2}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"手机号码",prop:"phoneNumber"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入手机号码"},model:{value:e.temp.phoneNumber,callback:function(t){e.$set(e.temp,"phoneNumber",t)},expression:"temp.phoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"身份证号",prop:"idCard"}},[n("el-input",{attrs:{size:"small",clearable:"",placeholder:"请输入身份证号"},model:{value:e.temp.idCard,callback:function(t){e.$set(e.temp,"idCard",t)},expression:"temp.idCard"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构",prop:"unitId"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择所属机构"},model:{value:e.temp.unitId,callback:function(t){e.$set(e.temp,"unitId",t)},expression:"temp.unitId"}},e._l(e.institutionArrData,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"归属医保区划",prop:"addrAdmdvs"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择归属医保区划"},model:{value:e.temp.addrAdmdvs,callback:function(t){e.$set(e.temp,"addrAdmdvs",t)},expression:"temp.addrAdmdvs"}},e._l(e.admdvsOptions,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"数据权限医保区划",prop:"admdvs"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择数据权限医保区划"},model:{value:e.temp.admdvs,callback:function(t){e.$set(e.temp,"admdvs",t)},expression:"temp.admdvs"}},e._l(e.admdvsOptions,function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"审核状态",prop:"approveStatus"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择审核状态"},model:{value:e.temp.approveStatus,callback:function(t){e.$set(e.temp,"approveStatus",t)},expression:"temp.approveStatus"}},[n("el-option",{attrs:{label:"通过",value:1}}),e._v(" "),n("el-option",{attrs:{label:"不通过",value:0}})],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"资质证书",prop:"certPicUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,"before-upload":e.beforeAvatarUploada,"http-request":e.certhandleFileUpload,data:{att_type:"22"},"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"on-error":e.handleError,"file-list":e.temp.certPicUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"身份证",prop:"sfzUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.sfzhandleFileUpload,"on-remove":e.handleSfzUrllRemove,"before-remove":e.beforeRemove,"file-list":e.temp.sfzUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"健康证",prop:"xlUrlList"}},[n("el-upload",{attrs:{action:"#",limit:1,data:{att_type:"99"},"before-upload":e.beforeAvatarUploada,"http-request":e.xlhandleFileUpload,"on-remove":e.handleXlUrlRemove,"before-remove":e.beforeRemove,"file-list":e.temp.xlUrlList,"on-preview":e.onPreview}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}})],1)},__vue_staticRenderFns__$5=[];__vue_render__$5._withStripped=!0;const __vue_inject_styles__$5=void 0,__vue_scope_id__$5=void 0,__vue_module_identifier__$5=void 0,__vue_is_functional_template__$5=!1,__vue_component__$5=normalizeComponent({render:__vue_render__$5,staticRenderFns:__vue_staticRenderFns__$5},__vue_inject_styles__$5,__vue_script__$5,__vue_scope_id__$5,__vue_is_functional_template__$5,__vue_module_identifier__$5,!1,void 0,void 0,void 0);var script$4={name:"personnel",components:{Pagination:Pagination,PreviewFile:PreviewFile},filters:{},data:()=>({oneFileList:[],twoFileList:[],threeFileList:[],institutionList:[],FormData:{},file:{fileurl:"",dialogVisible:!1,title:"",type:""},loading:!1,dialogBankVisible:!1,dialogStatus:"",textMap:{update:"编辑",create:"创建"},tableKey:0,list:null,total:0,listLoading:!0,listQuery:{pageNo:1,size:20},fileList:[],dialogFormVisible:!1,dialogPvVisible:!1,rules:{uscc:[{required:!0,message:"请输入统一社会信用代码",trigger:"blur"}],type:[{required:!0,message:"请选择护理机构类型",trigger:"change"}],name:[{required:!0,message:"请输入机构名称",trigger:"blur"}],city:[{required:!0,message:"请输入行政区划",trigger:"blur"}],county:[{required:!0,message:"请输入所属辖区",trigger:"blur"}],cntrBegntime:[{required:!0,message:"请选择合同开始时间",trigger:"change"}],cntrEndtime:[{required:!0,message:"请选择合同结束时间",trigger:"change"}],liceIssuDate:[{required:!0,message:"请选择持证时间",trigger:"change"}],address:[{required:!0,message:"请输入护理机构地址",trigger:"blur"}],linkMan:[{required:!0,message:"请输入联系人",trigger:"blur"}],linkPhoneNumber:[{required:!0,message:"请输入联系号码",trigger:"blur"}],provinceCode:[{required:!0,message:"请选择",trigger:"blur"}]},temp:{},downloadLoading:!1,loadExp:!1,cityList:[],areaList:[],provinceList:[],admdvsCodgGrp:[],options:[],file_list:[],fileType:{"01":"01","02":"02","03":"03","04":"04"}}),created(){this.provinceList=pcaCode,this.getList()},methods:{selectChange(e){console.log(e),this.temp.bankMajcls=e.bank_type_code,this.temp.bankName=e.bank_abbr,this.temp.bankId=e.bank_id},remoteMethod(e){return new Promise((t,n)=>{SysUnitBank({bankName:e}).then(e=>{1==e.status&&(this.options=e.result,t(this.options))})})},provinceChange(e,t){e&&(this.cityList=e.children,this.temp.provinceCode=e.code,t||this.crealt())},cityChange(e,t){e&&(this.areaList=e.children,this.temp.cityCode=e.code,t||this.$set(this.temp,"county",""))},changeDistrict(e){this.temp.countyCode=e.code},initProvince(e){e||(this.cityList=[],this.areaList=[],this.crealt())},initCity(e){e||(this.areaList=[],this.$set(this.temp,"cityCode",""))},initCounty(e){e||this.$set(this.temp,"countyCode","")},crealt(){this.$set(this.temp,"city",""),this.$set(this.temp,"county",""),this.$set(this.temp,"cityCode",""),this.$set(this.temp,"countyCode","")},getSysUnitBank(e){SysUnitBank({bankName:e}).then(t=>{console.log(t),"1"===t.status&&(this.temp={...this.temp,bankMajcls:bankMajcls,bankName:e,bankId:bankId,bankacct:bankacct,bankAcctname:bankAcctname})})},expExcel(){try{this.loadExp=!0;exportsysUnitInfo({}).then(e=>{const t=new Blob([e]);if(t.size>0){const e=document.createElement("a");e.style.display="none",e.href=URL.createObjectURL(t),e.download=`机构信息/${this.$moment().format("YYYY-MM-DD")}.xlsx`,document.body.appendChild(e),e.click(),URL.revokeObjectURL(e.href),document.body.removeChild(e)}this.handleClose(),this.loadExp=!1}).catch(()=>{this.loadExp=!1})}catch(e){this.loadExp=!1,console.log(e)}},urlClick(e){this.onPreview({url:e.agreementPdf})},beforeAvatarUploada(e){this.loadingstate=!0;let t=e.name.lastIndexOf("."),n=e.name.substr(t+1);return e.size/1024/1024<10?["PDF","pdf"].indexOf(n)<0?(this.$message({message:"只能pdf文件",type:"error",center:!0}),!1):void 0:(this.$message({message:"封面不可超出10M",type:"warning",center:!0}),!1)},urlClick(e){this.onPreview({url:e.agreementPdf})},onPreview(e){const t=fileUrl(e.url||e.name);let n=`http://127.0.0.1/img/${e.url||e.name}`;if("word"==t||"wps"==t||"pdf"==t||"pptx"==t||"txt"==t)this.file.type=t;else if("image"==t)this.file.type=t;else if("video"==t)this.file.type=t;else{if("radio"!=t)return void this.$message.error("该格式不可在线预览,请下载后查看");this.file.type=t}this.file.fileurl=n,this.file.dialogVisible=!0,this.file.title=e.name},modify(e){cloudSave({id:e.id}).then(e=>{if(1==e.status)return this.getList(),void this.$notify({title:"提示",message:e.info,type:"success",duration:2e3});this.$notify({title:"提示",message:e.info,type:"error",duration:2e3})})},updateBank(){SysUnitbankSave(this.temp).then(e=>{if(1==e.status)return this.dialogBankVisible=!1,this.getList(),void this.$notify({title:e.info,message:"修改成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"修改失败",type:"error",duration:2e3})})},getList(){this.listLoading=!0,SysUnitPage(this.listQuery).then(e=>{this.list=e.result.data,this.total=e.result.count,console.log(this.list),setTimeout(()=>{this.listLoading=!1},1500)}),SysUnitPage({size:9999,pageNo:1}).then(e=>{this.institutionList=e.result.data})},handleModifyStatus(e,t){this.$message({message:"操作成功",type:"success"}),e.status=t},resetting(e){this.$nextTick(()=>{this.$refs[e].resetFields(),this.getList()})},add(){this.dialogStatus="create",this.dialogFormVisible=!0,this.temp={}},onSubmit(){this.getList()},concatenateStrings:(e,t,n,r)=>`${e}${r?",":""}${t}${r?",":""}${n}`,createData(){this.$refs.dataForm.validate(e=>{e&&(this.temp.admdvsCodgGrp=this.concatenateStrings(this.temp.provinceCode,this.temp.cityCode,this.temp.countyCode),this.temp.file_list=this.file_list,SysUnitSave$1(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"新增成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"新增失败",type:"error",duration:2e3})}))})},updateData(){console.log(this.file_list),this.$refs.dataForm.validate(e=>{e&&(this.temp.file_list=this.file_list,SysUnitSave$1(this.temp).then(e=>{if(1==e.status)return this.dialogFormVisible=!1,this.getList(),void this.$notify({title:e.info,message:"更新成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"更新失败",type:"error",duration:2e3})}))})},edit(e){this.fileList=[],this.oneFileList=[],this.twoFileList=[],this.threeFileList=[],this.temp=e,this.dialogStatus="update",this.dialogFormVisible=!0,e.agreementPdf&&this.fileList.push({name:e.agreementPdf,url:e.agreementPdf}),e.oneFile&&this.oneFileList.push({name:e.oneFile,url:e.oneFile}),e.twoFile&&this.twoFileList.push({name:e.twoFile,url:e.twoFile}),e.threeFile&&this.threeFileList.push({name:e.threeFile,url:e.threeFile})},handleDelete(e,t){SysUnitDel({id:e.id}).then(e=>{if(console.log(e),1==e.status)return this.getList(),void this.$notify({title:e.info,message:"删除成功",type:"success",duration:2e3});this.$notify({title:e.info,message:"删除失败",type:"error",duration:2e3})})},handleFileUpload(e){const t=new FormData;t.append("file",e.file),t.append("realPath",e.file.name),t.append("fileName",e.file.name),t.append("att_type",e.data.file_type),console.log(e.data.file_type),uploadPDF(t).then(n=>{1==n.status&&(this.$message({message:"上传成功",type:"success"}),"04"==e.data.file_type&&(this.temp.agreementPdf=n.result.url),"01"==e.data.file_type&&(this.temp.oneFile=n.result.url),"02"==e.data.file_type&&(this.temp.twoFile=n.result.url),"03"==e.data.file_type&&(this.temp.threeFile=n.result.url)),uploadThird(t).then(t=>{if(1==t.status){const n={file_type:e.data.file_type,fs_d_t_o_list:[{file_id:t.result.output.file_id,att_name:t.result.output.att_name}]};this.addFile(n)}})})},beforeRemove(e,t){return this.$confirm(`确定移除 ${e.name}?`)},handleCertPicUrlRemove(e,t){for(var n=0;n<this.file_list.length;n++)this.file_list[n].fs_d_t_o_list=this.file_list[n].fs_d_t_o_list.filter(t=>t.att_name!=e.name);console.log(this.file_list)},addFile(e){const t=this.file_list.find(t=>t.file_type===e.file_type);t&&e.file_type==this.fileType[e.file_type]?t.fs_d_t_o_list.push(e.fs_d_t_o_list[0]):this.file_list.push(e),console.log(this.file_list)}}};const __vue_script__$4=script$4;var __vue_render__$4=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-form",{ref:"listQuery",staticClass:"demo-form-inline",attrs:{inline:!0,model:e.listQuery}},[n("el-form-item",{attrs:{label:"机构名称",prop:"name"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择机构名称"},model:{value:e.listQuery.name,callback:function(t){e.$set(e.listQuery,"name",t)},expression:"listQuery.name"}},e._l(e.institutionList,function(e,t){return n("el-option",{key:t,attrs:{label:e.name,value:e.name}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"地址",prop:"address"}},[n("el-input",{attrs:{size:"small",placeholder:"请输入地址"},model:{value:e.listQuery.address,callback:function(t){e.$set(e.listQuery,"address",t)},expression:"listQuery.address"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.onSubmit}},[e._v("查询")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(t){return e.resetting("listQuery")}}},[e._v("重置")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.add}},[e._v("新增")])],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{size:"small",type:"primary",loading:e.loadExp},on:{click:e.expExcel}},[e._v("\n 导 出\n ")])],1)],1)],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{border:"",height:"65vh",data:e.list}},[n("el-table-column",{attrs:{label:"机构名称",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.name))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"机构编码",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.no))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"行政区划",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.city))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属辖区",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.county))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理机构地址",align:"center",width:"200","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.address))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护理机构类型",align:"center",width:"150","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("el-tag",{attrs:{size:"medium"}},[e._v(e._s("01"==r.type?"上门护理机构":"02"==r.type?"养老机构":"03"==r.type?"医疗机构":"04"==r.type?"辅助器具机构":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"联系人",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.linkMan))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"联系号码",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.linkPhoneNumber))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"护工数",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.userNum))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"银行名称",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"银行账号",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankacct))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"开户行信息",align:"center","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s(r.bankAcctname))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"300","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row,l=t.$index;return[n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.modify(r,l)}}},[e._v("\n 机构信息同步\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary"},on:{click:function(t){return e.edit(r,l)}}},[e._v("\n 修改\n ")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete(r,l)}}},[e._v("\n 删除\n ")])]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.pageNo,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"pageNo",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.getList}}),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible,width:"45%"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构名称",prop:"name"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入机构名称",size:"small"},model:{value:e.temp.name,callback:function(t){e.$set(e.temp,"name",t)},expression:"temp.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"省/市/区:"}},[n("div",{staticClass:"setCity"},[n("el-select",{attrs:{size:"small",placeholder:"请选择省份",clearable:"",filterable:""},on:{change:e.initProvince},model:{value:e.temp.province,callback:function(t){e.$set(e.temp,"province",t)},expression:"temp.province"}},e._l(e.provinceList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.provinceChange(t)}}})}),1),e._v(" "),n("el-select",{attrs:{size:"small",placeholder:"请选择城市",clearable:"",filterable:""},on:{change:e.initCity},model:{value:e.temp.city,callback:function(t){e.$set(e.temp,"city",t)},expression:"temp.city"}},e._l(e.cityList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.cityChange(t)}}})}),1),e._v(" "),n("el-select",{attrs:{size:"small",placeholder:"请选择辖区",clearable:"",filterable:""},on:{change:e.initCounty},model:{value:e.temp.county,callback:function(t){e.$set(e.temp,"county",t)},expression:"temp.county"}},e._l(e.areaList,function(t,r){return n("el-option",{key:r,attrs:{label:t.name,value:t.name},nativeOn:{click:function(n){return e.changeDistrict(t)}}})}),1)],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"定点归属医保区划:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择定点归属医保区划",clearable:"",filterable:""},model:{value:e.temp.admdvsType,callback:function(t){e.$set(e.temp,"admdvsType",t)},expression:"temp.admdvsType"}},e._l([{label:"省",value:"省"},{label:"市",value:"市"},{label:"区",value:"区"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"注册机构类型:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择注册机构类型",clearable:"",filterable:""},model:{value:e.temp.orgRegType,callback:function(t){e.$set(e.temp,"orgRegType",t)},expression:"temp.orgRegType"}},e._l([{label:"公立",value:"公立"},{label:"非公立",value:"非公立"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构经营类型:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择机构经营类型",clearable:"",filterable:""},model:{value:e.temp.orgOperateType,callback:function(t){e.$set(e.temp,"orgOperateType",t)},expression:"temp.orgOperateType"}},e._l([{label:"盈利",value:"盈利"},{label:"非盈利",value:"非盈利"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"机构单位性质:"}},[n("el-select",{attrs:{size:"small",placeholder:"请选择机构单位性质",clearable:"",filterable:""},model:{value:e.temp.orgNatu,callback:function(t){e.$set(e.temp,"orgNatu",t)},expression:"temp.orgNatu"}},e._l([{label:"事业单位",value:"事业单位"},{label:"民办非企业",value:"民办非企业"},{label:"企业",value:"企业"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法定代表人:"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入法人代表人",size:"small"},model:{value:e.temp.legrep,callback:function(t){e.$set(e.temp,"legrep",t)},expression:"temp.legrep"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法人代表证件类型:"}},[n("el-input",{attrs:{clearable:"",disabled:"",placeholder:"居民身份证",size:"small"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"法人代表证件号码:"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入法人代表证件号码:",size:"small"},model:{value:e.temp.legrepCertno,callback:function(t){e.$set(e.temp,"legrepCertno",t)},expression:"temp.legrepCertno"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"合同开始时间",prop:"cntrBegntime"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd HH:mm:ss",type:"datetime",placeholder:"合同开始时间","default-time":"12:00:00"},model:{value:e.temp.cntrBegntime,callback:function(t){e.$set(e.temp,"cntrBegntime",t)},expression:"temp.cntrBegntime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"合同结束时间",prop:"cntrEndtime"}},[n("el-date-picker",{attrs:{"value-format":"yyyy-MM-dd HH:mm:ss",type:"datetime",placeholder:"合同结束时间","default-time":"12:00:00"},model:{value:e.temp.cntrEndtime,callback:function(t){e.$set(e.temp,"cntrEndtime",t)},expression:"temp.cntrEndtime"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"统一社会信用代码",prop:"uscc"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入统一社会信用代码",size:"small"},model:{value:e.temp.uscc,callback:function(t){e.$set(e.temp,"uscc",t)},expression:"temp.uscc"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理机构地址",prop:"address"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入护理机构地址",size:"small"},model:{value:e.temp.address,callback:function(t){e.$set(e.temp,"address",t)},expression:"temp.address"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"护理机构类型",prop:"type"}},[n("el-select",{staticClass:"filter-item",staticStyle:{width:"100%"},attrs:{clearable:"",filterable:"",size:"small",placeholder:"请选择护理机构类型"},model:{value:e.temp.type,callback:function(t){e.$set(e.temp,"type",t)},expression:"temp.type"}},e._l([{label:"上门护理机构",value:"01"},{label:"养老机构",value:"02"},{label:"医疗机构",value:"03"},{label:"辅助器具机构",value:"04"}],function(e,t){return n("el-option",{key:t,attrs:{label:e.label,value:e.value}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系人",prop:"linkMan"}},[n("el-input",{attrs:{placeholder:"请输入联系人",clearable:"",size:"small"},model:{value:e.temp.linkMan,callback:function(t){e.$set(e.temp,"linkMan",t)},expression:"temp.linkMan"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系号码",prop:"linkPhoneNumber"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入联系号码",size:"small"},model:{value:e.temp.linkPhoneNumber,callback:function(t){e.$set(e.temp,"linkPhoneNumber",t)},expression:"temp.linkPhoneNumber"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行户名"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行户名",size:"small"},model:{value:e.temp.bankAcctname,callback:function(t){e.$set(e.temp,"bankAcctname",t)},expression:"temp.bankAcctname"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行账号"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行账号",size:"small"},model:{value:e.temp.bankacct,callback:function(t){e.$set(e.temp,"bankacct",t)},expression:"temp.bankacct"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行开户行名称"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入银行开户行名称","remote-method":e.remoteMethod,"value-key":"bank_id"},on:{change:e.selectChange},model:{value:e.temp.bankName,callback:function(t){e.$set(e.temp,"bankName",t)},expression:"temp.bankName"}},e._l(e.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.bank_abbr,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"描述"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入描述内容",size:"small"},model:{value:e.temp.description,callback:function(t){e.$set(e.temp,"description",t)},expression:"temp.description"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"法人证书/登记证书/营业执照"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"01"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.oneFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"养老机构设立许可证/备案回执"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"02"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.twoFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"医疗机构执业许可证"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"03"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.threeFileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"协议文件"}},[n("el-upload",{attrs:{action:"#",limit:4,data:{file_type:"04"},"before-upload":e.beforeAvatarUploada,"http-request":e.handleFileUpload,"on-preview":e.onPreview,"on-remove":e.handleCertPicUrlRemove,"before-remove":e.beforeRemove,"file-list":e.fileList}},[n("el-button",{attrs:{slot:"trigger",size:"small",type:"primary"},slot:"trigger"},[e._v("选取文件")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogFormVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"修改银行信息",visible:e.dialogBankVisible,width:"40%"},on:{"update:visible":function(t){e.dialogBankVisible=t}}},[n("el-form",{ref:"dataForm",attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行户名"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行户名",size:"small"},model:{value:e.temp.bankAcctname,callback:function(t){e.$set(e.temp,"bankAcctname",t)},expression:"temp.bankAcctname"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行账号"}},[n("el-input",{attrs:{clearable:"",placeholder:"请输入银行账号",size:"small"},model:{value:e.temp.bankacct,callback:function(t){e.$set(e.temp,"bankacct",t)},expression:"temp.bankacct"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"银行开户行名称"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入银行开户行名称","remote-method":e.remoteMethod,"value-key":"bank_id"},on:{change:e.selectChange},model:{value:e.temp.bankName,callback:function(t){e.$set(e.temp,"bankName",t)},expression:"temp.bankName"}},e._l(e.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.bank_abbr,value:e}})}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogBankVisible=!1}}},[e._v("\n 取 消\n ")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){return e.updateBank()}}},[e._v("\n 确 认\n ")])],1)],1),e._v(" "),n("preview-file",{attrs:{file:e.file}})],1)},__vue_staticRenderFns__$4=[];__vue_render__$4._withStripped=!0;const __vue_inject_styles__$4=function(e){e&&e("data-v-4ed0cbb6_0",{source:".el-col-12[data-v-4ed0cbb6] {\n padding: 0 20px 0 0;\n}\n.setCity[data-v-4ed0cbb6] {\n display: flex;\n gap: 10px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\institution\\Information\\index.vue","index.vue"],names:[],mappings:"AA87BA;EACA,mBAAA;AC77BA;ADg8BA;EACA,aAAA;EACA,SAAA;AC77BA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="app-container">\r\n <div class="filter-container">\r\n <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">\r\n <el-form-item label="机构名称" prop="name">\r\n <el-select style="width: 100%" clearable filterable size="small" v-model="listQuery.name" class="filter-item"\r\n placeholder="请选择机构名称">\r\n <el-option v-for="(item, index) in institutionList" :key="index" :label="item.name" :value="item.name" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label="地址" prop="address">\r\n <el-input size="small" v-model="listQuery.address" placeholder="请输入地址"></el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="onSubmit">查询</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="warning" @click="resetting(\'listQuery\')">重置</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="success" @click="add">新增</el-button>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button size="small" type="primary" @click="expExcel" :loading="loadExp">\r\n 导 出\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <el-table border height="65vh" :data="list" style="width: 100%">\r\n \x3c!-- @sort-change="sortChange" --\x3e\r\n <el-table-column :label="\'机构名称\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'机构编码\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.no }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'行政区划\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.city }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'所属辖区\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.county }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理机构地址\'" align="center" width="200" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.address }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护理机构类型\'" align="center" width="150" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n \x3c!-- <el-tag size="medium">{{\r\n row.type == "1" ? "养老机构" : row.type == "2" ? "上门护理机构" : "-"\r\n }}</el-tag> --\x3e\r\n <el-tag size="medium">{{\r\n row.type == "01"\r\n ? "上门护理机构"\r\n : row.type == "02"\r\n ? "养老机构"\r\n : row.type == "03"\r\n ? "医疗机构"\r\n : row.type == "04"\r\n ? "辅助器具机构"\r\n : "-"\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'联系人\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.linkMan }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'联系号码\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.linkPhoneNumber }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'护工数\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.userNum }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'描述\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.description }}</span>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'银行名称\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankName }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'银行账号\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankacct }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column :label="\'开户行信息\'" align="center" show-overflow-tooltip>\r\n <template slot-scope="{ row }">\r\n <span>{{ row.bankAcctname }}</span>\r\n </template>\r\n </el-table-column>\r\n \x3c!-- <el-table-column :label="\'协议文件\'" align="center">\r\n <template slot-scope="{ row }">\r\n <el-link type="primary" @click="urlClick(row)">{{\r\n row.agreementPdf\r\n }}</el-link>\r\n </template>\r\n </el-table-column> --\x3e\r\n <el-table-column :label="\'操作\'" align="center" width="300" class-name="small-padding fixed-width">\r\n <template slot-scope="{ row, $index }">\r\n <el-button size="mini" type="primary" @click="modify(row, $index)">\r\n 机构信息同步\r\n </el-button>\r\n <el-button size="mini" type="primary" @click="edit(row, $index)">\r\n 修改\r\n </el-button>\r\n <el-button size="mini" type="danger" @click="handleDelete(row, $index)">\r\n 删除\r\n </el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"\r\n @pagination="getList" />\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"\r\n :visible.sync="dialogFormVisible" width="45%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="150px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="机构名称" prop="name">\r\n <el-input clearable placeholder="请输入机构名称" size="small" v-model="temp.name" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="省/市/区:">\r\n <div class="setCity">\r\n <el-select size="small" placeholder="请选择省份" v-model="temp.province" clearable filterable\r\n @change="initProvince">\r\n <el-option v-for="(item, index) in provinceList" :key="index" :label="item.name"\r\n @click.native="provinceChange(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n <el-select size="small" placeholder="请选择城市" v-model="temp.city" clearable filterable @change="initCity">\r\n <el-option v-for="(item, index) in cityList" :key="index" :label="item.name"\r\n @click.native="cityChange(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n <el-select size="small" placeholder="请选择辖区" v-model="temp.county" clearable filterable\r\n @change="initCounty">\r\n <el-option v-for="(item, index) in areaList" :key="index" :label="item.name"\r\n @click.native="changeDistrict(item)" :value="item.name">\r\n </el-option>\r\n </el-select>\r\n </div>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="定点归属医保区划:">\r\n <el-select size="small" placeholder="请选择定点归属医保区划" v-model="temp.admdvsType" clearable filterable>\r\n <el-option\r\n v-for="(item, index) in [{ label: \'省\', value: \'省\' }, { label: \'市\', value: \'市\' }, { label: \'区\', value: \'区\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="注册机构类型:">\r\n <el-select size="small" placeholder="请选择注册机构类型" v-model="temp.orgRegType" clearable filterable>\r\n <el-option v-for="(item, index) in [{ label: \'公立\', value: \'公立\' }, { label: \'非公立\', value: \'非公立\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构经营类型:">\r\n <el-select size="small" placeholder="请选择机构经营类型" v-model="temp.orgOperateType" clearable filterable>\r\n <el-option v-for="(item, index) in [{ label: \'盈利\', value: \'盈利\' }, { label: \'非盈利\', value: \'非盈利\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="机构单位性质:">\r\n <el-select size="small" placeholder="请选择机构单位性质" v-model="temp.orgNatu" clearable filterable>\r\n <el-option\r\n v-for="(item, index) in [{ label: \'事业单位\', value: \'事业单位\' }, { label: \'民办非企业\', value: \'民办非企业\' }, { label: \'企业\', value: \'企业\' }]"\r\n :key="index" :label="item.label" :value="item.value">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法定代表人:">\r\n <el-input clearable placeholder="请输入法人代表人" size="small" v-model="temp.legrep" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法人代表证件类型:">\r\n <el-input clearable disabled placeholder="居民身份证" size="small" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="法人代表证件号码:">\r\n <el-input clearable placeholder="请输入法人代表证件号码:" size="small" v-model="temp.legrepCertno" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="合同开始时间" prop="cntrBegntime">\r\n <el-date-picker v-model="temp.cntrBegntime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"\r\n placeholder="合同开始时间" default-time="12:00:00">\r\n </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="合同结束时间" prop="cntrEndtime">\r\n <el-date-picker v-model="temp.cntrEndtime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"\r\n placeholder="合同结束时间" default-time="12:00:00">\r\n </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="统一社会信用代码" prop="uscc">\r\n <el-input clearable placeholder="请输入统一社会信用代码" size="small" v-model="temp.uscc" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理机构地址" prop="address">\r\n <el-input clearable placeholder="请输入护理机构地址" size="small" v-model="temp.address" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="护理机构类型" prop="type">\r\n <el-select style="width: 100%" clearable filterable size="small" v-model="temp.type" class="filter-item"\r\n placeholder="请选择护理机构类型">\r\n <el-option v-for="(item, index) in [\r\n { label: \'上门护理机构\', value: \'01\' },\r\n { label: \'养老机构\', value: \'02\' },\r\n { label: \'医疗机构\', value: \'03\' },\r\n { label: \'辅助器具机构\', value: \'04\' },\r\n ]" :key="index" :label="item.label" :value="item.value" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系人" prop="linkMan">\r\n <el-input placeholder="请输入联系人" clearable size="small" v-model="temp.linkMan" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系号码" prop="linkPhoneNumber">\r\n <el-input clearable placeholder="请输入联系号码" size="small" v-model="temp.linkPhoneNumber" />\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span="12">\r\n <el-form-item label="银行户名">\r\n <el-input clearable placeholder="请输入银行户名" size="small" v-model="temp.bankAcctname" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行账号">\r\n <el-input clearable placeholder="请输入银行账号" size="small" v-model="temp.bankacct" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行开户行名称">\r\n <el-select style="width: 100%" v-model="temp.bankName" size="small" filterable remote reserve-keyword\r\n placeholder="请输入银行开户行名称" :remote-method="remoteMethod" :value-key="\'bank_id\'" @change="selectChange">\r\n <el-option v-for="item in options" :key="item.id" :label="item.bank_abbr" :value="item">\r\n </el-option>\r\n </el-select>\r\n \x3c!-- <el-input\r\n clearable\r\n placeholder="请输入开户行信息"\r\n size="small"\r\n v-model="temp.bankAcctname"\r\n /> --\x3e\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="描述">\r\n <el-input clearable placeholder="请输入描述内容" size="small" v-model="temp.description" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="法人证书/登记证书/营业执照">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'01\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="oneFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="养老机构设立许可证/备案回执">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'02\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="twoFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="24">\r\n <el-form-item label="医疗机构执业许可证">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'03\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="threeFileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span="24">\r\n <el-form-item label="协议文件">\r\n <el-upload action="#" :limit="4" :data="{ file_type: \'04\' }" :before-upload="beforeAvatarUploada"\r\n :http-request="handleFileUpload" :on-preview="onPreview" :on-remove="handleCertPicUrlRemove"\r\n :before-remove="beforeRemove" :file-list="fileList">\r\n <el-button slot="trigger" size="small" type="primary">选取文件</el-button>\r\n </el-upload>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogFormVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button size="small" type="primary" @click="dialogStatus === \'create\' ? createData() : updateData()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="\'修改银行信息\'"\r\n :visible.sync="dialogBankVisible" width="40%">\r\n <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="银行户名">\r\n <el-input clearable placeholder="请输入银行户名" size="small" v-model="temp.bankAcctname" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="银行账号">\r\n <el-input clearable placeholder="请输入银行账号" size="small" v-model="temp.bankacct" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n \x3c!-- <el-form-item label="开户行信息">\r\n <el-input\r\n clearable\r\n placeholder="请输入开户行信息"\r\n size="small"\r\n v-model="temp.bankAcctname"\r\n />\r\n </el-form-item> --\x3e\r\n <el-form-item label="银行开户行名称">\r\n <el-select style="width: 100%" v-model="temp.bankName" size="small" filterable remote reserve-keyword\r\n placeholder="请输入银行开户行名称" :remote-method="remoteMethod" :value-key="\'bank_id\'" @change="selectChange">\r\n <el-option v-for="item in options" :key="item.id" :label="item.bank_abbr" :value="item">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button size="small" @click="dialogBankVisible = false">\r\n 取 消\r\n </el-button>\r\n <el-button size="small" type="primary" @click="updateBank()">\r\n 确 认\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n <preview-file :file="file" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n SysUnitPage,\r\n SysUnitDel,\r\n SysUnitSave,\r\n SysUnitbankSave,\r\n exportsysUnitInfo,\r\n SysUnitBank,\r\n cloudSave\r\n} from "@/api/institution";\r\nimport Pagination from "@/components/Pagination"; // secondary package based on el-pagination\r\nimport PreviewFile from "@/components/previewFile";\r\nimport { uploadTP, uploadPDF, uploadThird } from "@/api/upload";\r\nimport { fileUrl } from "@/utils/fileUrl.js";\r\nimport pcaCode from "@/utils/pca.json";\r\nexport default {\r\n name: "personnel",\r\n components: { Pagination, PreviewFile },\r\n filters: {},\r\n data() {\r\n return {\r\n oneFileList: [],\r\n twoFileList: [],\r\n threeFileList: [],\r\n institutionList: [],\r\n FormData: {},\r\n file: {\r\n fileurl: "",\r\n dialogVisible: false,\r\n title: "",\r\n type: "",\r\n },\r\n loading: false,\r\n dialogBankVisible: false,\r\n dialogStatus: "",\r\n textMap: { update: "编辑", create: "创建" },\r\n tableKey: 0,\r\n list: null,\r\n total: 0,\r\n listLoading: true,\r\n listQuery: {\r\n pageNo: 1,\r\n size: 20,\r\n },\r\n fileList: [],\r\n dialogFormVisible: false,\r\n dialogPvVisible: false,\r\n rules: {\r\n uscc: [\r\n {\r\n required: true,\r\n message: "请输入统一社会信用代码",\r\n trigger: "blur",\r\n },\r\n ],\r\n type: [\r\n { required: true, message: "请选择护理机构类型", trigger: "change" },\r\n ],\r\n name: [{ required: true, message: "请输入机构名称", trigger: "blur" }],\r\n city: [{ required: true, message: "请输入行政区划", trigger: "blur" }],\r\n county: [\r\n { required: true, message: "请输入所属辖区", trigger: "blur" },\r\n ],\r\n cntrBegntime: [\r\n { required: true, message: "请选择合同开始时间", trigger: "change" },\r\n ],\r\n cntrEndtime: [\r\n { required: true, message: "请选择合同结束时间", trigger: "change" },\r\n ],\r\n liceIssuDate: [\r\n { required: true, message: "请选择持证时间", trigger: "change" },\r\n ],\r\n address: [\r\n { required: true, message: "请输入护理机构地址", trigger: "blur" },\r\n ],\r\n linkMan: [{ required: true, message: "请输入联系人", trigger: "blur" }],\r\n linkPhoneNumber: [\r\n { required: true, message: "请输入联系号码", trigger: "blur" },\r\n ],\r\n provinceCode: [{ required: true, message: "请选择", trigger: "blur" }],\r\n },\r\n temp: {\r\n },\r\n downloadLoading: false,\r\n loadExp: false,\r\n cityList: [],\r\n areaList: [],\r\n provinceList: [],\r\n admdvsCodgGrp: [],\r\n options: [],\r\n file_list: [],\r\n fileType: {\r\n "01": "01",\r\n "02": "02",\r\n "03": "03",\r\n "04": "04",\r\n },\r\n };\r\n },\r\n created() {\r\n this.provinceList = pcaCode;\r\n this.getList();\r\n },\r\n methods: {\r\n selectChange(value) {\r\n console.log(value)\r\n //银行大类\r\n this.temp.bankMajcls = value.bank_type_code;\r\n //银行名称\r\n this.temp.bankName = value.bank_abbr;\r\n //开户行id\r\n this.temp.bankId = value.bank_id;\r\n },\r\n remoteMethod(query) {\r\n // 在这里实现远程方法,返回一个 Promise 对象\r\n return new Promise((resolve, reject) => {\r\n SysUnitBank({ bankName: query }).then((res) => {\r\n if (res.status == 1) {\r\n this.options = res.result;\r\n resolve(this.options);\r\n }\r\n });\r\n });\r\n },\r\n provinceChange(item, type) {\r\n if (!item) return;\r\n this.cityList = item.children;\r\n // this.admdvsCodgGrp.push(item.code)\r\n this.temp.provinceCode = item.code;\r\n if (!type) this.crealt();\r\n },\r\n cityChange(item, type) {\r\n if (!item) return;\r\n this.areaList = item.children;\r\n this.temp.cityCode = item.code;\r\n if (!type) {\r\n this.$set(this.temp, "county", "");\r\n }\r\n },\r\n changeDistrict(item) {\r\n // this.admdvsCodgGrp.push(item.code)\r\n this.temp.countyCode = item.code;\r\n },\r\n //省份下拉框方法\r\n initProvince(val) {\r\n if (!val) {\r\n //城市置空\r\n this.cityList = [];\r\n //辖区置空\r\n this.areaList = [];\r\n // this.admdvsCodgGrp = [];\r\n this.crealt();\r\n }\r\n },\r\n //城市下拉框方法\r\n initCity(val) {\r\n if (!val) {\r\n //辖区置空\r\n this.areaList = [];\r\n this.$set(this.temp, "cityCode", "");\r\n }\r\n },\r\n //辖区下拉框方法\r\n initCounty(val) {\r\n if (!val) {\r\n this.$set(this.temp, "countyCode", "");\r\n }\r\n },\r\n crealt() {\r\n this.$set(this.temp, "city", "");\r\n this.$set(this.temp, "county", "");\r\n this.$set(this.temp, "cityCode", "");\r\n this.$set(this.temp, "countyCode", "");\r\n },\r\n getSysUnitBank(bankName) {\r\n SysUnitBank({ bankName }).then((res) => {\r\n console.log(res);\r\n if (res.status === "1") {\r\n // ("银行大类"); ("开户行名称"); ("开户行ID"); ("银行账号"); sw("银行户名"); sw\r\n this.temp = {\r\n ...this.temp,\r\n bankMajcls,\r\n bankName,\r\n bankId,\r\n bankacct,\r\n bankAcctname,\r\n };\r\n }\r\n });\r\n },\r\n expExcel() {\r\n try {\r\n this.loadExp = true;\r\n const form = {\r\n // startDate: this.startDate[0],\r\n // endDate: this.startDate[1],\r\n };\r\n exportsysUnitInfo(form)\r\n .then((res) => {\r\n const blob = new Blob([res]);\r\n const fileName = "机构信息";\r\n if (blob.size > 0) {\r\n const elink = document.createElement("a");\r\n elink.style.display = "none";\r\n elink.href = URL.createObjectURL(blob);\r\n // 类似a标签下载\r\n // 自定义文件名称和导出类型。最好和后台保持一致\r\n elink.download = `${fileName}/${this.$moment().format(\r\n "YYYY-MM-DD"\r\n )}.xlsx`;\r\n document.body.appendChild(elink);\r\n elink.click();\r\n // 释放URL 对象\r\n URL.revokeObjectURL(elink.href);\r\n // 删除创建的 a 标签\r\n document.body.removeChild(elink);\r\n }\r\n this.handleClose();\r\n this.loadExp = false;\r\n })\r\n .catch(() => {\r\n this.loadExp = false;\r\n });\r\n } catch (e) {\r\n this.loadExp = false;\r\n console.log(e);\r\n }\r\n },\r\n urlClick(row) {\r\n this.onPreview({ url: row.agreementPdf });\r\n },\r\n // 文件格式验证\r\n beforeAvatarUploada(file) {\r\n this.loadingstate = true;\r\n let index = file.name.lastIndexOf(".");\r\n let extension = file.name.substr(index + 1);\r\n let extensionList = [\r\n // "png",\r\n // "PNG",\r\n // "jpg",\r\n // "JPG",\r\n // "jpeg",\r\n // "JPEG",\r\n // "bmp",\r\n // "BMP",\r\n "PDF",\r\n "pdf",\r\n ];\r\n const isLt2M = file.size / 1024 / 1024 < 10;\r\n if (!isLt2M) {\r\n this.$message({\r\n message: "封面不可超出10M",\r\n type: "warning",\r\n center: true,\r\n });\r\n return false;\r\n } else if (extensionList.indexOf(extension) < 0) {\r\n this.$message({\r\n message: "只能pdf文件",\r\n type: "error",\r\n center: true,\r\n });\r\n return false;\r\n }\r\n },\r\n urlClick(row) {\r\n this.onPreview({ url: row.agreementPdf });\r\n },\r\n onPreview(file) {\r\n const type = fileUrl(file.url || file.name);\r\n let url = `http://127.0.0.1/img/${file.url || file.name}`;\r\n if (\r\n type == "word" ||\r\n type == "wps" ||\r\n type == "pdf" ||\r\n type == "pptx" ||\r\n type == "txt"\r\n ) {\r\n this.file.type = type;\r\n url = url;\r\n // url = `https://wps-view.zhihuipk.com/?src=` + url;\r\n } else if (type == "image") {\r\n this.file.type = type;\r\n } else if (type == "video") {\r\n this.file.type = type;\r\n } else if (type == "radio") {\r\n this.file.type = type;\r\n } else {\r\n this.$message.error("该格式不可在线预览,请下载后查看");\r\n return;\r\n }\r\n this.file.fileurl = url; // 后端请求回来的文件地址url\r\n this.file.dialogVisible = true; // 弹窗\r\n this.file.title = file.name; // 文件名称\r\n },\r\n modify(row) {\r\n // this.temp = row;\r\n // this.dialogBankVisible = true;\r\n cloudSave({ id: row.id }).then((res) => {\r\n if (res.status == 1) {\r\n this.getList();\r\n this.$notify({\r\n title: "提示",\r\n message: res.info,\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: "提示",\r\n message: res.info,\r\n type: "error",\r\n duration: 2000,\r\n });\r\n })\r\n },\r\n updateBank() {\r\n SysUnitbankSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogBankVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "修改成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "修改失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n },\r\n getList() {\r\n this.listLoading = true;\r\n SysUnitPage(this.listQuery).then((response) => {\r\n this.list = response.result.data;\r\n this.total = response.result.count;\r\n console.log(this.list);\r\n setTimeout(() => {\r\n this.listLoading = false;\r\n }, 1.5 * 1000);\r\n });\r\n SysUnitPage({ size: 9999, pageNo: 1 }).then((res) => {\r\n this.institutionList = res.result.data;\r\n });\r\n },\r\n handleModifyStatus(row, status) {\r\n this.$message({\r\n message: "操作成功",\r\n type: "success",\r\n });\r\n row.status = status;\r\n },\r\n resetting(formName) {\r\n this.$nextTick(() => {\r\n this.$refs[formName].resetFields();\r\n this.getList();\r\n });\r\n },\r\n add() {\r\n this.dialogStatus = "create";\r\n this.dialogFormVisible = true;\r\n this.temp = {};\r\n },\r\n onSubmit() {\r\n this.getList();\r\n },\r\n concatenateStrings(str1, str2, str3, withComma) {\r\n let result = `${str1}${withComma ? "," : ""}${str2}${withComma ? "," : ""\r\n }${str3}`;\r\n return result;\r\n },\r\n createData() {\r\n this.$refs["dataForm"].validate((valid) => {\r\n if (valid) {\r\n this.temp.admdvsCodgGrp = this.concatenateStrings(\r\n this.temp.provinceCode,\r\n this.temp.cityCode,\r\n this.temp.countyCode\r\n );\r\n this.temp.file_list = this.file_list;\r\n SysUnitSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "新增成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "新增失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n }\r\n });\r\n },\r\n updateData() {\r\n console.log(this.file_list);\r\n this.$refs["dataForm"].validate((valid) => {\r\n if (valid) {\r\n this.temp.file_list = this.file_list;\r\n SysUnitSave(this.temp).then((res) => {\r\n if (res.status == 1) {\r\n this.dialogFormVisible = false;\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "更新成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "更新失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n }\r\n });\r\n },\r\n edit(row) {\r\n this.fileList = [];\r\n this.oneFileList = [];\r\n this.twoFileList = [];\r\n this.threeFileList = [];\r\n this.temp = row;\r\n this.dialogStatus = "update";\r\n this.dialogFormVisible = true;\r\n if (row.agreementPdf) {\r\n this.fileList.push({\r\n name: row.agreementPdf,\r\n url: row.agreementPdf,\r\n });\r\n }\r\n if (row.oneFile) {\r\n this.oneFileList.push({\r\n name: row.oneFile,\r\n url: row.oneFile,\r\n });\r\n }\r\n if (row.twoFile) {\r\n this.twoFileList.push({\r\n name: row.twoFile,\r\n url: row.twoFile,\r\n });\r\n }\r\n if (row.threeFile) {\r\n this.threeFileList.push({\r\n name: row.threeFile,\r\n url: row.threeFile,\r\n });\r\n }\r\n },\r\n handleDelete(row, index) {\r\n SysUnitDel({ id: row.id }).then((res) => {\r\n console.log(res);\r\n if (res.status == 1) {\r\n this.getList();\r\n this.$notify({\r\n title: res.info,\r\n message: "删除成功",\r\n type: "success",\r\n duration: 2000,\r\n });\r\n return;\r\n }\r\n this.$notify({\r\n title: res.info,\r\n message: "删除失败",\r\n type: "error",\r\n duration: 2000,\r\n });\r\n });\r\n // this.list.splice(index, 1)\r\n },\r\n // 处理文件上传操作\r\n handleFileUpload(file) {\r\n const obj = new FormData();\r\n //上传文件\r\n obj.append("file", file.file);\r\n obj.append("realPath", file.file.name);\r\n obj.append("fileName", file.file.name);\r\n obj.append("att_type", file.data.file_type);\r\n console.log(file.data.file_type)\r\n // 上传文件接口\r\n uploadPDF(obj).then((res) => {\r\n if (res.status == 1) {\r\n this.$message({\r\n message: "上传成功",\r\n type: "success",\r\n });\r\n if (file.data.file_type == "04") {\r\n this.temp.agreementPdf = res.result.url;\r\n }\r\n if (file.data.file_type == "01") {\r\n this.temp.oneFile = res.result.url;\r\n }\r\n if (file.data.file_type == "02") {\r\n this.temp.twoFile = res.result.url;\r\n }\r\n if (file.data.file_type == "03") {\r\n this.temp.threeFile = res.result.url;\r\n }\r\n\r\n }\r\n uploadThird(obj).then((res) => {\r\n if (res.status == 1) {\r\n const obj = {\r\n file_type: file.data.file_type,\r\n fs_d_t_o_list: [\r\n {\r\n file_id: res.result.output.file_id,\r\n att_name: res.result.output.att_name,\r\n },\r\n ],\r\n };\r\n this.addFile(obj);\r\n }\r\n });\r\n });\r\n },\r\n beforeRemove(file, fileList) {\r\n return this.$confirm(`确定移除 ${file.name}?`);\r\n },\r\n handleCertPicUrlRemove(file, fileList) {\r\n for (var i = 0; i < this.file_list.length; i++) {\r\n this.file_list[i].fs_d_t_o_list = this.file_list[i].fs_d_t_o_list.filter((item) => {\r\n return item.att_name != file.name;\r\n });\r\n }\r\n console.log(this.file_list);\r\n },\r\n addFile(newFile) {\r\n const existingFileType = this.file_list.find(\r\n (item) => item.file_type === newFile.file_type\r\n );\r\n if (existingFileType) {\r\n if (newFile.file_type == this.fileType[newFile.file_type]) {\r\n existingFileType.fs_d_t_o_list.push(newFile.fs_d_t_o_list[0]);\r\n } else {\r\n this.file_list.push(newFile);\r\n }\r\n } else {\r\n this.file_list.push(newFile);\r\n }\r\n console.log(this.file_list);\r\n },\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.el-col-12 {\r\n padding: 0 20px 0 0;\r\n}\r\n\r\n.setCity {\r\n display: flex;\r\n gap: 10px;\r\n}\r\n</style>',".el-col-12 {\n padding: 0 20px 0 0;\n}\n\n.setCity {\n display: flex;\n gap: 10px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$4="data-v-4ed0cbb6",__vue_module_identifier__$4=void 0,__vue_is_functional_template__$4=!1,__vue_component__$4=normalizeComponent({render:__vue_render__$4,staticRenderFns:__vue_staticRenderFns__$4},__vue_inject_styles__$4,__vue_script__$4,__vue_scope_id__$4,__vue_is_functional_template__$4,__vue_module_identifier__$4,!1,createInjector,void 0,void 0);var script$3={components:{Pagination:Pagination},name:"user",data:()=>({listLoading:!0,roleList:[],dialogFormVisible:!1,isRouterView:!1,list:[],total:0,queryForm:{pageNo:1,size:10},queryLoad:!1,loading:!1,form:{},saveRules:{name:[{required:!0,message:"请填写账号",trigger:"blur"}],mobile:[{required:!0,message:"请输入手机号码",trigger:"blur"},{validator:(e,t,n)=>{if(!t)return n(new Error("手机号不能为空"));if(!/^1[3456789]\d{9}$/.test(t))return n(new Error("请输入正确的手机号"));n()},trigger:"blur"}]},headPicLoading:!1,headPic:"",formMi:{},dialogFormVisibleMi:!1,dialogTitle:"",unitList:[]}),methods:{add(){this.form={},this.dialogFormVisible=!0,this.dialogTitle="新增用户"},edit(e){this.form={...e.row},this.dialogFormVisible=!0,this.dialogTitle="用户修改"},del(e){let t=e.row;this.$confirm("此操作将永久删除该记录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysUserDel({id:t.id}).then(e=>{1===e.status?(this.$message.success(e.info),this.handleSubmit()):this.$message.error(e.info)})})},resetPassword(e){let t=e.row;this.$confirm("确定是否重置该用户的密码?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysUserResetPass({id:t.id}).then(e=>{1===e.status?this.$message.success(e.info):this.$message.error(e.info)})})},save(){this.$refs.form.validate(e=>{if(e){for(let e in this.roleList)this.roleList[e].id===this.form.roleId&&(this.form.roleName=this.roleList[e].name);SysUserSave(this.form).then(e=>{1===e.status?(this.$message.success(e.info),this.dialogFormVisible=!1,this.handleSubmit()):this.$message.error(e.info)})}})},reset(){this.form={},this.delHeadPic()},handleAvatarSuccess(e){1===e.status&&(this.form.headPic=e.result,this.headPic=e.result,this.headPicLoading=!0)},beforeAvatarUpload(e){const t="image/jpeg"===e.type||"image/jpg",n=e.size/1024/1024<2;return t||this.$message.error("上传头像图片只能是 JPG 或 PNG 格式!"),n||this.$message.error("上传头像图片大小不能超过 2MB!"),t&&n},delHeadPic(){this.headPic="",this.headPicLoading=!1},handleSubmit(){this.list=[],this.queryLoad=!0,SysUserPage(this.queryForm).then(e=>{if(1===e.status){setTimeout(()=>{this.listLoading=!1,this.queryLoad=!1},1500),this.total=e.result.count;let n=e.result.data;for(var t=0;t<n.length;t++)n[t].index=t+1,n[t].roleNameTem=n[t].roleName,this.list.push(n[t]);this.total>=1&&(this.loading=!0)}})},handleSizeChange(e){this.queryForm.limit=e,this.handleSubmit()},handleCurrentChange(e){this.queryForm.page=e,this.handleSubmit()}},created(){SysRoleAll().then(e=>{1===e.status&&(this.roleList=e.result)}),SysUnitAll$1().then(e=>{1===e.status&&(this.unitList=e.result)}),this.handleSubmit()}};const __vue_script__$3=script$3;var __vue_render__$3=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagebox"},[n("div",{staticClass:"pagebox-search"},[n("el-form",{attrs:{inline:!0,size:"mini"}},[n("el-form-item",{attrs:{label:"账号名称"}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入账号",clearable:""},model:{value:e.queryForm.name,callback:function(t){e.$set(e.queryForm,"name",t)},expression:"queryForm.name"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"联系方式 ",clearable:""}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入联系方式",clearable:""},model:{value:e.queryForm.mobile,callback:function(t){e.$set(e.queryForm,"mobile",t)},expression:"queryForm.mobile"}})],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-right":"0"}},[n("el-button",{staticStyle:{border:"none"},attrs:{type:"primary",size:"small",icon:"el-icon-search",disabled:e.queryLoad},on:{click:e.handleSubmit}},[e._v("查询")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.add()}}},[n("i",{staticClass:"el-icon-plus"}),e._v("\n 新增\n ")])],1)],1)],1),e._v(" "),n("div",{staticClass:"pagebox-content"},[n("el-table",{staticStyle:{width:"100%"},attrs:{height:"65vh",border:"",data:e.list}},[n("el-table-column",{attrs:{prop:"name",align:"center",label:"账号"}}),e._v(" "),n("el-table-column",{attrs:{prop:"mobile",align:"center",label:"联系方式"}}),e._v(" "),n("el-table-column",{attrs:{prop:"roleNameTem",align:"center",label:"角色"}}),e._v(" "),n("el-table-column",{attrs:{prop:"status",align:"center",label:"状态"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.row;return[n("span",[e._v(e._s("1"==r.status?"有效":"2"==r.status?"无效":"-"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",align:"center",width:"280"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"user_btn_items"},[n("el-button",{attrs:{type:"primary",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.edit(t)}}},[e._v("编辑")]),e._v(" "),n("el-button",{attrs:{type:"danger",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.del(t)}}},[e._v("移除")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.resetPassword(t)}}},[e._v("密码重置")])],1)]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryForm.page,limit:e.queryForm.limit},on:{"update:page":function(t){return e.$set(e.queryForm,"page",t)},"update:limit":function(t){return e.$set(e.queryForm,"limit",t)},pagination:e.handleSubmit}})],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.dialogTitle,width:"40%",visible:e.dialogFormVisible,"modal-append-to-body":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"form",attrs:{model:e.form,rules:e.saveRules,"label-position":"right","label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"账号:",prop:"name"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请输入账号",clearable:""},model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"联系方式:",prop:"mobile"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请输入手机号码",clearable:""},model:{value:e.form.mobile,callback:function(t){e.$set(e.form,"mobile",t)},expression:"form.mobile"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属角色:",prop:"roleId"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择所属角色"},model:{value:e.form.roleId,callback:function(t){e.$set(e.form,"roleId",t)},expression:"form.roleId"}},e._l(e.roleList,function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1)],1)],1),e._v(" "),"1751170028811567106"!=e.form.roleId&&"1751169876856127489"!=e.form.roleId?n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属机构:",prop:"unitId"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择所属机构"},model:{value:e.form.unitId,callback:function(t){e.$set(e.form,"unitId",t)},expression:"form.unitId"}},e._l(e.unitList,function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1)],1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"状态:"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择状态",clearable:""},model:{value:e.form.status,callback:function(t){e.$set(e.form,"status",t)},expression:"form.status"}},[n("el-option",{attrs:{label:"无效",value:"2"}}),e._v(" "),n("el-option",{attrs:{label:"有效",value:"1"}})],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.save}},[e._v("保存")]),e._v(" "),n("el-button",{attrs:{size:"small"},on:{click:e.reset}},[e._v("重置")])],1)],1),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"密码修改",visible:e.dialogFormVisibleMi,"modal-append-to-body":!1,width:"700px"},on:{"update:visible":function(t){e.dialogFormVisibleMi=t}}},[n("el-form",{ref:"form",staticStyle:{display:"flex","flex-direction":"column","justify-content":"center","align-items":"center"},attrs:{model:e.formMi,rules:e.saveRules}},[n("div",{staticClass:"user_form_item"},[n("el-form-item",{attrs:{label:"账号:"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{disabled:""},model:{value:e.formMi.name,callback:function(t){e.$set(e.formMi,"name",t)},expression:"formMi.name"}})],1)],1),e._v(" "),n("div",{staticClass:"user_form_item"},[n("el-form-item",{attrs:{label:"密码:"}},[n("el-input",{staticStyle:{width:"100%"},attrs:{type:"password",clearable:""},model:{value:e.formMi.password,callback:function(t){e.$set(e.formMi,"password",t)},expression:"formMi.password"}})],1)],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"})],1)],1)},__vue_staticRenderFns__$3=[];__vue_render__$3._withStripped=!0;const __vue_inject_styles__$3=function(e){e&&e("data-v-ebd64368_0",{source:".pagebox[data-v-ebd64368] {\n padding: 20px;\n}\n.el-form-item__content[data-v-ebd64368] {\n margin-left: 0 !important;\n}\n.el-dialog__title[data-v-ebd64368] {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\sys\\user\\index.vue","index.vue"],names:[],mappings:"AA+TA;EACA,aAAA;AC9TA;ADkUA;EACA,yBAAA;AC/TA;ADyVA;EACA,eAAA;ACtVA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="pagebox">\r\n <div class="pagebox-search">\r\n <el-form :inline="true" size="mini">\r\n <el-form-item label="账号名称">\r\n <el-input v-model="queryForm.name" placeholder="请输入账号" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item label="联系方式 " clearable>\r\n <el-input v-model="queryForm.mobile" placeholder="请输入联系方式" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item style="margin-right: 0">\r\n <el-button type="primary" size="small" icon="el-icon-search" :disabled="queryLoad" @click="handleSubmit"\r\n style="border: none">查询</el-button>\r\n <el-button type="primary" @click="add()">\r\n <i class="el-icon-plus" />\r\n 新增\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <div class="pagebox-content">\r\n <el-table height="65vh" border :data="list" style="width: 100%">\r\n \x3c!-- <el-table-column prop="index" align="center" label="排序" width="100" /> --\x3e\r\n <el-table-column prop="name" align="center" label="账号" />\r\n <el-table-column prop="mobile" align="center" label="联系方式" />\r\n <el-table-column prop="roleNameTem" align="center" label="角色" />\r\n <el-table-column prop="status" align="center" label="状态">\r\n <template slot-scope="{row}">\r\n <span>{{ row.status == \'1\' ? \'有效\' : row.status == \'2\' ? \'无效\' : \'-\' }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label="操作" align="center" width="280" >\r\n <template slot-scope="scope">\r\n <div class="user_btn_items">\r\n <el-button type="primary" @click.native.prevent="edit(scope)" size="mini">编辑</el-button>\r\n <el-button type="danger" @click.native.prevent="del(scope)" size="mini">移除</el-button>\r\n <el-button type="primary" @click.native.prevent="resetPassword(scope)" size="mini">密码重置</el-button>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="queryForm.page" :limit.sync="queryForm.limit"\r\n @pagination="handleSubmit" />\r\n </div>\r\n\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n :title="dialogTitle" width="40%" :visible.sync="dialogFormVisible" :modal-append-to-body="false">\r\n <el-form :model="form" :rules="saveRules" ref="form" label-position="right" label-width="120px">\r\n <el-row :gutter="20">\r\n <el-col :span="12">\r\n <el-form-item label="账号:" prop="name">\r\n <el-input size="small" v-model="form.name" style="width: 100%" placeholder="请输入账号" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="联系方式:" prop="mobile">\r\n <el-input size="small" v-model="form.mobile" style="width: 100%" placeholder="请输入手机号码" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="所属角色:" prop="roleId">\r\n <el-select size="small" v-model="form.roleId" placeholder="请选择所属角色" style="width: 100%">\r\n <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12" v-if="form.roleId != \'1751170028811567106\' && form.roleId != \'1751169876856127489\'">\r\n <el-form-item label="所属机构:" prop="unitId">\r\n <el-select size="small" v-model="form.unitId" placeholder="请选择所属机构" style="width: 100%">\r\n <el-option v-for="item in unitList" :key="item.id" :label="item.name" :value="item.id"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span="12">\r\n <el-form-item label="状态:">\r\n <el-select size="small" v-model="form.status" placeholder="请选择状态" style="width: 100%" clearable>\r\n <el-option label="无效" :value="\'2\'"></el-option>\r\n <el-option label="有效" :value="\'1\'"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" size="small" @click="save">保存</el-button>\r\n <el-button @click="reset" size="small">重置</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n \x3c!-- 密码修改 --\x3e\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n title="密码修改" :visible.sync="dialogFormVisibleMi" :modal-append-to-body="false" width="700px">\r\n <el-form :model="formMi" :rules="saveRules" ref="form" style="\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n ">\r\n \x3c!-- --\x3e\r\n <div class="user_form_item">\r\n <el-form-item label="账号:">\r\n <el-input v-model="formMi.name" style="width: 100%" disabled></el-input>\r\n </el-form-item>\r\n </div>\r\n <div class="user_form_item">\r\n <el-form-item label="密码:">\r\n <el-input type="password" v-model="formMi.password" style="width: 100%" clearable></el-input>\r\n </el-form-item>\r\n </div>\r\n </el-form>\r\n \x3c!-- 保存/重置 --\x3e\r\n <div slot="footer" class="dialog-footer">\r\n \x3c!-- <el-button type="primary" @click="savePassWord">保存</el-button>--\x3e\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport Pagination from \'@/components/Pagination\'\r\nimport {\r\n SysUserUPPass,\r\n SysUserResetPass,\r\n SysUserPage,\r\n SysUserDel,\r\n SysUserSave,\r\n SysRoleAll,\r\n SysUnitAll,\r\n} from "@/api/sys.js";\r\n\r\nexport default {\r\n components: { Pagination },\r\n // inject:[\'reload\'],\r\n name: "user",\r\n data() {\r\n var checkPhone = (rule, value, callback) => {\r\n // 手机号验证\r\n if (!value) {\r\n return callback(new Error("手机号不能为空"));\r\n } else {\r\n const reg = /^1[3456789]\\d{9}$/;\r\n if (reg.test(value)) {\r\n callback();\r\n } else {\r\n return callback(new Error("请输入正确的手机号"));\r\n }\r\n }\r\n };\r\n return {\r\n listLoading: true,\r\n roleList: [],\r\n dialogFormVisible: false,\r\n isRouterView: false,\r\n list: [],\r\n total: 0,\r\n queryForm: {\r\n pageNo: 1,\r\n size: 10,\r\n },\r\n queryLoad: false,\r\n loading: false,\r\n form: {},\r\n saveRules: {\r\n name: [{ required: true, message: "请填写账号", trigger: "blur" }],\r\n mobile: [\r\n { required: true, message: "请输入手机号码", trigger: "blur" },\r\n { validator: checkPhone, trigger: "blur" },\r\n ],\r\n },\r\n headPicLoading: false,\r\n headPic: "",\r\n formMi: {},\r\n dialogFormVisibleMi: false,\r\n dialogTitle: "",\r\n unitList: []\r\n };\r\n },\r\n methods: {\r\n add() {\r\n this.form = {};\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "新增用户";\r\n },\r\n edit(data) {\r\n this.form = { ...data.row };\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "用户修改";\r\n },\r\n del(data) {\r\n let row = data.row;\r\n this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysUserDel({ id: row.id }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n resetPassword(data) {\r\n let row = data.row;\r\n this.$confirm("确定是否重置该用户的密码?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysUserResetPass({\r\n id: row.id,\r\n }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n save() {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n for (let v in this.roleList) {\r\n if (this.roleList[v].id === this.form.roleId) {\r\n this.form.roleName = this.roleList[v].name;\r\n }\r\n }\r\n SysUserSave(this.form).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.dialogFormVisible = false;\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n reset() {\r\n this.form = {};\r\n this.delHeadPic();\r\n },\r\n handleAvatarSuccess(res) {\r\n if (res.status === 1) {\r\n this.form.headPic = res.result;\r\n this.headPic = res.result;\r\n this.headPicLoading = true;\r\n }\r\n },\r\n beforeAvatarUpload(file) {\r\n const fileType = file.type === "image/jpeg" || "image/jpg";\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!fileType) {\r\n this.$message.error("上传头像图片只能是 JPG 或 PNG 格式!");\r\n }\r\n if (!isLt2M) {\r\n this.$message.error("上传头像图片大小不能超过 2MB!");\r\n }\r\n return fileType && isLt2M;\r\n },\r\n delHeadPic() {\r\n this.headPic = "";\r\n this.headPicLoading = false;\r\n },\r\n handleSubmit() {\r\n this.list = [];\r\n this.queryLoad = true;\r\n SysUserPage(this.queryForm).then((res) => {\r\n if (res.status === 1) {\r\n setTimeout(() => {\r\n this.listLoading = false\r\n this.queryLoad = false;\r\n }, 1.5 * 1000)\r\n this.total = res.result.count;\r\n let dep = res.result.data;\r\n for (var i = 0; i < dep.length; i++) {\r\n dep[i].index = i + 1;\r\n dep[i].roleNameTem = dep[i].roleName;\r\n this.list.push(dep[i]);\r\n }\r\n if (this.total >= 1) {\r\n this.loading = true;\r\n }\r\n }\r\n });\r\n },\r\n handleSizeChange(val) {\r\n this.queryForm.limit = val;\r\n this.handleSubmit();\r\n },\r\n handleCurrentChange(val) {\r\n this.queryForm.page = val;\r\n this.handleSubmit();\r\n },\r\n },\r\n created() {\r\n SysRoleAll().then((res) => {\r\n if (res.status === 1) {\r\n this.roleList = res.result;\r\n }\r\n });\r\n SysUnitAll().then((res) => {\r\n if (res.status === 1) {\r\n this.unitList = res.result;\r\n }\r\n });\r\n this.handleSubmit();\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.pagebox {\r\n padding: 20px;\r\n}\r\n\r\n\r\n.el-form-item__content {\r\n margin-left: 0 !important;\r\n}\r\n\r\n.el-dialog__wrapper>>>.el-dialog__header {\r\n background-color: #f8f8f8;\r\n}\r\n\r\n.el-table>>>td {\r\n text-align: center;\r\n}\r\n\r\n.el-table>>>th {\r\n text-align: center;\r\n}\r\n\r\n.role_form_item>>>.el-form-item {\r\n display: flex;\r\n align-items: center;\r\n align-content: space-between;\r\n justify-content: space-evenly;\r\n}\r\n\r\n.role_btn_items>>>.el-button {\r\n padding: 5px 10px;\r\n}\r\n\r\n.el-dialog__title {\r\n font-size: 14px;\r\n}\r\n</style>\r\n',".pagebox {\n padding: 20px;\n}\n\n.el-form-item__content {\n margin-left: 0 !important;\n}\n\n.el-dialog__title {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$3="data-v-ebd64368",__vue_module_identifier__$3=void 0,__vue_is_functional_template__$3=!1,__vue_component__$3=normalizeComponent({render:__vue_render__$3,staticRenderFns:__vue_staticRenderFns__$3},__vue_inject_styles__$3,__vue_script__$3,__vue_scope_id__$3,__vue_is_functional_template__$3,__vue_module_identifier__$3,!1,createInjector,void 0,void 0);var script$2={name:"role",data:()=>({listLoading:!0,dialogFormVisible:!1,isRouterView:!1,list:[],total:0,queryForm:{pageNo:1,size:10},queryLoad:!1,loading:!1,form:{},saveRules:{name:[{required:!0,message:"请填写角色名称",trigger:"blur"}],level:[{required:!0,message:"请选择权限级别",trigger:"blur"}]},nodeTree:[],defaultProps:{children:"children",label:"name"},nodes:[],dialogTitle:""}),components:{Pagination:Pagination},watch:{$route:{handler(e){if("/sys/role/save"==e.path)this.isRouterView=!0;else{"1"==this.$route.query.refresh&&this.handleSubmit(),this.isRouterView=!1}},immediate:!0}},methods:{add(){this.form={},this.dialogFormVisible=!0,this.dialogTitle="新增角色"},edit(e){this.form={...e.row},this.dialogTitle="角色修改",SysRoleAccess({roleId:this.form.id}).then(e=>{if(console.log(e,"resv"),1===e.status){let t=e.result;console.log(t,"list");let n=[];for(let[e,r]of t.entries())n.push(r.nodeId);this.$refs.tree.setCheckedKeys(n),console.log(n,"checkedKeys")}}),this.dialogFormVisible=!0},del(e){let t=e.row;this.$confirm("此操作将永久删除该记录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{SysRoleDel({id:t.id}).then(e=>{1===e.status?(this.$message.success(e.info),this.handleSubmit()):this.$message.error(e.info)})})},save(){this.$refs.form.validate(e=>{e&&(this.form.nodeIds=this.$refs.tree.getCheckedKeys().join(","),SysRoleSave(this.form).then(e=>{1===e.status?(this.$message.success(e.info),this.dialogFormVisible=!1,this.handleSubmit(),this.reset()):this.$message.error(e.info)}))})},reset(){this.form={}},handleSubmit(){this.list=[],this.listLoading=!0,this.queryLoad=!0,SysRolePage(this.queryForm).then(e=>{if(1===e.status){setTimeout(()=>{this.listLoading=!1,this.queryLoad=!1},1500),this.total=e.result.count;let n=e.result.data;for(var t=0;t<n.length;t++)n[t].index=t+1,this.list.push(n[t]);this.total>=1&&(this.loading=!0),console.log(this.loading)}-1===e.status&&(this.$fn.delCookie("user"),this.$store.dispatch("setUser",""),this.$store.dispatch("setRowData",{}),this.$router.push("/login"))})},handleSizeChange(e){this.queryForm.limit=e,this.handleSubmit()},handleCurrentChange(e){this.queryForm.page=e,this.handleSubmit()}},created(){this.handleSubmit(),SysNodeTree().then(e=>{if(1===e.status){this.nodeTree=[];let t={id:"0",name:"菜单",lv:0,type:"1",children:e.result};this.nodeTree.push(t)}})}};const __vue_script__$2=script$2;var __vue_render__$2=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagebox"},[n("div",{staticClass:"pagebox-search"},[n("el-form",{attrs:{inline:!0,size:"mini"}},[n("el-form-item",{attrs:{label:"角色名称"}},[n("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入角色名称",clearable:""},model:{value:e.queryForm.name,callback:function(t){e.$set(e.queryForm,"name",t)},expression:"queryForm.name"}})],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-right":"0"}},[n("el-button",{attrs:{type:"primary",disabled:e.queryLoad},on:{click:e.handleSubmit}},[n("i",{staticClass:"el-icon-search"}),e._v("\n 查询\n ")])],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-left":"15px"}},[n("el-button",{attrs:{type:"primary"},on:{click:e.add}},[n("i",{staticClass:"el-icon-plus"}),e._v("\n 新增\n ")]),e._v(" "),n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:e.dialogTitle,visible:e.dialogFormVisible,"modal-append-to-body":!1,width:"600px"},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"form",staticStyle:{display:"flex","flex-direction":"column-reverse","justify-content":"center","align-items":"center"},attrs:{model:e.form,rules:e.saveRules}},[n("div",{staticClass:"form-box"},[n("br"),e._v(" "),n("div",{staticClass:"role_form_item"},[n("el-form-item",{attrs:{prop:"name",label:"角色名称:"}},[n("el-input",{staticStyle:{width:"380px"},attrs:{autocomplete:"off",clearable:""},model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1)],1)]),e._v(" "),n("div",{staticClass:"tree-box"},[n("el-tree",{ref:"tree",staticClass:"filter-tree",staticStyle:{width:"380px"},attrs:{data:e.nodeTree,props:e.defaultProps,"expand-on-click-node":!0,"show-checkbox":"","node-key":"id"},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,l=t.data;return n("span",{staticClass:"custom-tree-node"},[n("span",[n("i",{class:l.children.length>0?"el-icon-folder-opened":"el-icon-folder"}),e._v("\n "+e._s(r.label)+"\n ")])])}}])})],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保存")]),e._v(" "),n("el-button",{on:{click:e.reset}},[e._v("重置")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"pagebox-content"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.list,border:"",height:"65vh"}},[n("el-table-column",{attrs:{prop:"name",label:"角色名称",align:"center"}}),e._v(" "),n("el-table-column",{attrs:{prop:"createTime",label:"创建时间",align:"center"}}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"150",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"role_btn_items"},[n("el-button",{staticStyle:{color:"#fff","background-color":"#93c96d"},attrs:{round:"",type:"text",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.edit(t)}}},[e._v("编辑")]),e._v(" "),n("el-button",{staticStyle:{color:"#fff","background-color":"#ff7f50"},attrs:{round:"",type:"text",size:"mini"},nativeOn:{click:function(n){return n.preventDefault(),e.del(t)}}},[e._v("移除")])],1)]}}])})],1),e._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:e.total>0,expression:"total > 0"}],attrs:{total:e.total,page:e.queryForm.page,limit:e.queryForm.limit},on:{"update:page":function(t){return e.$set(e.queryForm,"page",t)},"update:limit":function(t){return e.$set(e.queryForm,"limit",t)},pagination:e.handleSubmit}})],1)])},__vue_staticRenderFns__$2=[];__vue_render__$2._withStripped=!0;const __vue_inject_styles__$2=function(e){e&&e("data-v-a6de6998_0",{source:".pagebox[data-v-a6de6998] {\n padding: 20px;\n}\n.el-form-item[data-v-a6de6998] {\n margin-bottom: 10px !important;\n}\n.el-form-item__content[data-v-a6de6998] {\n margin-left: 0 !important;\n}\n.el-dialog__title[data-v-a6de6998] {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\pages\\sys\\role\\index.vue","index.vue"],names:[],mappings:"AAgRA;EACA,aAAA;AC/QA;ADkRA;EACA,8BAAA;AC/QA;ADkRA;EACA,yBAAA;AC/QA;ADySA;EACA,eAAA;ACtSA;;AAEA,oCAAoC",file:"index.vue",sourcesContent:['<template>\r\n <div class="pagebox">\r\n <div class="pagebox-search">\r\n <el-form :inline="true" size="mini">\r\n \x3c!-- 查询 start --\x3e\r\n <el-form-item label="角色名称">\r\n <el-input v-model="queryForm.name" placeholder="请输入角色名称" clearable style="width: 200px" />\r\n </el-form-item>\r\n <el-form-item style="margin-right: 0">\r\n <el-button type="primary" @click="handleSubmit" :disabled="queryLoad">\r\n <i class="el-icon-search" />\r\n 查询\r\n </el-button>\r\n </el-form-item>\r\n \x3c!-- end --\x3e\r\n \x3c!-- <div style="border:1px solid #ddd"></div> --\x3e\r\n \x3c!-- 新增 start --\x3e\r\n <el-form-item style="margin-left: 15px">\r\n <el-button type="primary" @click="add">\r\n <i class="el-icon-plus" />\r\n 新增\r\n </el-button>\r\n <el-dialog\r\n :close-on-click-modal="false" \r\n :close-on-press-escape="false"\r\n :title="dialogTitle" :visible.sync="dialogFormVisible" :modal-append-to-body="false" width="600px">\r\n <el-form :model="form" :rules="saveRules" ref="form" style="\r\n display: flex;\r\n flex-direction: column-reverse;\r\n justify-content: center;\r\n align-items: center;\r\n ">\r\n <div class="form-box">\r\n <br />\r\n \x3c!-- 角色名称 --\x3e\r\n <div class="role_form_item">\r\n <el-form-item prop="name" label="角色名称:">\r\n <el-input v-model="form.name" autocomplete="off" clearable style="width: 380px" />\r\n </el-form-item>\r\n </div>\r\n </div>\r\n \x3c!-- 权限 --\x3e\r\n <div class="tree-box">\r\n <el-tree class="filter-tree" :data="nodeTree" :props="defaultProps" :expand-on-click-node="true"\r\n show-checkbox node-key="id" ref="tree" style="width: 380px">\r\n <span class="custom-tree-node" slot-scope="{ node, data }">\r\n <span>\r\n <i :class="data.children.length > 0\r\n ? \'el-icon-folder-opened\'\r\n : \'el-icon-folder\'\r\n "></i>\r\n {{ node.label }}\r\n </span>\r\n </span>\r\n </el-tree>\r\n </div>\r\n </el-form>\r\n \x3c!-- 保存/重置 --\x3e\r\n <div slot="footer" class="dialog-footer">\r\n <el-button type="primary" @click="save">保存</el-button>\r\n <el-button @click="reset">重置</el-button>\r\n </div>\r\n </el-dialog>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n \x3c!-- 主体 --\x3e\r\n <div class="pagebox-content">\r\n <el-table :data="list" border height="65vh" style="width: 100%">\r\n \x3c!-- <el-table-column prop="index" label="排序" width="100" align="center"/> --\x3e\r\n <el-table-column prop="name" label="角色名称" align="center"/>\r\n <el-table-column prop="createTime" label="创建时间" align="center"/>\r\n <el-table-column label="操作" width="150" align="center">\r\n <template slot-scope="scope">\r\n <div class="role_btn_items">\r\n <el-button round style="color: #fff; background-color: #93c96d" @click.native.prevent="edit(scope)"\r\n type="text" size="mini">编辑</el-button>\r\n <el-button round style="color: #fff; background-color: #ff7f50" @click.native.prevent="del(scope)"\r\n type="text" size="mini">移除</el-button>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <pagination v-show="total > 0" :total="total" :page.sync="queryForm.page" :limit.sync="queryForm.limit"\r\n @pagination="handleSubmit" />\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport {\r\n SysRoleAll,\r\n SysRoleDel,\r\n SysRoleAccess,\r\n SysRolePage,\r\n SysRoleSave,\r\n SysNodeTree,\r\n} from "@/api/sys.js";\r\nimport Pagination from \'@/components/Pagination\'\r\nexport default {\r\n name: "role",\r\n data() {\r\n return {\r\n listLoading: true,\r\n dialogFormVisible: false,\r\n isRouterView: false,\r\n list: [],\r\n total: 0,\r\n queryForm: {\r\n pageNo: 1,\r\n size: 10,\r\n },\r\n queryLoad: false,\r\n loading: false,\r\n form: {},\r\n saveRules: {\r\n name: [{ required: true, message: "请填写角色名称", trigger: "blur" }],\r\n level: [{ required: true, message: "请选择权限级别", trigger: "blur" }],\r\n },\r\n nodeTree: [],\r\n defaultProps: {\r\n children: "children",\r\n label: "name",\r\n },\r\n nodes: [],\r\n dialogTitle: "",\r\n };\r\n },\r\n components: { Pagination },\r\n watch: {\r\n $route: {\r\n handler(route) {\r\n if (route.path == "/sys/role/save") {\r\n this.isRouterView = true;\r\n } else {\r\n let refresh = this.$route.query.refresh;\r\n if (refresh == "1") {\r\n this.handleSubmit();\r\n }\r\n this.isRouterView = false;\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n add() {\r\n this.form = {};\r\n this.dialogFormVisible = true;\r\n this.dialogTitle = "新增角色";\r\n },\r\n edit(data) {\r\n this.form = { ...data.row };\r\n this.dialogTitle = "角色修改";\r\n SysRoleAccess({\r\n roleId: this.form.id,\r\n }).then((resv) => {\r\n console.log(resv,\'resv\');\r\n \r\n if (resv.status === 1) {\r\n let list = resv.result;\r\n console.log(list,\'list\');\r\n let checkedKeys = [];\r\n for (let [i, v] of list.entries()) {\r\n // if (v.hasSon == "0") {\r\n checkedKeys.push(v.nodeId);\r\n // }\r\n }\r\n this.$refs.tree.setCheckedKeys(checkedKeys);\r\n console.log(checkedKeys,\'checkedKeys\');\r\n }\r\n });\r\n this.dialogFormVisible = true;\r\n },\r\n del(data) {\r\n let row = data.row;\r\n this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {\r\n confirmButtonText: "确定",\r\n cancelButtonText: "取消",\r\n type: "warning",\r\n }).then(() => {\r\n SysRoleDel({ id: row.id }).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.handleSubmit();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n });\r\n },\r\n // 保存\r\n save() {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n this.form.nodeIds = this.$refs.tree.getCheckedKeys().join(",");\r\n SysRoleSave(this.form).then((res) => {\r\n if (res.status === 1) {\r\n this.$message.success(res.info);\r\n this.dialogFormVisible = false;\r\n this.handleSubmit();\r\n this.reset();\r\n } else {\r\n this.$message.error(res.info);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n reset() {\r\n this.form = {};\r\n },\r\n\r\n // 查询\r\n handleSubmit() {\r\n this.list = [];\r\n this.listLoading = true\r\n this.queryLoad = true;\r\n SysRolePage(this.queryForm).then((res) => {\r\n if (res.status === 1) {\r\n setTimeout(() => {\r\n this.listLoading = false\r\n this.queryLoad = false;\r\n }, 1.5 * 1000)\r\n this.total = res.result.count;\r\n let dep = res.result.data;\r\n for (var i = 0; i < dep.length; i++) {\r\n dep[i].index = i + 1;\r\n this.list.push(dep[i]);\r\n }\r\n // console.log(this.list);\r\n if (this.total >= 1) {\r\n this.loading = true;\r\n }\r\n console.log(this.loading);\r\n }\r\n // 判断status为-1的时候,则返回登录页面\r\n if (res.status === -1) {\r\n this.$fn.delCookie("user");\r\n this.$store.dispatch("setUser", "");\r\n this.$store.dispatch("setRowData", {});\r\n this.$router.push("/login");\r\n }\r\n });\r\n },\r\n handleSizeChange(val) {\r\n this.queryForm.limit = val;\r\n this.handleSubmit();\r\n },\r\n handleCurrentChange(val) {\r\n this.queryForm.page = val;\r\n this.handleSubmit();\r\n },\r\n },\r\n created() {\r\n this.handleSubmit();\r\n SysNodeTree().then((res) => {\r\n if (res.status === 1) {\r\n this.nodeTree = [];\r\n let baseNode = {\r\n id: "0",\r\n name: "菜单",\r\n lv: 0,\r\n type: "1",\r\n children: res.result,\r\n };\r\n this.nodeTree.push(baseNode);\r\n }\r\n });\r\n },\r\n};\r\n<\/script>\r\n<style lang="scss" scoped>\r\n.pagebox {\r\n padding: 20px;\r\n}\r\n\r\n.el-form-item {\r\n margin-bottom: 10px !important;\r\n}\r\n\r\n.el-form-item__content {\r\n margin-left: 0 !important;\r\n}\r\n\r\n.el-dialog__wrapper>>>.el-dialog__header {\r\n background-color: #f8f8f8;\r\n}\r\n\r\n.el-table>>>td {\r\n text-align: center;\r\n}\r\n\r\n.el-table>>>th {\r\n text-align: center;\r\n}\r\n\r\n.role_form_item>>>.el-form-item {\r\n display: flex;\r\n align-items: center;\r\n align-content: space-between;\r\n justify-content: space-evenly;\r\n}\r\n\r\n.role_btn_items>>>.el-button {\r\n padding: 5px 10px;\r\n}\r\n\r\n.el-dialog__title {\r\n font-size: 14px;\r\n}\r\n</style>\r\n\r\n',".pagebox {\n padding: 20px;\n}\n\n.el-form-item {\n margin-bottom: 10px !important;\n}\n\n.el-form-item__content {\n margin-left: 0 !important;\n}\n\n.el-dialog__title {\n font-size: 14px;\n}\n\n/*# sourceMappingURL=index.vue.map */"]},media:void 0})},__vue_scope_id__$2="data-v-a6de6998",__vue_module_identifier__$2=void 0,__vue_is_functional_template__$2=!1,__vue_component__$2=normalizeComponent({render:__vue_render__$2,staticRenderFns:__vue_staticRenderFns__$2},__vue_inject_styles__$2,__vue_script__$2,__vue_scope_id__$2,__vue_is_functional_template__$2,__vue_module_identifier__$2,!1,createInjector,void 0,void 0);Math.easeInOutQuad=function(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t};var requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};function move(e){document.documentElement.scrollTop=e,document.body.parentNode.scrollTop=e,document.body.scrollTop=e}function position(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function scrollTo(e,t,n){const r=position(),l=e-r;let i=0;t=void 0===t?500:t;var a=function(){i+=20,move(Math.easeInOutQuad(i,r,l,t)),i<t?requestAnimFrame(a):n&&"function"==typeof n&&n()};a()}var script$1={name:"Pagination",props:{total:{required:!0,type:Number},page:{type:Number,default:1},limit:{type:Number,default:20},pageSizes:{type:Array,default:()=>[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1}},computed:{currentPage:{get(){return this.page},set(e){this.$emit("update:page",e)}},pageSize:{get(){return this.limit},set(e){this.$emit("update:limit",e)}}},methods:{handleSizeChange(e){this.$emit("pagination",{pageNo:this.currentPage,size:e}),this.autoScroll&&scrollTo(0,800)},handleCurrentChange(e){this.$emit("pagination",{pageNo:e,size:this.pageSize}),this.autoScroll&&scrollTo(0,800)}}};const __vue_script__$1=script$1;var __vue_render__$1=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"pagination-container",class:{hidden:e.hidden}},[n("el-pagination",e._b({attrs:{background:e.background,"current-page":e.currentPage,"page-size":e.pageSize,layout:e.layout,"page-sizes":e.pageSizes,total:e.total},on:{"update:currentPage":function(t){e.currentPage=t},"update:current-page":function(t){e.currentPage=t},"update:pageSize":function(t){e.pageSize=t},"update:page-size":function(t){e.pageSize=t},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}},"el-pagination",e.$attrs,!1))],1)},__vue_staticRenderFns__$1=[];__vue_render__$1._withStripped=!0;const __vue_inject_styles__$1=function(e){e&&e("data-v-253b4db8_0",{source:"\n.pagination-container[data-v-253b4db8] {\r\n background: #fff;\r\n padding: 32px 16px;\n}\n.pagination-container.hidden[data-v-253b4db8] {\r\n display: none;\n}\r\n",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\components\\Pagination\\index.vue"],names:[],mappings:";AAqFA;IACA,gBAAA;IACA,kBAAA;AACA;AAEA;IACA,aAAA;AACA",file:"index.vue",sourcesContent:['<template>\r\n <div :class="{ \'hidden\': hidden }" class="pagination-container">\r\n <el-pagination :background="background" :current-page.sync="currentPage" :page-size.sync="pageSize"\r\n :layout="layout" :page-sizes="pageSizes" :total="total" v-bind="$attrs" @size-change="handleSizeChange"\r\n @current-change="handleCurrentChange" />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { scrollTo } from \'../../utils/scroll-to\'\r\n\r\nexport default {\r\n name: \'Pagination\',\r\n props: {\r\n total: {\r\n required: true,\r\n type: Number\r\n },\r\n page: {\r\n type: Number,\r\n default: 1\r\n },\r\n limit: {\r\n type: Number,\r\n default: 20\r\n },\r\n pageSizes: {\r\n type: Array,\r\n default() {\r\n return [10, 20, 30, 50]\r\n }\r\n },\r\n layout: {\r\n type: String,\r\n default: \'total, sizes, prev, pager, next, jumper\'\r\n },\r\n background: {\r\n type: Boolean,\r\n default: true\r\n },\r\n autoScroll: {\r\n type: Boolean,\r\n default: true\r\n },\r\n hidden: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n currentPage: {\r\n get() {\r\n return this.page\r\n },\r\n set(val) {\r\n this.$emit(\'update:page\', val)\r\n }\r\n },\r\n pageSize: {\r\n get() {\r\n return this.limit\r\n },\r\n set(val) {\r\n this.$emit(\'update:limit\', val)\r\n }\r\n }\r\n },\r\n methods: {\r\n handleSizeChange(val) {\r\n this.$emit(\'pagination\', { pageNo: this.currentPage, size: val })\r\n if (this.autoScroll) {\r\n scrollTo(0, 800)\r\n }\r\n },\r\n handleCurrentChange(val) {\r\n this.$emit(\'pagination\', { pageNo: val, size: this.pageSize })\r\n if (this.autoScroll) {\r\n scrollTo(0, 800)\r\n }\r\n }\r\n }\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.pagination-container {\r\n background: #fff;\r\n padding: 32px 16px;\r\n}\r\n\r\n.pagination-container.hidden {\r\n display: none;\r\n}\r\n</style>\r\n']},media:void 0})},__vue_scope_id__$1="data-v-253b4db8",__vue_module_identifier__$1=void 0,__vue_is_functional_template__$1=!1,__vue_component__$1=normalizeComponent({render:__vue_render__$1,staticRenderFns:__vue_staticRenderFns__$1},__vue_inject_styles__$1,__vue_script__$1,__vue_scope_id__$1,__vue_is_functional_template__$1,__vue_module_identifier__$1,!1,createInjector,void 0,void 0);var script={name:"PreviewFile",components:{},props:{file:{type:Object,default:function(){return{fileurl:"",dialogVisible:!1,title:""}}}},data:()=>({height:window.innerHeight-400+"px",loading:!0,dialogVisible:!1,pdf:"https://lczhgy.zjmskj.com/img/政务中台.pdf",options:{xls:!0,minColLength:0,minRowLength:0,widthOffset:10,heightOffset:10,beforeTransformData:e=>e,transformData:e=>e}}),methods:{renderedHandler(){this.loading=!1},errorHandler(){this.$message({message:"渲染失败",type:"warning"}),this.loading=!1},handleClose(){this.file.dialogVisible=!1}}};const __vue_script__=script;var __vue_render__=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-dialog",{attrs:{"close-on-click-modal":!1,"close-on-press-escape":!1,title:"附件预览",visible:e.file.dialogVisible,"before-close":e.handleClose,"append-to-body":""},on:{"update:visible":function(t){return e.$set(e.file,"dialogVisible",t)}}},[n("div",["pdf"==e.file.type||"pptx"==e.file.type||"wps"==e.file.type||"xls"==e.file.type||"excel"==e.file.type||"word"==e.file.type||"doc"==e.file.type||"docx"==e.file.type?n("iframe",{staticClass:"child",style:{height:e.height},attrs:{frameborder:"0",src:e.file.fileurl}}):e._e(),e._v(" "),"image"==e.file.type?n("el-image",{staticStyle:{height:"100%",width:"100%"},attrs:{fit:"contain ",src:e.file.fileurl,"preview-src-list":[e.file.fileurl]}}):e._e(),e._v(" "),"video"==e.file.type?n("video",{staticStyle:{height:"100%",width:"100%"},attrs:{src:e.file.fileurl,autoplay:"",controls:"controls"}}):e._e()],1)])],1)},__vue_staticRenderFns__=[];__vue_render__._withStripped=!0;const __vue_inject_styles__=function(e){e&&e("data-v-853af682_0",{source:"\n.child[data-v-853af682] {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\n}\n.dialog-box[data-v-853af682] .el-dialog__headerbtn {\r\n font-size: 34px;\n}\n.analysis[data-v-853af682] .el-dialog {\r\n left: 119px;\n}\n.analysis-dialog[data-v-853af682] .el-dialog {\r\n left: 27px;\n}\r\n",map:{version:3,sources:["E:\\公司项目\\changhuxianlocal\\changhuxian-vue-components\\src\\components\\PreviewFile\\index.vue"],names:[],mappings:";AA0HA;EACA,WAAA;EACA,YAAA;EACA,SAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,UAAA;AACA",file:"index.vue",sourcesContent:['<template>\r\n <div>\r\n <el-dialog\r\n :close-on-click-modal="false"\r\n :close-on-press-escape="false"\r\n :title="`附件预览`"\r\n :visible.sync="file.dialogVisible"\r\n :before-close="handleClose"\r\n append-to-body\r\n >\r\n <div>\r\n \x3c!-- 简化版预览组件,移除 @vue-office 依赖 --\x3e\r\n <iframe\r\n v-if="file.type == \'pdf\' || file.type == \'pptx\' || file.type == \'wps\' || file.type == \'xls\' || file.type == \'excel\' || file.type == \'word\' || file.type == \'doc\' || file.type == \'docx\'"\r\n class="child"\r\n frameborder="0"\r\n :src="file.fileurl"\r\n :style="{ height: height }"\r\n />\r\n \x3c!-- <iframe\r\n v-if="\r\n file.type == \'word\' ||\r\n file.type == \'wps\' ||\r\n file.type == \'pdf\' ||\r\n file.type == \'pptx\' ||\r\n file.type == \'txt\'\r\n "\r\n class="child"\r\n frameborder="0"\r\n :src="file.fileurl"\r\n :style="{ height: height }"\r\n >\r\n </iframe> --\x3e\r\n <el-image\r\n v-if="file.type == \'image\'"\r\n :fit="\'contain \'"\r\n style="height: 100%; width: 100%"\r\n :src="file.fileurl"\r\n :preview-src-list="[file.fileurl]"\r\n />\r\n <video\r\n v-if="file.type == \'video\'"\r\n style="height: 100%; width: 100%"\r\n :src="file.fileurl"\r\n autoplay\r\n controls="controls"\r\n />\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n// 移除 @vue-office 相关依赖\r\nexport default {\r\n name: \'PreviewFile\',\r\n components: {\r\n // 移除组件注册\r\n },\r\n props: {\r\n file: {\r\n type: Object,\r\n default: function() {\r\n return {\r\n fileurl: \'\',\r\n dialogVisible: false,\r\n title: \'\'\r\n }\r\n }\r\n }\r\n },\r\n data() {\r\n return {\r\n height: window.innerHeight - 400 + \'px\',\r\n loading: true,\r\n dialogVisible: false,\r\n pdf: \'https://lczhgy.zjmskj.com/img/政务中台.pdf\',\r\n options: {\r\n xls: true, // 预览xlsx文件设为false;预览xls文件设为true\r\n minColLength: 0, // excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.\r\n minRowLength: 0, // excel最少渲染多少行,如果想实现根据xlsx实际函数渲染,可以将此值设置为0.\r\n widthOffset: 10, // 如果渲染出来的结果感觉单元格宽度不够,可以在默认渲染的列表宽度上再加 Npx宽\r\n heightOffset: 10, // 在默认渲染的列表高度上再加 Npx高\r\n beforeTransformData: (workbookData) => {\r\n return workbookData\r\n }, // 底层通过exceljs获取excel文件内容,通过该钩子函数,可以对获取的excel文件内容进行修改,比如某个单元格的数据显示不正确,可以在此自行修改每个单元格的value值。\r\n transformData: (workbookData) => {\r\n return workbookData\r\n } // 将获取到的excel数据进行处理之后且渲染到页面之前,可通过transformData对即将渲染的数据及样式进行修改,此时每个单元格的text值就是即将渲染到页面上的内容\r\n }\r\n }\r\n },\r\n // 这里是用来判断左边菜单栏是否打开\r\n // computed: {\r\n // ...mapGetters([\'sidebar\']),\r\n // isCollapse() {\r\n // return !this.sidebar.opened\r\n // }\r\n // },\r\n methods: {\r\n renderedHandler() {\r\n // this.$message({\r\n // message: "渲染成功",\r\n // type: "success",\r\n // });\r\n this.loading = false\r\n },\r\n errorHandler() {\r\n this.$message({\r\n message: \'渲染失败\',\r\n type: \'warning\'\r\n })\r\n this.loading = false\r\n },\r\n handleClose() {\r\n this.file.dialogVisible = false\r\n }\r\n }\r\n}\r\n<\/script>\r\n\r\n <style scoped>\r\n.child {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n}\r\n\r\n.dialog-box >>> .el-dialog__headerbtn {\r\n font-size: 34px;\r\n}\r\n\r\n.analysis >>> .el-dialog {\r\n left: 119px;\r\n}\r\n\r\n.analysis-dialog >>> .el-dialog {\r\n left: 27px;\r\n}\r\n</style>\r\n']},media:void 0})},__vue_scope_id__="data-v-853af682",__vue_module_identifier__=void 0,__vue_is_functional_template__=!1,__vue_component__=normalizeComponent({render:__vue_render__,staticRenderFns:__vue_staticRenderFns__},__vue_inject_styles__,__vue_script__,__vue_scope_id__,__vue_is_functional_template__,__vue_module_identifier__,!1,createInjector,void 0,void 0);var js_cookie={exports:{}},factory;
9
9
  /*!
10
10
  * JavaScript Cookie v2.2.1
11
11
  * https://github.com/js-cookie/js-cookie