Browse Source

Merge branch 'dev-mysql' into feature/hb-brandMaintenceSuperBackground-1127

wangyc 8 years ago
parent
commit
033b31624a
30 changed files with 2562 additions and 1408 deletions
  1. 694 698
      pom.xml
  2. 43 0
      src/main/java/com/uas/platform/b2c/core/utils/StringUtilB2C.java
  3. 14 6
      src/main/java/com/uas/platform/b2c/external/erp/commodity/service/impl/ProductDetailERPServiceImpl.java
  4. 13 4
      src/main/java/com/uas/platform/b2c/external/erp/commodity/util/ModelConverter.java
  5. 2 2
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java
  6. 2 3
      src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java
  7. 2 1
      src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java
  8. 7 3
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  9. 3 3
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  10. 3 0
      src/main/webapp/WEB-INF/views/normal/admin.html
  11. 1 0
      src/main/webapp/WEB-INF/views/normal/erp/vendor_center.html
  12. BIN
      src/main/webapp/resources/img/icon/shop_icon.png
  13. 53 13
      src/main/webapp/resources/js/admin/controllers/help/HelpDetailCtrl.js
  14. 37 7
      src/main/webapp/resources/js/admin/controllers/help/HelpEditCtrl.js
  15. 44 31
      src/main/webapp/resources/js/common/controllers/commonCtrls.js
  16. 10 0
      src/main/webapp/resources/js/common/query/help.js
  17. 2 0
      src/main/webapp/resources/js/usercenter/controllers/forstore/query_logistics_ctrl.js
  18. 7 7
      src/main/webapp/resources/js/vendor/app.js
  19. 2 0
      src/main/webapp/resources/js/vendor/controllers/forstore/query_logistics_ctrl.js
  20. 30 16
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js
  21. 3 3
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js
  22. 4 0
      src/main/webapp/resources/view/common/sidebar.html
  23. 2 1
      src/main/webapp/resources/view/usercenter/forstore/query_logistics.html
  24. 405 197
      src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_erp.html
  25. 442 202
      src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_person_erp.html
  26. 694 172
      src/main/webapp/resources/view/vendor/forstore/erp/vendor_onSale_erp.html
  27. 39 35
      src/main/webapp/resources/view/vendor/forstore/erp/vendor_undercarriage_erp.html
  28. 2 1
      src/main/webapp/resources/view/vendor/forstore/query_logistics.html
  29. 1 2
      src/main/webapp/resources/view/vendor/forstore/vendor_delivery.html
  30. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_material_person.html

+ 694 - 698
pom.xml

@@ -1,704 +1,700 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<artifactId>platform-b2c</artifactId>
-	<packaging>war</packaging>
-	<name>platform-b2c Maven Webapp</name>
-	<url>http://maven.apache.org</url>
-	<parent>
-		<groupId>com.uas.platform</groupId>
-		<artifactId>platform</artifactId>
-		<version>0.0.1-SNAPSHOT</version>
-	</parent>
-	<profiles>
-		<profile>
-			<!-- 开发环境 -->
-			<id>dev</id>
-			<properties>
-				<profile>dev</profile>
-				<!-- static plugin -->
-				<static-path>static</static-path>
-			</properties>
-			<!-- 默认 -->
-			<activation>
-				<activeByDefault>true</activeByDefault>
-			</activation>
-		</profile>
-		<profile>
-			<!-- 测试环境 -->
-			<id>test</id>
-			<properties>
-				<profile>test</profile>
-				<!-- static plugin -->
-				<static-path>static</static-path>
-			</properties>
-		</profile>
-		<profile>
-			<!-- 生产环境 -->
-			<id>prod</id>
-			<properties>
-				<profile>prod</profile>
-				<!-- static plugin -->
-				<static-path>https://static.usoftmall.com</static-path>
-			</properties>
-		</profile>
-	</profiles>
-	<dependencies>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>javax.servlet-api</artifactId>
-			<version>3.0.1</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-		</dependency>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://maven.apache.org/POM/4.0.0"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>platform-b2c</artifactId>
+  <packaging>war</packaging>
+  <name>platform-b2c Maven Webapp</name>
+  <url>http://maven.apache.org</url>
+  <parent>
+    <groupId>com.uas.platform</groupId>
+    <artifactId>platform</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <profiles>
+    <profile>
+      <!-- 开发环境 -->
+      <id>dev</id>
+      <properties>
+        <profile>dev</profile>
+        <!-- static plugin -->
+        <static-path>static</static-path>
+      </properties>
+      <!-- 默认 -->
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+    </profile>
+    <profile>
+      <!-- 测试环境 -->
+      <id>test</id>
+      <properties>
+        <profile>test</profile>
+        <!-- static plugin -->
+        <static-path>static</static-path>
+      </properties>
+    </profile>
+    <profile>
+      <!-- 生产环境 -->
+      <id>prod</id>
+      <properties>
+        <profile>prod</profile>
+        <!-- static plugin -->
+        <static-path>https://static.usoftmall.com</static-path>
+      </properties>
+    </profile>
+  </profiles>
+  <dependencies>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>javax.servlet-api</artifactId>
+      <version>3.0.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.platform</groupId>
-			<artifactId>platform-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.api</groupId>
-			<artifactId>b2c-erp-api</artifactId>
-			<version>0.0.2-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.api</groupId>
-			<artifactId>b2c-manage-api</artifactId>
-			<version>0.0.1</version>
-		</dependency>
-		<dependency>
-			<groupId>com.caucho</groupId>
-			<artifactId>hessian</artifactId>
-		</dependency>
-		<!-- spring -->
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-core</artifactId>
-			<exclusions>
-				<exclusion>
-					<groupId>commons-logging</groupId>
-					<artifactId>commons-logging</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context-support</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-webmvc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-jdbc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-tx</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-aop</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-aspects</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-test</artifactId>
-			<version>4.1.6.RELEASE</version>
-		</dependency>
-		<!-- jpa -->
-		<dependency>
-			<groupId>org.springframework.data</groupId>
-			<artifactId>spring-data-jpa</artifactId>
-		</dependency>
-		<!-- mongodb spring -->
-		<dependency>
-			<groupId>org.springframework.data</groupId>
-			<artifactId>spring-data-mongodb</artifactId>
-			<version>1.5.2.RELEASE</version>
-		</dependency>
-		<!-- xstream -->
-		<dependency>
-			<groupId>com.thoughtworks.xstream</groupId>
-			<artifactId>xstream</artifactId>
-			<version>1.3.1</version>
-		</dependency>
-		<!-- fileupload -->
-		<dependency>
-			<groupId>commons-fileupload</groupId>
-			<artifactId>commons-fileupload</artifactId>
-			<version>1.3.1</version>
-		</dependency>
-		<!-- hibernate -->
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-core</artifactId>
-			<exclusions>
-				<exclusion>
-					<groupId>xml-apis</groupId>
-					<artifactId>xml-apis</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-entitymanager</artifactId>
-			<exclusions>
-				<exclusion>
-					<groupId>cglib</groupId>
-					<artifactId>cglib</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>dom4j</groupId>
-					<artifactId>dom4j</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate.javax.persistence</groupId>
-			<artifactId>hibernate-jpa-2.1-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>commons-collections</groupId>
-			<artifactId>commons-collections</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-validator</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>jcl-over-slf4j</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.aspectj</groupId>
-			<artifactId>aspectjrt</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.aspectj</groupId>
-			<artifactId>aspectjweaver</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-lang3</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>javax.validation</groupId>
-			<artifactId>validation-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>javax.transaction</groupId>
-			<artifactId>jta</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-ehcache</artifactId>
-		</dependency>
-		<!-- jdbc -->
-		<dependency>
-			<groupId>com.oracle</groupId>
-			<artifactId>ojdbc6</artifactId>
-		</dependency>
-		<!-- mysql -->
-		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-			<version>5.1.21</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-orm</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>commons-pool</groupId>
-			<artifactId>commons-pool</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>commons-dbcp</groupId>
-			<artifactId>commons-dbcp</artifactId>
-		</dependency>
-		<!-- redis -->
-		<dependency>
-			<groupId>redis.clients</groupId>
-			<artifactId>jedis</artifactId>
-			<version>2.7.3</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.data</groupId>
-			<artifactId>spring-data-redis</artifactId>
-			<version>1.6.0.RELEASE</version>
-		</dependency>
-		<!-- spring mobile -->
-		<dependency>
-			<groupId>org.springframework.mobile</groupId>
-			<artifactId>spring-mobile-device</artifactId>
-		</dependency>
-		<!--json-lib -->
-		<dependency>
-			<groupId>net.sf.json-lib</groupId>
-			<artifactId>json-lib</artifactId>
-			<classifier>jdk15</classifier>
-		</dependency>
-		<dependency>
-			<groupId>org.codehaus.jackson</groupId>
-			<artifactId>jackson-core-asl</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.codehaus.jackson</groupId>
-			<artifactId>jackson-mapper-asl</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-databind</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-annotations</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>fastjson</artifactId>
-		</dependency>
-		<!-- velocity -->
-		<dependency>
-			<groupId>org.apache.velocity</groupId>
-			<artifactId>velocity</artifactId>
-		</dependency>
-		<!-- mail -->
-		<dependency>
-			<groupId>javax.mail</groupId>
-			<artifactId>mail</artifactId>
-		</dependency>
-		<!-- jxls -->
-		<dependency>
-			<groupId>net.sf.jxls</groupId>
-			<artifactId>jxls-core</artifactId>
-			<version>1.0.4</version>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.jxls</groupId>
-			<artifactId>jxls-reader</artifactId>
-			<version>1.0.4</version>
-		</dependency>
-		<!-- poi -->
-		<dependency>
-			<groupId>org.apache.poi</groupId>
-			<artifactId>poi</artifactId>
-			<version>3.17</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.poi</groupId>
-			<artifactId>poi-ooxml</artifactId>
-			<version>3.17</version>
-			<exclusions>
-				<exclusion>
-					<groupId>org.apache.poi</groupId>
-					<artifactId>poi</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<!-- BeeCloud支付集成SDK -->
-		<dependency>
-			<groupId>cn.beecloud</groupId>
-			<artifactId>beecloud-java-sdk</artifactId>
-			<version>3.1.0</version>
-		</dependency>
-		<dependency>
-			<groupId>jaxen</groupId>
-			<artifactId>jaxen</artifactId>
-			<version>1.1.6</version>
-			<exclusions>
-				<exclusion>
-					<groupId>dom4j</groupId>
-					<artifactId>dom4j</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>xml-apis</groupId>
-					<artifactId>xml-apis</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>xerces</groupId>
-					<artifactId>xmlParserAPIs</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>xerces</groupId>
-					<artifactId>xercesImpl</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>xerces</groupId>
-					<artifactId>xercesImpl</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>com.ibm.icu</groupId>
-					<artifactId>icu4j</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<!-- kafka消息中间件 -->
-		 <dependency>
-			 <groupId>org.springframework.kafka</groupId>
-			 <artifactId>spring-kafka</artifactId>
-			<version>1.2.2.RELEASE</version>
-		 </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.platform</groupId>
+      <artifactId>platform-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.api</groupId>
+      <artifactId>b2c-erp-api</artifactId>
+      <version>0.0.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.api</groupId>
+      <artifactId>b2c-manage-api</artifactId>
+      <version>0.0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>com.caucho</groupId>
+      <artifactId>hessian</artifactId>
+    </dependency>
+    <!-- spring -->
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-core</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context-support</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-webmvc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-jdbc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-tx</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-aop</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-aspects</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-test</artifactId>
+      <version>4.1.6.RELEASE</version>
+    </dependency>
+    <!-- jpa -->
+    <dependency>
+      <groupId>org.springframework.data</groupId>
+      <artifactId>spring-data-jpa</artifactId>
+    </dependency>
+    <!-- mongodb spring -->
+    <dependency>
+      <groupId>org.springframework.data</groupId>
+      <artifactId>spring-data-mongodb</artifactId>
+      <version>1.5.2.RELEASE</version>
+    </dependency>
+    <!-- xstream -->
+    <dependency>
+      <groupId>com.thoughtworks.xstream</groupId>
+      <artifactId>xstream</artifactId>
+      <version>1.3.1</version>
+    </dependency>
+    <!-- fileupload -->
+    <dependency>
+      <groupId>commons-fileupload</groupId>
+      <artifactId>commons-fileupload</artifactId>
+      <version>1.3.1</version>
+    </dependency>
+    <!-- hibernate -->
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>xml-apis</groupId>
+          <artifactId>xml-apis</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-entitymanager</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>cglib</groupId>
+          <artifactId>cglib</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>dom4j</groupId>
+          <artifactId>dom4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate.javax.persistence</groupId>
+      <artifactId>hibernate-jpa-2.1-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-validator</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aspectj</groupId>
+      <artifactId>aspectjrt</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aspectj</groupId>
+      <artifactId>aspectjweaver</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.validation</groupId>
+      <artifactId>validation-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.transaction</groupId>
+      <artifactId>jta</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-ehcache</artifactId>
+    </dependency>
+    <!-- mysql -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>5.1.21</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-orm</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-pool</groupId>
+      <artifactId>commons-pool</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-dbcp</groupId>
+      <artifactId>commons-dbcp</artifactId>
+    </dependency>
+    <!-- redis -->
+    <dependency>
+      <groupId>redis.clients</groupId>
+      <artifactId>jedis</artifactId>
+      <version>2.7.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.data</groupId>
+      <artifactId>spring-data-redis</artifactId>
+      <version>1.6.0.RELEASE</version>
+    </dependency>
+    <!-- spring mobile -->
+    <dependency>
+      <groupId>org.springframework.mobile</groupId>
+      <artifactId>spring-mobile-device</artifactId>
+    </dependency>
+    <!--json-lib -->
+    <dependency>
+      <groupId>net.sf.json-lib</groupId>
+      <artifactId>json-lib</artifactId>
+      <classifier>jdk15</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.jackson</groupId>
+      <artifactId>jackson-core-asl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.jackson</groupId>
+      <artifactId>jackson-mapper-asl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+    </dependency>
+    <!-- velocity -->
+    <dependency>
+      <groupId>org.apache.velocity</groupId>
+      <artifactId>velocity</artifactId>
+    </dependency>
+    <!-- mail -->
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
+    </dependency>
+    <!-- jxls -->
+    <dependency>
+      <groupId>net.sf.jxls</groupId>
+      <artifactId>jxls-core</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+    <dependency>
+      <groupId>net.sf.jxls</groupId>
+      <artifactId>jxls-reader</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+    <!-- poi -->
+    <dependency>
+      <groupId>org.apache.poi</groupId>
+      <artifactId>poi</artifactId>
+      <version>3.17</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.poi</groupId>
+      <artifactId>poi-ooxml</artifactId>
+      <version>3.17</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <!-- BeeCloud支付集成SDK -->
+    <dependency>
+      <groupId>cn.beecloud</groupId>
+      <artifactId>beecloud-java-sdk</artifactId>
+      <version>3.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>jaxen</groupId>
+      <artifactId>jaxen</artifactId>
+      <version>1.1.6</version>
+      <exclusions>
+        <exclusion>
+          <groupId>dom4j</groupId>
+          <artifactId>dom4j</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>xml-apis</groupId>
+          <artifactId>xml-apis</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>xerces</groupId>
+          <artifactId>xmlParserAPIs</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>xerces</groupId>
+          <artifactId>xercesImpl</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.ibm.icu</groupId>
+          <artifactId>icu4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <!-- kafka消息中间件 -->
+    <dependency>
+      <groupId>org.springframework.kafka</groupId>
+      <artifactId>spring-kafka</artifactId>
+      <version>1.2.2.RELEASE</version>
+    </dependency>
 
-		<!-- service on dubbo -->
-		<dependency>
-			<groupId>com.uas.dfs</groupId>
-			<artifactId>dfs-api</artifactId>
-		</dependency>
-		<!-- search -->
-		<dependency>
-			<groupId>com.uas.search</groupId>
-			<artifactId>search-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.message</groupId>
-			<artifactId>message-mail-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.message</groupId>
-			<artifactId>message-sms-api</artifactId>
-		</dependency>
+    <!-- service on dubbo -->
+    <dependency>
+      <groupId>com.uas.dfs</groupId>
+      <artifactId>dfs-api</artifactId>
+    </dependency>
+    <!-- search -->
+    <dependency>
+      <groupId>com.uas.search</groupId>
+      <artifactId>search-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.message</groupId>
+      <artifactId>message-mail-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.message</groupId>
+      <artifactId>message-sms-api</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>com.uas.account</groupId>
-			<artifactId>account-common</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>com.uas.account</groupId>
+      <artifactId>account-common</artifactId>
+    </dependency>
 
-        <dependency>
-            <groupId>net.sourceforge.pinyin4j</groupId>
-            <artifactId>pinyin4j</artifactId>
-			<version>1.1.0</version>
-        </dependency>
-        <!-- security -->
-		<dependency>
-			<groupId>org.springframework.security</groupId>
-			<artifactId>spring-security-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.security</groupId>
-			<artifactId>spring-security-config</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.security</groupId>
-			<artifactId>spring-security-web</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>net.sourceforge.pinyin4j</groupId>
+      <artifactId>pinyin4j</artifactId>
+      <version>1.1.0</version>
+    </dependency>
+    <!-- security -->
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.security</groupId>
+      <artifactId>spring-security-web</artifactId>
+    </dependency>
 
-		<!-- swagger-springmvc -->
-		<dependency>
-			<groupId>com.mangofactory</groupId>
-			<artifactId>swagger-springmvc</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>com.mangofactory</groupId>
-			<artifactId>swagger-models</artifactId>
-			<version>1.0.2</version>
-		</dependency>
-		<dependency>
-			<groupId>com.wordnik</groupId>
-			<artifactId>swagger-annotations</artifactId>
-			<version>1.3.11</version>
-		</dependency>
-		<!-- swagger-springmvc dependencies -->
-		<dependency>
-			<groupId>com.google.guava</groupId>
-			<artifactId>guava</artifactId>
-			<version>15.0</version>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml</groupId>
-			<artifactId>classmate</artifactId>
-			<version>1.1.0</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.ps</groupId>
-			<artifactId>ps-core</artifactId>
-			<version>0.0.1-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.ps</groupId>
-			<artifactId>ps-entity</artifactId>
-			<version>0.0.1-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>com.uas.ps</groupId>
-			<artifactId>ps-entity</artifactId>
-			<version>0.0.1-SNAPSHOT</version>
-		</dependency>
-		<!--Hutool POI工具类(对MS Office操作)-->
-		<!--<dependency>
-			<groupId>org.apache.poi</groupId>
-			<artifactId>poi-ooxml</artifactId>
-			<version>3.17</version>
-		</dependency>-->
-		<dependency>
-			<groupId>com.xiaoleilu</groupId>
-			<artifactId>hutool-poi</artifactId>
-			<version>3.2.2</version>
-			<exclusions>
-				<exclusion>
-					<groupId>org.apache.poi</groupId>
-					<artifactId>poi-ooxml</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-	</dependencies>
-	<build>
-		<finalName>platform-b2c</finalName>
-		<!-- 受profile影响的目录 -->
-		<resources>
-			<resource>
-				<directory>${basedir}/src/main/resources</directory>
-				<filtering>true</filtering>
-				<excludes>
-					<exclude>**/*.xls</exclude>
-				</excludes>
-			</resource>
-			<!-- xls文件不能filter处理,需区分出来 -->
-			<resource>
-				<directory>${basedir}/src/main/resources</directory>
-				<filtering>false</filtering>
-				<includes>
-					<include>**/*.xls</include>
-				</includes>
-			</resource>
-		</resources>
-		<!-- 在maven生命周期validate阶段生成timestamp -->
-		<plugins>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>buildnumber-maven-plugin</artifactId>
-				<version>1.3</version>
-				<executions>
-					<execution>
-						<phase>validate</phase>
-						<goals>
-							<goal>create-timestamp</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<format>{0,date,yyyy-MM-dd HH:mm:ss}</format>
-					<items>
-						<item>timestamp</item>
-					</items>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>com.samaxes.maven</groupId>
-				<artifactId>minify-maven-plugin</artifactId>
-				<version>1.7.4</version>
-				<!-- 静态文件压缩 -->
-				<executions>
-					<execution>
-						<id>default-minify</id>
-						<phase>prepare-package</phase>
-						<configuration>
-							<charset>UTF-8</charset>
-							<skipMerge>true</skipMerge>
-							<closureLanguage>ECMASCRIPT5</closureLanguage>
-							<closureAngularPass>true</closureAngularPass>
-							<nosuffix>true</nosuffix>
-							<webappTargetDir>${project.build.directory}/minify</webappTargetDir>
-							<cssSourceDir>resources</cssSourceDir>
-							<cssEngine>YUI</cssEngine>
-							<jsSourceDir>resources</jsSourceDir>
-							<jsEngine>YUI</jsEngine>
-							<cssSourceIncludes>
-								<cssSourceInclude>css/**/*.css</cssSourceInclude>
-								<cssSourceInclude>data/**/*.json</cssSourceInclude>
-							</cssSourceIncludes>
-							<cssSourceExcludes>
-								<cssSourceExclude>css/**/*.min.css</cssSourceExclude>
-							</cssSourceExcludes>
-							<jsSourceIncludes>
-								<jsSourceInclude>js/**/*.js</jsSourceInclude>
-							</jsSourceIncludes>
-							<jsSourceExcludes>
-								<jsSourceExclude>js/**/*.min.js</jsSourceExclude>
-							</jsSourceExcludes>
-						</configuration>
-						<goals>
-							<goal>minify</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-resources</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>copy-resources</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}/minify</outputDirectory>
-							<overwrite>false</overwrite>
-							<resources>
-								<resource>
-									<directory>${basedir}/src/main/webapp</directory>
-								</resource>
-							</resources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>com.uas.plugins</groupId>
-				<artifactId>static-maven-plugin</artifactId>
-				<version>0.0.2-SNAPSHOT</version>
-				<!-- 静态资源分离 -->
-				<executions>
-					<execution>
-						<id>default-static</id>
-						<phase>prepare-package</phase>
-						<configuration>
-							<pathMatcher>static</pathMatcher>
-							<staticUrl>${static-path}</staticUrl>
-							<webappDir>${project.build.directory}/minify</webappDir>
-							<sourceDir>/</sourceDir>
-							<targetDir>${project.build.directory}/statics</targetDir>
-							<staticDir>/</staticDir>
-							<sourceIncludes>
-								<sourceInclude>resources/js/**/*.js</sourceInclude>
-								<sourceInclude>resources/data/**/*.json</sourceInclude>
-								<sourceInclude>resources/view/**/*.html</sourceInclude>
-								<sourceInclude>WEB-INF/views/**/*.html</sourceInclude>
-							</sourceIncludes>
-							<!-- http://static.ubtoc.com/css/index.css?_v=1450321871828 -->
-							<versionSuffix>
-								<suffix>?_v=${timestamp}</suffix>
-								<exclude>*/require.js,*.min.js,*.min.css</exclude>
-							</versionSuffix>
-						</configuration>
-						<goals>
-							<goal>static</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-war-plugin</artifactId>
-				<version>2.4</version>
-				<configuration>
-					<webResources>
-						<resource>
-							<directory>${project.build.directory}/statics</directory>
-						</resource>
-						<resource>
-							<directory>${project.build.directory}/minify</directory>
-						</resource>
-					</webResources>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.tomcat.maven</groupId>
-				<artifactId>tomcat7-maven-plugin</artifactId>
-				<version>2.2</version>
-				<configuration>
-					<port>8080</port>
-					<path>/platform-b2c</path>
-					<uriEncoding>utf-8</uriEncoding>
-				</configuration>
-			</plugin>
-		</plugins>
-		<pluginManagement>
-			<plugins>
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>
-											org.codehaus.mojo
-										</groupId>
-										<artifactId>
-											buildnumber-maven-plugin
-										</artifactId>
-										<versionRange>
-											[1.3,)
-										</versionRange>
-										<goals>
-											<goal>
-												create-timestamp
-											</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
-	<distributionManagement>
-		<!-- 发布release仓库 -->
-		<repository>
-			<id>platform-release</id>
-			<name>platform-release</name>
-			<url>http://113.105.74.141:8081/artifactory/libs-release-local</url>
-		</repository>
-		<!-- 发布快照版本 -->
-		<snapshotRepository>
-			<id>platform-snapshots</id>
-			<name>platform-snapshots</name>
-			<url>http://113.105.74.141:8081/artifactory/libs-snapshot-local</url>
-		</snapshotRepository>
-	</distributionManagement>
+    <!-- swagger-springmvc -->
+    <dependency>
+      <groupId>com.mangofactory</groupId>
+      <artifactId>swagger-springmvc</artifactId>
+      <version>1.0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>com.mangofactory</groupId>
+      <artifactId>swagger-models</artifactId>
+      <version>1.0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>com.wordnik</groupId>
+      <artifactId>swagger-annotations</artifactId>
+      <version>1.3.11</version>
+    </dependency>
+    <!-- swagger-springmvc dependencies -->
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>15.0</version>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml</groupId>
+      <artifactId>classmate</artifactId>
+      <version>1.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.ps</groupId>
+      <artifactId>ps-core</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.ps</groupId>
+      <artifactId>ps-entity</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>com.uas.ps</groupId>
+      <artifactId>ps-entity</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+    <!--Hutool POI工具类(对MS Office操作)-->
+    <!--<dependency>
+      <groupId>org.apache.poi</groupId>
+      <artifactId>poi-ooxml</artifactId>
+      <version>3.17</version>
+    </dependency>-->
+    <dependency>
+      <groupId>com.xiaoleilu</groupId>
+      <artifactId>hutool-poi</artifactId>
+      <version>3.2.2</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi-ooxml</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+  <build>
+    <finalName>platform-b2c</finalName>
+    <!-- 受profile影响的目录 -->
+    <resources>
+      <resource>
+        <directory>${basedir}/src/main/resources</directory>
+        <filtering>true</filtering>
+        <excludes>
+          <exclude>**/*.xls</exclude>
+        </excludes>
+      </resource>
+      <!-- xls文件不能filter处理,需区分出来 -->
+      <resource>
+        <directory>${basedir}/src/main/resources</directory>
+        <filtering>false</filtering>
+        <includes>
+          <include>**/*.xls</include>
+        </includes>
+      </resource>
+    </resources>
+    <!-- 在maven生命周期validate阶段生成timestamp -->
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>buildnumber-maven-plugin</artifactId>
+        <version>1.3</version>
+        <executions>
+          <execution>
+            <phase>validate</phase>
+            <goals>
+              <goal>create-timestamp</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <format>{0,date,yyyy-MM-dd HH:mm:ss}</format>
+          <items>
+            <item>timestamp</item>
+          </items>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.7</source>
+          <target>1.7</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>com.samaxes.maven</groupId>
+        <artifactId>minify-maven-plugin</artifactId>
+        <version>1.7.4</version>
+        <!-- 静态文件压缩 -->
+        <executions>
+          <execution>
+            <id>default-minify</id>
+            <phase>prepare-package</phase>
+            <configuration>
+              <charset>UTF-8</charset>
+              <skipMerge>true</skipMerge>
+              <closureLanguage>ECMASCRIPT5</closureLanguage>
+              <closureAngularPass>true</closureAngularPass>
+              <nosuffix>true</nosuffix>
+              <webappTargetDir>${project.build.directory}/minify</webappTargetDir>
+              <cssSourceDir>resources</cssSourceDir>
+              <cssEngine>YUI</cssEngine>
+              <jsSourceDir>resources</jsSourceDir>
+              <jsEngine>YUI</jsEngine>
+              <cssSourceIncludes>
+                <cssSourceInclude>css/**/*.css</cssSourceInclude>
+                <cssSourceInclude>data/**/*.json</cssSourceInclude>
+              </cssSourceIncludes>
+              <cssSourceExcludes>
+                <cssSourceExclude>css/**/*.min.css</cssSourceExclude>
+              </cssSourceExcludes>
+              <jsSourceIncludes>
+                <jsSourceInclude>js/**/*.js</jsSourceInclude>
+              </jsSourceIncludes>
+              <jsSourceExcludes>
+                <jsSourceExclude>js/**/*.min.js</jsSourceExclude>
+              </jsSourceExcludes>
+            </configuration>
+            <goals>
+              <goal>minify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/minify</outputDirectory>
+              <overwrite>false</overwrite>
+              <resources>
+                <resource>
+                  <directory>${basedir}/src/main/webapp</directory>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>com.uas.plugins</groupId>
+        <artifactId>static-maven-plugin</artifactId>
+        <version>0.0.2-SNAPSHOT</version>
+        <!-- 静态资源分离 -->
+        <executions>
+          <execution>
+            <id>default-static</id>
+            <phase>prepare-package</phase>
+            <configuration>
+              <pathMatcher>static</pathMatcher>
+              <staticUrl>${static-path}</staticUrl>
+              <webappDir>${project.build.directory}/minify</webappDir>
+              <sourceDir>/</sourceDir>
+              <targetDir>${project.build.directory}/statics</targetDir>
+              <staticDir>/</staticDir>
+              <sourceIncludes>
+                <sourceInclude>resources/js/**/*.js</sourceInclude>
+                <sourceInclude>resources/data/**/*.json</sourceInclude>
+                <sourceInclude>resources/view/**/*.html</sourceInclude>
+                <sourceInclude>WEB-INF/views/**/*.html</sourceInclude>
+              </sourceIncludes>
+              <!-- http://static.ubtoc.com/css/index.css?_v=1450321871828 -->
+              <versionSuffix>
+                <suffix>?_v=${timestamp}</suffix>
+                <exclude>*/require.js,*.min.js,*.min.css</exclude>
+              </versionSuffix>
+            </configuration>
+            <goals>
+              <goal>static</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <webResources>
+            <resource>
+              <directory>${project.build.directory}/statics</directory>
+            </resource>
+            <resource>
+              <directory>${project.build.directory}/minify</directory>
+            </resource>
+          </webResources>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.tomcat.maven</groupId>
+        <artifactId>tomcat7-maven-plugin</artifactId>
+        <version>2.2</version>
+        <configuration>
+          <port>8080</port>
+          <path>/platform-b2c</path>
+          <uriEncoding>utf-8</uriEncoding>
+        </configuration>
+      </plugin>
+    </plugins>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>
+                      org.codehaus.mojo
+                    </groupId>
+                    <artifactId>
+                      buildnumber-maven-plugin
+                    </artifactId>
+                    <versionRange>
+                      [1.3,)
+                    </versionRange>
+                    <goals>
+                      <goal>
+                        create-timestamp
+                      </goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <distributionManagement>
+    <!-- 发布release仓库 -->
+    <repository>
+      <id>platform-release</id>
+      <name>platform-release</name>
+      <url>http://113.105.74.141:8081/artifactory/libs-release-local</url>
+    </repository>
+    <!-- 发布快照版本 -->
+    <snapshotRepository>
+      <id>platform-snapshots</id>
+      <name>platform-snapshots</name>
+      <url>http://113.105.74.141:8081/artifactory/libs-snapshot-local</url>
+    </snapshotRepository>
+  </distributionManagement>
 </project>

+ 43 - 0
src/main/java/com/uas/platform/b2c/core/utils/StringUtilB2C.java

@@ -273,4 +273,47 @@ public class StringUtilB2C {
 			return a.equals(b);
 		}
 	}
+
+
+	/**
+	 * 中文的标点 转化为英文的标点,全角转半角
+	 *
+	 * @param input
+	 * @return
+	 */
+	public static String toEnglish(String input) {
+		if (StringUtils.isEmpty(input)) {
+			return null;
+		} else {
+            /*正则转换中文标点*/
+			input = input.replaceAll("\\:", ":")
+					.replaceAll("\\。", ".")
+					.replaceAll("\\“", "\"")
+					.replaceAll("\\”", "\"")
+					.replaceAll("\\【", "[")
+					.replaceAll("\\】", "]")
+					.replaceAll("\\《", "<")
+					.replaceAll("\\》", ">")
+					.replaceAll("\\,", ", ")
+					.replaceAll("\\?", "?")
+					.replaceAll("\\、", ", ")
+					.replaceAll("\\;", ";")
+					.replaceAll("\\(", "(")
+					.replaceAll("\\)", ")")
+					.replaceAll("\\‘", "'")
+					.replaceAll("\\’", "'")
+					.replaceAll("\\『", "[")
+					.replaceAll("\\』", "]")
+					.replaceAll("\\「", "[")
+					.replaceAll("\\」", "]")
+					.replaceAll("\\﹃", "[")
+					.replaceAll("\\﹄", "]")
+					.replaceAll("\\〔", "{")
+					.replaceAll("\\〕", "}")
+					.replaceAll("\\—", "-")
+					.replaceAll("\\·", ".");
+            /*正则转换全角为半角*/
+            return input;
+		}
+	}
 }

+ 14 - 6
src/main/java/com/uas/platform/b2c/external/erp/commodity/service/impl/ProductDetailERPServiceImpl.java

@@ -16,15 +16,14 @@ import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.logging.BufferedLoggerManager;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
-
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 针对ERP物料交易详情接口
@@ -93,6 +92,8 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
 
     @Override
     public void updateReserve(List<ProductDetailERP> productDetailERPList) {
+        SimpleDateFormat dateFormat=new SimpleDateFormat("yy-MM-dd");
+        SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<Product> productList = new ArrayList<Product>();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
         for (ProductDetailERP productDetailERP : productDetailERPList) {
@@ -148,7 +149,14 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
                 }
 
                 products.get(0).setErpReserve(productDetailERP.getReserve() == null ? 0 : productDetailERP.getReserve());
-                products.get(0).setProduceDate(productDetailERP.getProduceDate());
+                if (productDetailERP.getProduceDate() != null) {
+                    try {
+                        products.get(0).setProduceDate(dateFormat.format(timeFormat.parse(productDetailERP.getProduceDate())));
+                    } catch (Exception e) {
+                        products.get(0).setProduceDate(productDetailERP.getProduceDate());
+                    }
+                }
+
                 products.get(0).setPrice(productDetailERP.getPrice());
                 productList.add(products.get(0));
             }

+ 13 - 4
src/main/java/com/uas/platform/b2c/external/erp/commodity/util/ModelConverter.java

@@ -13,11 +13,11 @@ import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.product.component.modal.ComponentGoods;
-import org.springframework.data.domain.Page;
-import org.springframework.util.CollectionUtils;
-
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import org.springframework.data.domain.Page;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 用于ERP与商城类的互转
@@ -27,6 +27,9 @@ import java.util.List;
  */
 public class ModelConverter {
 
+	public static SimpleDateFormat dateFormat=new SimpleDateFormat("yy-MM-dd");
+	public static SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     /**
      * erp分段价格转 商城分段价格
      *
@@ -196,7 +199,13 @@ public class ModelConverter {
 		productDetail.setMinPackQty(productDetailERP.getMinPackQty());
 		productDetail.setPackaging(productDetailERP.getPackaging());
 		productDetail.setPrice(productDetailERP.getPrice());
-		productDetail.setProduceDate(productDetailERP.getProduceDate());
+		if (productDetailERP.getProduceDate() != null) {
+			try {
+				productDetail.setProduceDate(dateFormat.format(timeFormat.parse(productDetailERP.getProduceDate())));
+			} catch (Exception e) {
+				productDetail.setProduceDate(productDetailERP.getProduceDate());
+			}
+		}
 		// 暂时将ERP空闲库存放置在product中
 //		productDetail.setReserve(productDetailERP.getReserve());
 		productDetail.setCode(productDetailERP.getCode());

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -109,9 +109,9 @@ public class ProductController {
 	 * @param productReplaceList 替代物料数组
 	 */
 	@RequestMapping(value = "/productReplace", method = RequestMethod.POST)
-	ResultMap setProductReplacesByPerson(@RequestBody String productReplaceList) {
+	ResultMap setProductReplacesByPerson(@RequestParam("productId") Long productId, @RequestBody String productReplaceList) {
 		List<ProductReplace> productReplaces = JSON.parseArray(productReplaceList,ProductReplace.class);
-		productService.setProductReplacesByPerson(productReplaces);
+		productService.setProductReplacesByPerson(productId, productReplaces);
 		return ResultMap.success("success");
 	}
 

+ 2 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java

@@ -8,7 +8,6 @@ import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
 import com.uas.platform.b2c.prod.commodity.type.ReleaseConstant;
-import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import org.apache.commons.collections.CollectionUtils;
 import org.codehaus.jackson.annotate.JsonIgnore;
@@ -518,8 +517,8 @@ public class ReleaseProductByBatch implements Serializable {
 				throw new RuntimeException(e + "指定字符集不支持");
 			}
 		}
-		setBrandNameEn(StringUtilB2C.getStr(value));
-		setB2cBranden(StringUtilB2C.getStr(value));
+		setBrandNameEn(StringUtilB2C.toEnglish(StringUtilB2C.getStr(value)));
+		setB2cBranden(StringUtilB2C.toEnglish(StringUtilB2C.getStr(value)));
 	}
 
 	public void setCodeByExcel(Object value) {

+ 2 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -44,9 +44,10 @@ public interface ProductService {
 
     /**
      * 批量保存个人替代物料信息
+     * @param productId          替代物料id
      * @param productReplaceList 替代物料数组
      */
-    boolean setProductReplacesByPerson(List<ProductReplace> productReplaceList);
+    boolean setProductReplacesByPerson(Long productId, List<ProductReplace> productReplaceList);
 
 
     /**

+ 7 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -18,7 +18,6 @@ import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.DoubleArith;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
-import com.uas.platform.b2c.core.utils.PatternUtil;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
@@ -252,9 +251,14 @@ public class GoodsServiceImpl implements GoodsService {
 //        if (!PatternUtil.matchChineseAndEnglish(goods.getPackaging())) {
 //            throw new IllegalOperatorException("包装信息只能包含中文和英文");
 //        }
-        if (goods.getProduceDate().length() > 12) {
-            throw new IllegalOperatorException("产品生产日期不能超过12个字符");
+        if (StringUtils.isEmpty(goods.getProduceDate())) {
+            throw new IllegalOperatorException("型号" + goods.getCode()+"品牌" + goods.getBrandNameEn() +"的产品生产日期为空");
+        } else {
+            if (goods.getProduceDate().length() > 12) {
+                throw new IllegalOperatorException("产品生产日期不能超过12个字符");
+            }
         }
+
         if (goods.getOriginal() == null) {
             throw new IllegalOperatorException("必须选择库存类型");
         }

+ 3 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -361,12 +361,12 @@ public class ProductServiceImpl implements ProductService {
     }
 
     @Override
-    public boolean setProductReplacesByPerson(List<ProductReplace> productReplaceList) {
-        if (CollectionUtils.isEmpty(productReplaceList)) {
+    public boolean setProductReplacesByPerson(Long productId, List<ProductReplace> productReplaceList) {
+        if (productId == null) {
             return false;
         }
         Date date = new Date(System.currentTimeMillis());
-        List<ProductReplace> productReplacesOld = productReplaceDao.findByUserUUAndProductId(SystemSession.getUser().getUserUU(),productReplaceList.get(0).getProductId());
+        List<ProductReplace> productReplacesOld = productReplaceDao.findByUserUUAndProductId(SystemSession.getUser().getUserUU(), productId);
         productReplaceDao.delete(productReplacesOld);
         for (ProductReplace productReplace : productReplaceList) {
             productReplace.setUserUU(SystemSession.getUser().getUserUU());

+ 3 - 0
src/main/webapp/WEB-INF/views/normal/admin.html

@@ -19,6 +19,7 @@
 <link rel="stylesheet" href="static/lib/jquery/themes/summernote/css/summernote.css" />
 <link rel="stylesheet" href="static/css/common.css" />
 <link rel="stylesheet" href="static/css/admin.css" />
+<link rel="stylesheet" href="static/lib/quill/quill.snow.css" />
 </head>
 <body>
 	<!-- main content begin -->
@@ -67,6 +68,8 @@
 	</div>
 	<!-- Loading End -->
 </body>
+<script src="static/lib/quill/quill.core.js"></script>
+<script src="static/lib/quill/quill.min.js"></script>
 <script language="javascript" type="text/javascript" src="static/lib/datePicker/WdatePicker.js"></script>
 <script type="text/javascript" src="static/lib/require.js"
 	data-main="static/js/admin/main.js"></script>

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/erp/vendor_center.html

@@ -19,6 +19,7 @@
 <link rel="stylesheet" href="static/lib/calendar/calendar.css">
 <link rel="stylesheet" href="static/lib/angular/ng-table.css">
 <link rel="stylesheet" href="static/css/erp/align.css">
+<link rel="stylesheet" href="static/css/commonComponent.css" />
 </head>
 <body>
 	<!-- 消息提示框  Start-->

BIN
src/main/webapp/resources/img/icon/shop_icon.png


+ 53 - 13
src/main/webapp/resources/js/admin/controllers/help/HelpDetailCtrl.js

@@ -3,7 +3,7 @@
  */
 define(['app/app'], function(app) {
     'use strict';
-    app.register.controller('HelpDetailCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$stateParams', 'HelpAPI', '$state', function ($scope, $modal, HelpIssue, toaster, $stateParams, HelpAPI, $state) {
+    app.register.controller('HelpDetailCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$stateParams', 'HelpAPI', '$state', '$http', 'BaseService', 'HelpUpload', '$q', function ($scope, $modal, HelpIssue, toaster, $stateParams, HelpAPI, $state, $http, BaseService, HelpUpload, $q) {
 
         HelpIssue.get({id : $stateParams.id}, function (data) {
             $scope.issue = data;
@@ -31,6 +31,26 @@ define(['app/app'], function(app) {
             }
         });
 
+        $scope.rootPath = BaseService.getRootPath();
+        function switchBase64ToImg(el) {
+            var deferred = $q.defer();
+            var data = el.src;
+            var arr = data.split(','), mime = arr[0].match(/:(.*?);/)[1],
+                bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
+            while(n--){
+                u8arr[n] = bstr.charCodeAt(n);
+            }
+            var obj = new Blob([u8arr], {type:mime});
+            var fd = new FormData();
+            fd.append("upfile", obj, "image.png");
+            return HelpUpload.upload(fd, function (data) {
+                el.src = data[0].path;
+                // console.log(el);
+            }, function (err) {
+                toaster.pop('error', '上传失败');
+            })
+        }
+
         // 选择导航
         $scope.chooseNav = function() {
             var modalInstance = $modal.open({
@@ -52,12 +72,22 @@ define(['app/app'], function(app) {
         $scope.save = function () {
             $scope.issue.article = quill.container.innerHTML.replace('\<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','').replace('contenteditable="true"', 'contenteditable="false"');
             $scope.issue.content = angular.toJson(quill.getContents());
-            HelpIssue.update({}, $scope.issue, function (data) {
-                toaster.pop('success', '保存成功');
-                $state.go('helpPublish');
-                window.location.href ='admin_n#/help/publish';// quilljs锁定了跳转 必须这样跳两次才有效
-            }, function(response) {
-                toaster.pop('error', response.data);
+            var els = $($scope.issue.article);
+            var imgs = els.find('img');
+            var promises = [];
+            angular.forEach(imgs, function (img) {
+                promises.push(switchBase64ToImg(img).$promise);
+            })
+            $q.all(promises).then(function () {
+                // console.log(els.html());
+                $scope.issue.article = els.html()
+                HelpIssue.update({}, $scope.issue, function (data) {
+                    toaster.pop('success', '保存成功');
+                    $state.go('helpPublish');
+                    window.location.href ='admin_n#/help/publish';// quilljs锁定了跳转 必须这样跳两次才有效
+                }, function(response) {
+                    toaster.pop('error', response.data);
+                });
             });
         };
 
@@ -65,12 +95,22 @@ define(['app/app'], function(app) {
         $scope.publish = function () {
             $scope.issue.article = quill.container.innerHTML.replace('\<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','').replace('contenteditable="true"', 'contenteditable="false"');
             $scope.issue.content = angular.toJson(quill.getContents());
-            HelpIssue.publish({}, $scope.issue, function (data) {
-                toaster.pop('success', '发布成功');
-                $state.go('helpPublish');
-                window.location.href = 'admin_n#/help/publish';
-            }, function(response) {
-                toaster.pop('error', response.data);
+            var els = $($scope.issue.article);
+            var imgs = els.find('img');
+            var promises = [];
+            angular.forEach(imgs, function (img) {
+                promises.push(switchBase64ToImg(img).$promise);
+            })
+            $q.all(promises).then(function () {
+                // console.log(els.html());
+                $scope.issue.article = els.html()
+                HelpIssue.publish({}, $scope.issue, function (data) {
+                    toaster.pop('success', '发布成功');
+                    $state.go('helpPublish');
+                    window.location.href = 'admin_n#/help/publish';
+                }, function(response) {
+                    toaster.pop('error', response.data);
+                });
             });
         };
         

+ 37 - 7
src/main/webapp/resources/js/admin/controllers/help/HelpEditCtrl.js

@@ -1,6 +1,6 @@
 define(['app/app'], function(app) {
     'use strict';
-    app.register.controller('HelpEditCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$state', function ($scope, $modal, HelpIssue, toaster, $state) {
+    app.register.controller('HelpEditCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$state', '$http', 'BaseService', 'HelpUpload', '$q', function ($scope, $modal, HelpIssue, toaster, $state, $http, BaseService, HelpUpload, $q) {
 
         $scope.issue = {};
 
@@ -31,16 +31,46 @@ define(['app/app'], function(app) {
             });
         };
 
+        $scope.rootPath = BaseService.getRootPath();
+        function switchBase64ToImg(el) {
+            var deferred = $q.defer();
+            var data = el.src;
+            var arr = data.split(','), mime = arr[0].match(/:(.*?);/)[1],
+                bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
+            while(n--){
+                u8arr[n] = bstr.charCodeAt(n);
+            }
+            var obj = new Blob([u8arr], {type:mime});
+            var fd = new FormData();
+            fd.append("upfile", obj, "image.png");
+            return HelpUpload.upload(fd, function (data) {
+                el.src = data[0].path;
+                // console.log(el);
+            }, function (err) {
+                toaster.pop('error', '上传失败');
+            })
+        }
+        
         // 保存
         $scope.save = function () {
             $scope.issue.article = quill.container.innerHTML.replace('\<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','').replace('contenteditable="true"', 'contenteditable="false"');
             $scope.issue.content = angular.toJson(quill.getContents());
-            HelpIssue.save({}, $scope.issue, function (data) {
-                toaster.pop('success', '保存成功');
-                $state.go('helpDetail',{id : data.id});
-                window.location.href = '#/help/issue/' + data.id;// quilljs锁定了跳转 必须这样跳两次才有效
-            }, function(response) {
-                toaster.pop('error', response.data);
+            var els = $($scope.issue.article);
+            var imgs = els.find('img');
+            var promises = [];
+            angular.forEach(imgs, function (img) {
+                promises.push(switchBase64ToImg(img).$promise);
+            })
+            $q.all(promises).then(function () {
+                // console.log(els.html());
+                $scope.issue.article = els.html()
+                HelpIssue.save({}, $scope.issue, function (data) {
+                    toaster.pop('success', '保存成功');
+                    $state.go('helpDetail',{id : data.id});
+                    window.location.href = '#/help/issue/' + data.id;// quilljs锁定了跳转 必须这样跳两次才有效
+                }, function(response) {
+                    toaster.pop('error', response.data);
+                });
             });
         };
 

+ 44 - 31
src/main/webapp/resources/js/common/controllers/commonCtrls.js

@@ -1,6 +1,5 @@
 define([ 'app/app' ], function(app) {
 	'use strict';
-
 	app.config(['$httpProvider', function($httpProvider) {
 		// 设置http拦截器
 		$httpProvider.interceptors.push('httpInterceptor');
@@ -16,36 +15,35 @@ define([ 'app/app' ], function(app) {
 			if(--i < 1) Loading.hide();
 		};
 
-        var im_api_url = 'api/chat/message';
-        return {
-            request: function(cfg){
-                if(cfg.url && cfg.url.indexOf(im_api_url) < 0) {
-                    startLoading();
-                }
-                return cfg;
-            },
-            requestError: function(rejection) {
-                if(rejection.config.url && rejection.config.url.indexOf(im_api_url) < 0) {
-                    endLoading();
-                }
-                return $q.reject(rejection);
-            },
-            response: function(res) {
-                if(res.config.url && res.config.url.indexOf(im_api_url) < 0) {
-                    endLoading();
-                }
-                return res;
-            },
-            responseError: function(rejection) {
-                if(rejection.config.url && rejection.config.url.indexOf(im_api_url) < 0) {
-                    endLoading();
-                }
-                if(rejection.status == 401) {
-                    window.location.href = rejection.data.loginUrl || 'index';
-                }
-                return $q.reject(rejection);
-            }
-        }
+		return {
+			request: function(cfg){
+				if(cfg.url) {
+					if(cfg.url.indexOf('api/chat/message') < 0) {
+						startLoading();
+					}
+				}
+				return cfg;
+			},
+			requestError: function(rejection) {
+				endLoading();
+				return $q.reject(rejection);
+			},
+			response: function(res) {
+				if(res.config.url) {
+					if(res.config.url.indexOf('api/chat/message') < 0) {
+						endLoading();
+					}
+				}
+				return res;
+			},
+			responseError: function(rejection) {
+				endLoading();
+				if(rejection.status == 401) {
+					window.location.href = rejection.data.loginUrl || 'index';
+				}
+				return $q.reject(rejection);
+			}
+		}
 	}]);
 
 	// 修改页面标题
@@ -963,6 +961,21 @@ define([ 'app/app' ], function(app) {
 		}
 	}]);
 
+	// 我的店铺侧边栏的Controller
+  app.controller('goCartCtrl', ['$scope', 'StoreInfo', function($scope, StoreInfo) {
+    $scope.uuid = false
+		console.log(111)
+    StoreInfo.existStore({}, {}, function (result) {
+    	$scope.uuid = result.uuid
+			console.log($scope.uuid)
+		})
+    $scope.openMystore = function(){
+    	var uuid = $scope.uuid
+      window.open('store/' + uuid, '_self');
+		}
+  }])
+
+
 	// Web Chat侧边栏的Controller
 	app.controller('WebChatCtrl', ['$scope', '$interval', 'AuthenticationService', 'ChatBusinessLayer', 'toaster','$rootScope', function($scope, $interval, AuthenticationService, ChatBusinessLayer, toaster ,$rootScope) {
 		$scope.userInfo = null;

+ 10 - 0
src/main/webapp/resources/js/common/query/help.js

@@ -115,5 +115,15 @@ define([ 'ngResource' ], function() {
                 method: 'GET'
             }
         })
+    }]).factory('HelpUpload', ['$resource', 'BaseService', function ($resource) {
+        //文章编辑图片处理
+        return $resource('file', {}, {
+            upload: {
+                url: 'file',
+                method: 'POST',
+                headers : {'Content-Type' : undefined},
+                isArray: true
+            }
+        })
     }]);
 });

+ 2 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/query_logistics_ctrl.js

@@ -49,6 +49,8 @@ define(['app/app', 'calendar'], function(app) {
                             $scope.logisticsInfo = eval ("(" + response.traces + ")");
                             statusOfLogistics($scope.logisticsInfo[$scope.logisticsInfo.length - 1].AcceptStation);
                             $scope.hasInfo = true;
+                        } else {
+                            $scope.logisticsInfo = [];
                         }
                     }, function(){
                         $scope.logisticsInfo = [];

+ 7 - 7
src/main/webapp/resources/js/vendor/app.js

@@ -512,17 +512,17 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
             controllerUrl : "app/controllers/forstore/vendor_materialPersonCtrl",
             controller : 'vendor_materialPersonCtrl'
         })).state('vendor_material_erp', angularAMD.route({
-			title : '可上架产品toErp',
+			title : '企业产品库toErp',
 			url : '/vendor_material_erp?standardParam',
 			templateUrl : 'static/view/vendor/forstore/erp/vendor_material_erp.html',
 			controllerUrl : "app/controllers/forstore/vendor_materialCtrl",
 			controller : 'vendor_materialCtrl'
-		})).state('vendor_material_unstandard_erp', angularAMD.route({
-			title : '暂不可上架产品toErp',
-			url : '/vendor_material_unstandard_erp?standardParam',
-			templateUrl : 'static/view/vendor/forstore/erp/vendor_material_unstandard_erp.html',
-			controllerUrl : "app/controllers/forstore/vendor_materialCtrl",
-			controller : 'vendor_materialCtrl'
+		})).state('vendor_material_person_erp', angularAMD.route({
+			title : '个人产品库toErp',
+			url : '/vendor_material_person_erp?standardParam',
+			templateUrl : 'static/view/vendor/forstore/erp/vendor_material_person_erp.html',
+			controllerUrl : "app/controllers/forstore/vendor_materialPersonCtrl",
+			controller : 'vendor_materialPersonCtrl'
 		})).state('vendor_onSale', angularAMD.route({
             title : '在售产品',
             url : '/vendor_onSale',

+ 2 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/query_logistics_ctrl.js

@@ -48,6 +48,8 @@ define(['app/app', 'calendar'], function(app) {
                                 $scope.logisticsInfo = eval ("(" + response.traces + ")");
                                 statusOfLogistics($scope.logisticsInfo[$scope.logisticsInfo.length - 1].AcceptStation);
                                 $scope.hasInfo = true;
+                            } else {
+                                $scope.logisticsInfo = [];
                             }
                         }, function(){
                             $scope.logisticsInfo = [];

+ 30 - 16
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -221,21 +221,25 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
         /**
          * 获取批量上架的配置信息
          */
-        UASBatchPutOnPropertyServices.get(null, function (data) {
-            if (data && typeof data.fluctuateRate != 'undefined') {
-                $scope.uasBatchPutOnProperty = data;
-                $scope.uasBatchPutOnProperty.editFluctuateRate = NumberService.mul($scope.uasBatchPutOnProperty.fluctuateRate, 100) || 100;
-                $scope.uasBatchPutOnProperty.editMaxDelivery = $scope.uasBatchPutOnProperty.maxDelivery || 10;
-                $scope.uasBatchPutOnProperty.editMinDelivery = $scope.uasBatchPutOnProperty.minDelivery || 1;
-            } else {
-				$scope.uasBatchPutOnProperty = {};
-                $scope.uasBatchPutOnProperty.editFluctuateRate = 100;
-                $scope.uasBatchPutOnProperty.editMaxDelivery = 10;
-                $scope.uasBatchPutOnProperty.editMinDelivery = 1;
-            }
-        }, function (response) {
-            console.log(response);
-        });
+        $scope.getUASBatchPutOnPropertyData = function () {
+			UASBatchPutOnPropertyServices.get(null, function (data) {
+				if (data && typeof data.fluctuateRate != 'undefined') {
+					$scope.uasBatchPutOnProperty = data;
+					$scope.uasBatchPutOnProperty.editFluctuateRate = NumberService.mul($scope.uasBatchPutOnProperty.fluctuateRate, 100) || 100;
+					$scope.uasBatchPutOnProperty.editMaxDelivery = $scope.uasBatchPutOnProperty.maxDelivery || 10;
+					$scope.uasBatchPutOnProperty.editMinDelivery = $scope.uasBatchPutOnProperty.minDelivery || 1;
+				} else {
+					$scope.uasBatchPutOnProperty = {};
+					$scope.uasBatchPutOnProperty.editFluctuateRate = 100;
+					$scope.uasBatchPutOnProperty.editMaxDelivery = 10;
+					$scope.uasBatchPutOnProperty.editMinDelivery = 1;
+				}
+			}, function (response) {
+				console.log(response);
+			});
+		};
+
+		$scope.getUASBatchPutOnPropertyData();
 
 		/**
 		 * 切换标准/非标准
@@ -272,11 +276,18 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
 		// 进入批量操作
 		$scope.enterBatch = function () {
+			if (!$scope.isBatch) {
+				$scope.getUASBatchPutOnPropertyData();
+			}
 			closeAllEditStatus();
-			$scope.isBatch = true;
+			$scope.isBatch = !$scope.isBatch;
 			$scope.isChoosedAll = false;
 		};
 
+		$scope.onProgress = function () {
+			$scope.uasBatchPutOnProperty.editFluctuateRate = Number($scope.uasBatchPutOnProperty.editFluctuateRate);
+		}
+
 		// 取消批量操作
 		$scope.exitBatch =function () {
 			$scope.isBatch = false;
@@ -2977,6 +2988,8 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 						$scope.deleteModal = false;
                         $modalInstance.close(data);
                     }, function (response) {
+                        $scope.deleteModal = false;
+                        $modalInstance.dismiss();
                         toaster.pop('error', response.data);
                     });
                 }
@@ -2991,6 +3004,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                         toaster.pop('success', '提示', '删除成功');
                     }, function (response) {
                         toaster.pop('error', '错误', response.data);
+
                     });
                 }, function (response) {
                     toaster.pop('error',  '错误', response.data);

+ 3 - 3
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js

@@ -1033,14 +1033,13 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                 }
 				productReplaceList[i].detno = i + 1;
 			}
-            console.log($scope.errorObj);
             for (var i = 0; i < productReplaceList.length; i++) {
                 if ($scope.errorObj[i].code == 1 || $scope.errorObj[i].brand == 1) {
                     toaster.pop('error', '请填完整信息');
                     return;
                 }
 			}
-			Material.setProductReplacesByPerson(productReplaceList , function (data) {
+			Material.setProductReplacesByPerson({productId:$scope.replaceMaterialId}, productReplaceList , function (data) {
 				loadDataReload();
 				$scope.setActiveIndex(-1);
             }, function (response) {
@@ -2491,6 +2490,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                 $scope.editCmp = material.pcmpcode;
                 $scope.editBrand = material.pbranden;
                 $scope.replaceMaterialList = angular.copy(material.productReplaceList);
+				$scope.replaceMaterialId = material.id;
 				for (var i = 0; i < $scope.replaceMaterialList.length; i++) {
 					$scope.errorObj.push({
 						code: 0,
@@ -2563,7 +2563,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 				} else {
 					toaster.pop('error', '请填完整信息');
 				}
-			} else if (type === 'sub' && $scope.replaceMaterialList.length > 1) {
+			} else if (type === 'sub' && $scope.replaceMaterialList.length > 0) {
 				$scope.replaceMaterialList.splice(index, 1);
 				$scope.errorObj.splice(index, 1);
 				$scope.isInCodeList.splice(index, 1);

+ 4 - 0
src/main/webapp/resources/view/common/sidebar.html

@@ -348,6 +348,10 @@
 </style>
 <div id="sidebar">
 	<ul class="sidebar-content">
+		<li ng-controller="goCartCtrl" ng-show="uuid">
+			<a ng-click="openMystore()"><img src="static/img/icon/shop_icon.png"/></a>
+			<div class="massage sidebar-menu" style="width: 100px" ng-click="openMystore()" title="我的店铺">我的店铺</div>
+		</li>
 		<li>
 			<a href="user#/cart" target="_blank"><img src="static/img/icon/cart.png"/></a>
 			<div class="sidebar-menu" style="width: 100px"><a href="user#/cart" title="我的购物车" target="_blank">我的购物车<em><span ng-if="userInfo">(<span ng-bind="countCart || 0 | number"></span>)</span></em></a></div>

+ 2 - 1
src/main/webapp/resources/view/usercenter/forstore/query_logistics.html

@@ -266,7 +266,8 @@
                                     <img src="static/img/all/empty-cart.png">
                                 </p>
                                 <div class="empty-info">
-                                    <p class="grey"> 暂时获取不到订单的物流信息 </p>
+                                    <p class="grey" ng-if="order.deliverytype == 1301">暂时获取不到物流信息,请到快递公司官网进行查询</p>
+                                    <p class="grey" ng-if="order.deliverytype != 1301">暂无物流信息,请<a style="color: #5078cb;" ng-controller="ChatContactCtrl as chat" ng-click="chat.contactWithOther(order.sellPhone, order.sellerenuu, chat.UserType.STORE)">联系卖家</a>咨询</p>
                                     <!--<a href="user#/order"><i class="fa fa-mail-reply fa-xs"></i>返回上一页</a>-->
                                 </div>
                             </div>

+ 405 - 197
src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_erp.html

@@ -171,16 +171,15 @@
 	}
 	.search-check{
 		width: 100%;
-		min-height: 54px;
 		height: auto;
+		min-height: 54px;
 		background: #fff;
 		padding-top: 10px;
 		margin-bottom: 16px;
 	}
 	.search-check .search{
-		width: 550px;
+		width: 438px;
 		margin-left: 150px;
-		margin-bottom: 10px;
 	}
 	.search-check .search .form-control{
 		width: 340px;
@@ -217,103 +216,58 @@
 		font-size: 14px;
 		line-height: 35px;
 	}
-	.search-check .check a{
+	.search-check .check > .operate-btn{
 		font-size: 14px;
-		margin-right: 20px;
-		color: #333;
-	}
-	.search-check .check a:hover{
-		color: #5078cb;
-	}
-	.search-check .check .check-active{
-		margin-right: 15px;
-	}
-	.search-check .check .check-active span{
-		font-weight: normal;
-		color: #333;
-	}
-	.search-check .check .check-active span:hover{
-		color: #5078cb;
-		cursor: pointer;
-	}
-	.search-check .check .check-active label{
-		margin-right: 0 !important;
-	}
-	.search-check .batch-operate {
-		clear: both;
-		background: #99FFFF;
-	}
-	.search-check .batch-operate .operate-head {
-		height: 40px;
-		line-height: 40px;
-		margin: 0 10px;
-		border-bottom: 1px solid;
-		padding: 0 20px;
-	}
-	.search-check .batch-operate .operate-head .check-active {
-		font-weight: normal;
-		height: 40px;
-	}
-	.search-check .batch-operate .operate-head .red-text {
-		color: #ee4312;
-	}
-	.search-check .batch-operate .operate-content {
-		height: 70px;
-		line-height: 30px;
-	}
-	.search-check .batch-operate .operate-content > div {
+		margin-right: 12px;
+		color: #fff !important;
+		background: #5078cb;
+		position: relative;
 		display: inline-block;
+		height: 30px;
+		line-height: 30px;
+		padding: 0 10px;
+		cursor: pointer;
 	}
-	.search-check .batch-operate .operate-content > div:first-child {
-		margin-right: 111px;
-		margin-left: 28px;
-	}
-	.search-check .batch-operate .operate-content > div p {
-		font-weight: bold;
-	}
-	.search-check .batch-operate .operate-content > div p .batch-price-title {
-		margin-right: 91px;
-	}
-	.search-check .batch-operate .operate-content > div p .batch-progress {
-		width: 108px;
-		height: 5px;
+	.search-check .check > .operate-btn .expander {
+		position: absolute;
+		color: #333;
+		right: 0;
+		display: none;
+		height: 57px;
+		line-height: 26px;
+		text-align: center;
 		background: #fff;
-		display: inline-block;
-		position: relative;
+		bottom: -57px;
+		width: 98px;
+		z-index: 10;
+		border: 1px solid #e4e5e5;
 	}
-	.search-check .batch-operate .operate-content > div p .batch-progress i {
-		width: 5px;
-		height: 10px;
-		background: #169BD5;
+	.search-check .check > .operate-btn.more-operate {
+		padding: 0;
+		width: 98px;
+		height: 30px;
+		line-height: 30px;
+		text-align: center;
 		display: inline-block;
-		position: absolute;
-		top: -3px;
 	}
-	.search-check .batch-operate .operate-content > div p em {
-		margin: 0 5px;
+	.search-check .check > .operate-btn.more-operate:hover .expander {
+		display: block;
 	}
-	.search-check .batch-operate .operate-content > div > div input {
-		padding: 0 5px;
-		height: 25px;
+	.search-check .check > .operate-btn.more-operate .expander span {
+		display: block;
 	}
-	.search-check .batch-operate .operate-content .batch-sale input {
-		width: 60px;
-		margin-right: 10px;
-		padding-right: 12px;
-	}
-	.search-check .batch-operate .operate-content .batch-sale div .com-btn-submit {
-		margin-right: 10px;
+	.search-check .check > .operate-btn.more-operate .expander span:hover {
+		color: #5078cb;
 	}
-	.search-check .batch-operate .operate-content .batch-sale > div {
-		position: relative;
+	.pro_management .table .check-active {
+		margin-right: 15px;
+		user-select: none;
 	}
-	.search-check .batch-operate .operate-content .batch-sale div i {
-		position: absolute;
-		left: 234px;
-		top: 2px;
+	.pro_management .table .check-active span {
+		color: #333 !important;
 	}
-	.search-check .batch-operate .operate-content .batch-date input {
-		width: 56px;
+	.pro_management .table .check-active label {
+		margin-right: 0 !important;
 	}
 	.check-input input{
 		display: none;
@@ -440,6 +394,43 @@
 	.edit-content div.floatLeft .input-list{
 		float: left;
 	}
+	.edit-content .input-list .dropdown{
+		position: relative;
+	}
+	.edit-content .input-list .button-select{
+		width: 96px;
+		height: 24px;
+		border: 1px solid #a9a9a9;
+		font-size: 12px;
+		text-align: center;
+		padding: 0;
+	}
+	.edit-content .input-list .select-package{
+		width: 96px;
+		height: 24px;
+		border: 1px solid #a9a9a9;
+		font-size: 12px;
+		text-align: center;
+		border-radius: 3px;
+		padding-left: 6px;
+	}
+	.edit-content .input-list .button-option{
+		position: absolute;
+		top: 22px;
+		left: 69px;
+		height: 63px;
+		min-width: 119px;
+		overflow: auto;
+	}
+	.edit-content .input-list .button-option li{
+		height: 30px;
+		line-height: 30px;
+		padding: 0;
+	}
+	.edit-content .produceDate-fix{
+		position: relative;
+		top: 4px;
+	}
 	.edit-content div.margin10{
 		padding-top: 24px;
 	}
@@ -1045,7 +1036,7 @@
 	}
 	.edit-contents .content .title span:first-child {
 		float: left;
-		width: 80px;
+		width: 70px;
 		text-align: right;
 	}
 	.edit-contents .content .title span:last-child {
@@ -1558,10 +1549,10 @@
 	#wanted-list02{
 		display: none;
 	}
-	.modal-backdrop {
-		background-color: transparent ;
-		bottom: unset!important;
-	}
+	/*.modal-backdrop {
+        background-color: transparent ;
+        bottom: unset!important;
+    }*/
 	.modal{
 		bottom: unset!important;
 	}
@@ -1572,6 +1563,141 @@
 		position: absolute;
 		top: 45px;
 	}
+
+	.no-hover:hover {
+		background: none !important;
+	}
+	.standard-tab.table > tbody > tr.batch-tr {
+		height: 30px;
+	}
+	.standard-tab.table > tbody > tr.batch-tr.active {
+		position: fixed;
+		bottom: 0;
+		z-index: 2000;
+	}
+	.standard-tab.table > tbody > tr.batch-tr.active td {
+		width: 1029px;
+		border-top: 0;
+	}
+	.standard-tab.table > tbody > tr.batch-tr td {
+		padding: 0;
+		border-top: #dff3fd 1px solid;
+	}
+	.standard-tab.table>tbody>tr>td .batch-line {
+		width: 100%;
+		height: 30px;
+		background: #fdd6d6;
+		line-height: 30px;
+	}
+	.wanted_list01 .tab table th {
+		color: #333 !important;
+	}
+	.search-check .batch-operate {
+		clear: both;
+		background: #99FFFF;
+		position: relative;
+		z-index: 1;
+	}
+	.search-check .batch-operate .operate-head {
+		height: 40px;
+		line-height: 40px;
+		margin: 0 10px;
+		border-bottom: 1px solid;
+		padding: 0 20px;
+		text-align: right;
+	}
+	.search-check .batch-operate .operate-head .check-active {
+		font-weight: normal;
+		height: 40px;
+	}
+	.search-check .batch-operate .operate-head .red-text {
+		color: #008000;
+		float: left;
+		font-size: 14px;
+		font-weight: bold;
+	}
+	.search-check .batch-operate .operate-head .red-text i {
+		font-size: 20px;
+		color: #e07d34;
+	}
+	.search-check .batch-operate .operate-content {
+		height: 70px;
+		line-height: 30px;
+	}
+	.search-check .batch-operate .operate-content > div {
+		display: inline-block;
+	}
+	.search-check .batch-operate .operate-content > div:first-child {
+		margin-right: 111px;
+		margin-left: 28px;
+	}
+	.search-check .batch-operate .operate-content > div p {
+		font-weight: bold;
+	}
+	.search-check .batch-operate .operate-content > div p .batch-price-title {
+		margin-right: 91px;
+	}
+	.search-check .batch-operate .operate-content > div p input[type=range] {
+		padding: 0;
+		display: inline-block;
+		width: 108px;
+	}
+	.search-check .batch-operate .operate-content > div p input[type=range]::-webkit-slider-runnable-track {
+		background: #4054ff;
+		height: 5px;
+	}
+	.search-check .batch-operate .operate-content > div p input[type=range]::-webkit-slider-thumb {
+		position: relative;
+		bottom: 7px;
+	}
+	.search-check .batch-operate .operate-content > div p .batch-progress {
+		width: 108px;
+		height: 5px;
+		background: #fff;
+		display: inline-block;
+		position: relative;
+	}
+	.search-check .batch-operate .operate-content > div p .batch-progress i {
+		width: 5px;
+		height: 10px;
+		background: #169BD5;
+		display: inline-block;
+		position: absolute;
+		top: -3px;
+	}
+	.search-check .batch-operate .operate-content > div p em {
+		margin: 0 5px;
+	}
+	.search-check .batch-operate .operate-content > div > div input {
+		padding: 0 5px;
+		height: 25px;
+	}
+	.search-check .batch-operate .operate-content .batch-sale input {
+		width: 60px;
+		margin-right: 10px;
+		padding-right: 12px;
+	}
+	.search-check .batch-operate .operate-content .batch-sale div .com-btn-submit {
+		margin-right: 10px;
+	}
+	.search-check .batch-operate .operate-content .batch-sale > div {
+		position: relative;
+	}
+	.search-check .batch-operate .operate-content .batch-sale div i {
+		position: absolute;
+		left: 234px;
+		top: 2px;
+	}
+	.search-check .batch-operate .operate-content .batch-date input {
+		width: 56px;
+	}
+	.search-check .batch-operate > .fr {
+		margin-right: 30px;
+	}
+	.search-check .batch-operate > .fr .com-btn-level1 {
+		display: block;
+		margin-top: 8px;
+	}
 	.pro_management .table tr th .erp-reserve {
 		cursor: pointer;
 	}
@@ -1588,109 +1714,151 @@
 	<div class="pro_management device">
 		<div class="com_tab">
 			<ul class="fl" style="width: 100%">
-				<li><a ui-sref="vendor_material_unstandard_erp({standardParam:'unstandard'})">非标产品</a></li>
-				<li class="active"><a ui-sref="vendor_material_erp({standardParam:'standard'})">标准产品</a></li>
+				<li class="active"><a ui-sref="vendor_material_erp">企业产品库</a></li>
+				<li><a ui-sref="vendor_material_person_erp">个人产品库</a></li>
 				<li><a ui-sref="vendor_onSale_erp">在售产品</a></li>
 				<li><a ui-sref="vendor_undercarriage_erp">上下架历史</a></li>
 			</ul>
 		</div>
+		<div class="com_tab">
+			<ul class="fl distance" style="width: 100%">
+				<li ng-class="{active : standard_tab == 'unstandard'}"  ng-click="toggleStandard('unstandard')" title="非标产品({{nCount}})"><a href="" class="standard">非标产品(<em class="count">{{nCount}}</em>)</a></li>
+				<li ng-class="{active : standard_tab =='standard'}" ng-click="toggleStandard('standard')" title="标准产品({{sCount}})"><a href="" class="standard">标准产品(<em class="count">{{sCount}}</em>)</a></li>
+			</ul>
+			<!--匹配结果导航-->
+			<div class="match-menu" ng-if="resultFrame">
+                <span>
+                    <a ng-click="toggleTab('matchResult')">匹配结果</a>
+                    <i class="fa fa-remove" ng-click="closeResultFrame('unstandard')"></i>
+                </span>
+			</div>
+		</div>
 		<!--非标和标准产品列表页-->
 		<div ng-if="standard_tab == 'unstandard' || standard_tab =='standard'">
 			<div class="search-check">
 				<div class="search fl">
 					<input type="text" class="form-control" ng-model="param.keyword" ng-search="onSearch()" placeholder="类目/型号/品牌"/>
 					<button ng-click="onSearch()">搜索</button>
-					<a ng-click="download()">批量导出</a>
+					<!--<a ng-click="download()">批量导出</a>-->
 				</div>
 				<div class="check fr">
-					<a ng-show="!isBatch && standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="!isBatch && standard_tab == 'unstandard'">一键匹配</span></a>
-					<a ng-show="!isBatch" ng-click="enterBatch()"><span ng-show="!isBatch">批量操作</span></a>
+					<div class="operate-btn" ng-click="enterBatch()"><span>批量上架</span></div>
+					<div class="operate-btn" ng-click="setAllInPerson()"><span>加入个人产品库</span></div>
+					<div class="operate-btn" ng-show="standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="standard_tab == 'unstandard'">匹配</span></div>
+					<div class="operate-btn more-operate">
+						<span>更多操作</span>
+						<span class="expander">
+							<span ng-click="download()">导出选中</span>
+							<span ng-click="deleteBatch()" name="delete-material">删除选中</span>
+						</span>
+					</div>
 					<!--<span class="check-btn" ng-show="isBatch">
-						<label class="check-active">
-							<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" id="AllChoose"/>
-							<label for="AllChoose"></label>
-							<span>全选</span>
-						</label>
-						<a
-								ng-click="deleteBatch()" name="delete-material">删除</a>
+						<a ng-click="deleteBatch()" name="delete-material">删除</a>
 						<a ng-click="exitBatch()">取消</a>
 					</span>-->
 				</div>
 				<div class="batch-operate" ng-show="isBatch">
-					<div class="operate-head">
-						<label class="check-active fl">
-							<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" id="AllChoose"/>
-							<label for="AllChoose"></label>
-							<span>全选</span>
-						</label>
-						<div class="fr">
-							<span class="red-text">批量上架仅作用于未上架的产品,已上架的不再重复上架!</span>
-							<span class="com-btn-level1 com-btn-submit" ng-click="batchPutOn()">批量上架</span>
-							<span class="com-btn-level1 com-btn-submit" ng-mouseenter="enterBatchPutOnPropertySaveButton()" ng-mouseleave="leaveBatchPutOnPropertySaveButton()" ng-click="saveBatchPutOnProperty()">保存</span>
-							<span class="com-btn-level1 com-btn-red" ng-click="deleteBatch()">删除</span>
-							<span class="com-btn-level1 com-btn-cancel" ng-click="exitBatch()">取消</span>
+					<div class="fl">
+						<div class="operate-head">
+							<!--<label class="check-active fl">
+                                <input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" id="AllChoose"/>
+                                <label for="AllChoose"></label>
+                                <span>全选</span>
+                            </label>-->
+							<span class="red-text"><i class="fa fa-warning"></i> 批量上架仅作用于未上架的产品,已上架的不再重复上架!</span>
 						</div>
-					</div>
-					<div class="operate-content">
-						<div class="batch-sale">
-							<p><span class="batch-price-title">批量设置销售价:</span><em>1</em><span class="batch-progress"><i style="left: {{uasBatchPutOnProperty.editFluctuateRate ? uasBatchPutOnProperty.editFluctuateRate > 200 ? '100%' : uasBatchPutOnProperty.editFluctuateRate / 2 + '%' : 0}}"></i></span><em>200</em></p>
-							<div><span>销售价 = 近一个月的平均销售价 X </span><input type="number" ng-model="uasBatchPutOnProperty.editFluctuateRate" ng-change="onSalePriceChange()"><i>%</i>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(100)">100%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(120)">120%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(130)">130%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(150)">150%</span>
+						<div class="operate-content">
+							<div class="batch-sale">
+								<!--<p><span class="batch-price-title">批量设置销售价:</span><em>1</em><span class="batch-progress"><i style="left: {{uasBatchPutOnProperty.editFluctuateRate ? uasBatchPutOnProperty.editFluctuateRate > 200 ? '100%' : uasBatchPutOnProperty.editFluctuateRate / 2 + '%' : 0}}"></i></span><em>200</em></p>-->
+								<p><span class="batch-price-title">批量设置销售价:</span><em>1</em><input type="range" min="1" max="200" ng-model="uasBatchPutOnProperty.editFluctuateRate" ng-change="onProgress()" class="form-control"><em>200</em></p>
+								<div><span>销售价 = 近一个月的平均销售价 X </span><input type="number" ng-model="uasBatchPutOnProperty.editFluctuateRate" ng-change="onSalePriceChange()"><i>%</i>
+									<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(100)">100%</span>
+									<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(120)">120%</span>
+									<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(130)">130%</span>
+									<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(150)">150%</span>
+								</div>
+							</div>
+							<div class="batch-date">
+								<p>批量设置交期:</p>
+								<div><span>交期(天)= </span><input type="number" ng-model="uasBatchPutOnProperty.editMinDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, false)"> - <input type="number" ng-model="uasBatchPutOnProperty.editMaxDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, true)"></div>
 							</div>
-						</div>
-						<div class="batch-date">
-							<p>批量设置交期:</p>
-							<div><span>交期(天)= </span><input type="number" ng-model="uasBatchPutOnProperty.editMinDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, false)"> - <input type="number" ng-model="uasBatchPutOnProperty.editMaxDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, true)"></div>
 						</div>
 					</div>
+					<div class="fr">
+						<span class="com-btn-level1 com-btn-submit" ng-click="batchPutOn()">上架</span>
+						<span class="com-btn-level1 com-btn-red" ng-mouseenter="enterBatchPutOnPropertySaveButton()" ng-mouseleave="leaveBatchPutOnPropertySaveButton()" ng-click="saveBatchPutOnProperty()">保存</span>
+						<span class="com-btn-level1 com-btn-cancel" ng-click="exitBatch()">取消</span>
+					</div>
+					<div style="clear: both;"></div>
 				</div>
 			</div>
 			<div class="wanted_list01">
 				<!--在售产品-->
 				<div class="tab">
-					<table class="public-tab table">
+					<table class="public-tab standard-tab table">
 						<thead>
 						<tr>
+							<th width="80">
+								<label class="check-active">
+									<input ng-disabled="currenctMaterial.length == 0" type="checkbox"  ng-click="chooseAllItem()" ng-checked="chooseAll || chooseAllPage" id="AllChoose12"/>
+									<label for="AllChoose12"></label>
+									<span>全选</span>
+								</label>
+							</th>
 							<th width="80">序号</th>
-							<th width="100">
+							<th width="120">
 								<div class="erp-reserve"  ng-click="sortByERPReserve()">
-									ERP空闲库存
+									闲库存
 									<a class="sort-area" href="javascript:void(0)">
 										<i class=" fa fa-long-arrow-up" ng-class="{'active': sortByERP == 'ASC'}"></i>
 										<i class=" fa fa-long-arrow-down" ng-class="{'active': sortByERP == 'DESC'}"></i>
 									</a>
 								</div>
 							</th>
-							<th width="180">产品名称(类目)</th>
-							<th width="200">产品型号</th>
-							<th width="150">品牌</th>
+							<th width="140">产品名称(类目)</th>
+							<th width="180">产品型号</th>
+							<th width="130">品牌</th>
 							<th width="100">单位</th>
+							<!--<th width="80">封装</th>-->
 							<th width="180">操作</th>
 						</tr>
 						</thead>
 						<tbody class="bg-show">
 						<!--<tr style="height: 14px;" ng-show="!isBatch && standard_tab == 'standard'">-->
 						<tr style="height: 14px;">
-							<td colspan="7" class="hei18"></td>
+							<td colspan="8" class="hei18"></td>
 						</tr>
 						</tbody>
 						<tbody>
 						<tr style="height: 14px;" ng-show="currenctMaterial.length > 0 && standard_tab == 'unstandard' && showTip">
-							<td colspan="7" class="hei17">
+							<td colspan="8" class="hei17">
 								<span>*匹配成为标准产品方可通过器件选型、参数搜索展示</span><a ng-click="cancelTip()">&times;</a>
 							</td>
 						</tr>
+						<tr class="no-hover batch-tr" ng-if="(chooseAll || chooseAllPage) && currenctMaterial.length != 0">
+							<td colspan="8">
+								<div class="batch-line" ng-if="chooseAll && !chooseAllPage">
+									已选中当前页
+									<em class="red" ng-bind="materialAll.numberOfElements"></em>个产品,
+									<a ng-click="turnAllPage()" class="blue">点击此处</a>切换选中所有页面<em class="red" ng-bind="materialAll.totalElements"></em>个产品
+								</div>
+								<div class="batch-line" ng-if="chooseAllPage">
+									已选中所有页面
+									<em class="red" ng-bind="materialAll.totalElements"></em>个产品,
+									<a ng-click="cancelAllPage()" class="blue">点击此处</a>全部取消选中
+								</div>
+							</td>
+						</tr>
 						</tbody>
 						<tbody ng-repeat="material in currenctMaterial">
 						<!--<tr ng-class="{ 'active': material.selected }" class="gre-bg">-->
 						<tr ng-class="{ 'active': material.selected, 'gre-bg' : material.exPandOper}">
 							<td class="check-input">
-								<span ng-show="isBatch"><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
-								<span
-										ng-show="!isBatch" ng-bind="(param.page - 1) * 10 + $index + 1"></span>
+								<span><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
+							</td>
+							<td>
+								<!--<span ng-show="isBatch"><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>-->
+								<span ng-bind="(param.page - 1) * 10 + $index + 1"></span>
 							</td>
 							<td><span ng-bind="material.erpReserve ? material.erpReserve : 0" title="{{material.erpReserve}}"></span></td>
 							<td>
@@ -1706,12 +1874,15 @@
 								<div class="ellipsis-div" ng-if="!material.pbranden" ng-bind="material.pbrand" title="{{material.pbrand}}"></div>
 							</td>
 							<td ng-bind="material.unit || 'PCS'" title="{{material.unit  || 'PCS'}}"></td>
+							<!--<td>-->
+							<!--<span ng-bind="material.encapsulation || '-'" title="{{material.encapsulation || '-'}}"></span>-->
+							<!--</td>-->
 							<td class="edit">
 								<span name="delete-material" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="deleteMaterial(material)"><span>删除</span></span>
 								<span ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="showShelfArea(material)">
-									<span ng-if="material.batchCount">添加产品</span>
-									<span ng-if="!material.batchCount">编辑上架</span>
-								</span>
+								<span ng-if="material.batchCount">添加产品</span>
+								<span ng-if="!material.batchCount">编辑上架</span>
+							</span>
 								<span ng-if="material.batchCount" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="expandGoods(material)"><span>展开<i class="fa fa-angle-down" style="margin-left:2px;"></i></span></span>
 								<!--收起-->
 								<span ng-show="!isBatch && material.exPandOper" ng-click="disExpandGoods(material)" class="packUp"><span>收起<i class="fa fa-angle-up" style="margin-left:2px;"></i></span></span>
@@ -1720,8 +1891,8 @@
 							</td>
 						</tr>
 						<!--展开内容-->
-						<tr ng-if="material.addGoodsOper  || (material.exPandOper && material.goodsArr.length > 0)">
-							<td colspan="7" style="padding: 0;">
+						<tr ng-show="material.addGoodsOper  || (material.exPandOper && material.goodsArr.length > 0)">
+							<td colspan="8" style="padding: 0;">
 								<div class="show-content">
 									<div class="content-body">
 										<table class="public-tab table">
@@ -1741,7 +1912,7 @@
 													<div class="blue-bg">
 														<div></div>
 														<div class="img">
-															<a><img ng-src="{{goods.editPic || material.cmpImg || 'static/img/store/common/default.png'}}" alt="img"/></a>
+															<a><img ng-src="{{goods.editPic || 'static/img/store/common/default.png'}}" alt="img"/></a>
 															<div class="edit-img">
 																<a ng-click="deleteImg(goods)" class="delete-img" title="删除" ng-if="goods.editPic"><i class="fa fa-trash"></i></a>
 																<a ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
@@ -1750,15 +1921,24 @@
 														<div class="content margin10">
 															<!--<p class="title">包装/生产日期</p>-->
 															<div class="input-list">
-																<span class="tit">包装:</span><input type="text" class="form-control" name="packaging" ng-maxlength="10" title="包装" maxlength="10" placeholder="包装方式" style="width: 96px;" ng-model="goods.editPackaging"
-																								   ng-class="{'error' : goods.editPackagingInvalid}" ng-blur="editPackaging(goods, true)" ng-change="changePackaging(goods)"/>
+																<span class="tit">包装:</span><!--<input type="text" class="form-control" name="packaging" ng-maxlength="10" title="包装" maxlength="10" placeholder="包装方式" style="width: 96px;" ng-model="goods.editPackaging"
+                                                                                               ng-class="{'error' : goods.editPackagingInvalid}" ng-blur="editPackaging(goods, true)" ng-change="changePackaging(goods)"/>-->
+																<select ng-model="goods.editPackaging" ng-init="goods.editPackaging='请选择'"  class="select-adder select-package" title="包装">
+																	<option ng-repeat="item in packageArray" ng-click="showText(item)">{{item}}</option>
+																</select>
+																<!--<div class="dropdown">
+                                                                    <input class="btn btn-default dropdown-toggle button-select select-adder" id="dropdownMenu2" type="text" ng-model="goods.editPackaging" placeholder="包装方式" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" readonly="readonly">
+                                                                    <ul class="dropdown-menu .dropdown-menu-left button-option" aria-labelledby="dropdownMenu2">
+                                                                        <li ng-repeat="item in packageArray" ng-click="showText(item)">{{item}}</li>
+                                                                    </ul>
+                                                                </div>-->
 															</div>
-															<div class="input-list">
+															<div class="input-list produceDate-fix">
 																<span class="tit">生产日期:</span><input type="text" class="form-control" name="produceDate" ng-maxlength="11" title="生产日期" maxlength="11" placeholder="生产日期" style="width: 96px;" ng-model="goods.editProduceDate"
 																									 ng-class="{'error' : goods.editProduceDateInvalid}"
 																									 ng-change="editProduceDateFa(goods, false)"/>
 															</div>
-															<div class="clearfix">
+															<div class="clearfix produceDate-fix">
 																<span>可拆卖:</span>
 																<span class="switch"><button ng-class="{'active' : goods.editBreakUp}"
 																							 ng-click="toggleIsBreadUp(goods, false)"></button></span>
@@ -1767,8 +1947,8 @@
 														<div class="content margin10">
 															<!--<p class="title">库存</p>-->
 															<div class="input-list">
-																<span class="tit">上架数量:</span><input type="number" class="wid70 form-control" name="reserve" title="上架数量" placeholder="数量"
-																									 ng-model="goods.editReserve" maxlength="9" ng-blur="setPriceMaxAmount(goods, false)" ng-class="{'error' : goods.editReserveInvalid}" oninput="if(value.length>9)value=value.slice(0,9)"/>
+																<span class="tit">库存:</span><input type="number" class="wid70 form-control" name="reserve" title="库存" placeholder="数量"
+																								   ng-model="goods.editReserve" maxlength="9" ng-blur="setPriceMaxAmount(goods, false)" ng-class="{'error' : goods.editReserveInvalid}" oninput="if(value.length>9)value=value.slice(0,9)"/>
 															</div>
 															<div class="input-list">
 																<span class="tit">起订量:</span><input type="number" class="wid70 form-control" name="minBuyQty" title="起拍"  placeholder="数量"
@@ -1817,12 +1997,12 @@
 															<p class="title height29">交期(天):</p>
 															<div class="input-list">
 																<p>
-											<span><input type="number" class="wid36 form-control" name="minDelivery" title="最小交期" placeholder="天数" oninput="if(value.length>2)value=value.slice(0,2)"
+											<span><input type="number" class="wid36 form-control" name="minDelivery" title="最小交期" placeholder="天数" oninput="if(value.length>3)value=value.slice(0,3)"
 														 ng-model="goods.editMinDelivery"
 														 ng-blur="changeDelivery(goods.editMinDelivery, goods.editMaxDelivery, true, goods)"
 														 ng-class="{'error' : goods.editMinDeliveryinValid}"/></span>
 																	<span style="margin-left: 4px;">–</span>
-																	<span><input type="number" class="wid36 form-control" name="maxDelivery" title="最大交期" placeholder="天数" oninput="if(value.length>2)value=value.slice(0,2)" ng-model="goods.editMaxDelivery" ng-blur="changeDelivery(goods.editMinDelivery, goods.editMaxDelivery, false, goods)"
+																	<span><input type="number" class="wid36 form-control" name="maxDelivery" title="最大交期" placeholder="天数" oninput="if(value.length>3)value=value.slice(0,3)" ng-model="goods.editMaxDelivery" ng-blur="changeDelivery(goods.editMinDelivery, goods.editMaxDelivery, false, goods)"
 																				 ng-class="{'error' : goods.editMaxDeliveryinValid}"/></span>
 																</p>
 															</div>
@@ -1870,12 +2050,10 @@
 														<div class="content width140">
 															<p class="title"><span>包装:</span><span ng-bind="goods.packaging">盘装</span></p>
 															<p class="title"><span>生产日期:</span><span ng-bind="goods.produceDate">20160123</span></p>
-															<p class="title" ng-class="{'noBreak' : !goods.breakUp}">
-																<span ng-bind="goods.breakUp ? '可拆卖' : '不可拆卖'"></span>
-															</p>
+															<p class="title" ng-class="{'noBreak' : !goods.breakUp}" ng-if="goods.breakUp" ng-bind="goods.breakUp ? '可拆卖' : '不可拆卖'">不可拆卖</p>
 														</div>
 														<div class="content width130">
-															<p class="title"><span>已上架数量:</span><span ng-bind="goods.reserve">9023492</span></p>
+															<p class="title"><span>库存:</span><span ng-bind="goods.reserve">9023492</span></p>
 															<p class="title"><span>起订量:</span><span ng-bind="goods.minBuyQty">90492</span></p>
 															<p class="title"><span>包装数量:</span><span ng-bind="goods.minPackQty">980</span></p>
 														</div>
@@ -1902,9 +2080,7 @@
 															<div class="input-list">
 																<button class="off" ng-click="editGoods(material, goods)">编辑</button>
 																<button ng-if="goods.status != 601 && goods.status != 602" class="ok" ng-click="putOn(material, goods)">上架</button>
-																<button class="ok" ng-click="isRecommendGoods(goods)" name =
-																		"delete-goods">删除
-																</button>
+																<button class="ok" ng-click="isRecommendGoods(goods)" name ="delete-goods">删除</button>
 															</div>
 														</div>
 													</div>
@@ -1923,7 +2099,7 @@
 													<span>近一个月的销售平均价:<em ng-bind="material.averMonthSalePrice |  formateNumber : 6"></em></span>
 												</td>
 											</tr>
-											<tr class="edit-content edits" ng-if="goods.edit">
+											<tr class="edit-content edits" ng-show="goods.edit">
 												<td colspan="10" style="background:#f0f7fd;">
 													<div class="blue-bg">
 														<div></div>
@@ -1931,18 +2107,26 @@
 															<a><img ng-src="{{goods.editPic || 'static/img/store/common/default.png'}}" alt="img"/></a>
 															<div class="edit-img">
 																<a ng-if="goods.editPic" ng-click="deleteImg(goods)" class="delete-img" title="删除"><i class="fa fa-trash"></i></a>
-																<a
-																		ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
+																<a ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
 															</div>
 														</div>
 														<div class="content margin10">
 															<!--<p class="title">包装/生产日期</p>-->
 															<div class="input-list">
-																<span class="tit">包装:</span><input type="text" class="form-control" name="packaging" ng-maxlength="10" title="包装" maxlength="10" placeholder="包装方式" style="width: 96px;" ng-model="goods.editPackaging"
-																								   ng-class="{'error' : goods.editPackagingInvalid}"
-																								   ng-blur="editPackaging(goods, true)" ng-change="changePackaging(goods)"/>
+																<span class="tit">包装:</span><!--<input type="text" class="select" name="packaging" ng-maxlength="10" title="包装" maxlength="10" placeholder="包装方式" style="width: 96px;" ng-model="goods.editPackaging"
+																							   ng-class="{'error' : goods.editPackagingInvalid}"
+																							   ng-blur="editPackaging(goods, true)" ng-change="changePackaging(goods)"/>-->
+																<select ng-model="goods.editPackaging" ng-init="goods.editPackaging='请选择'" class="select-adder select-package" title="包装">
+																	<option ng-repeat="item in packageArray" ng-click="showClickText(goods, item)">{{item}}</option>
+																</select>
+																<!--<div class="dropdown">
+                                                                    <input class="btn btn-default dropdown-toggle button-select select-adder" type="text" id="dropdownMenu1" ng-model="goods.editPackaging" placeholder="包装方式" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" readonly="readonly">
+                                                                    <ul class="dropdown-menu .dropdown-menu-left button-option" aria-labelledby="dropdownMenu1">
+                                                                        <li ng-repeat="item in packageArray" ng-click="showClickText(goods, item)">{{item}}</li>
+                                                                    </ul>
+                                                                </div>-->
 															</div>
-															<div class="input-list">
+															<div class="input-list produceDate-fix">
 																<span class="tit">生产日期:</span><input type="text" class="form-control" name="produceDate" ng-maxlength="11" title="生产日期" maxlength="11" placeholder="生产日期" style="width: 96px;" ng-model="goods.editProduceDate"
 																									 ng-class="{'error' : goods.editProduceDateInvalid}"
 																									 ng-change="editProduceDateFa(goods, true)"/>
@@ -1951,7 +2135,7 @@
 																<!--<option value="0">不可拆卖</option>-->
 																<!--</select>-->
 															</div>
-															<div class="clearfix">
+															<div class="clearfix produceDate-fix ">
 																<span>可拆卖:</span>
 																<span class="switch"><button ng-class="{'active' : goods.editBreakUp}"
 																							 ng-click="toggleIsBreadUp(goods, true)"></button></span>
@@ -1960,9 +2144,9 @@
 														<div class="content margin10">
 															<!--<p class="title">库存</p>-->
 															<div class="input-list">
-																<span class="tit">上架数量:</span><input type="number" class="wid70 form-control" name="reserve" title="上架数量" placeholder="数量" ng-model="goods.editReserve" ng-blur="setPriceMaxAmount(goods, true)"
-																									 maxlength="9" oninput="if(value.length>9)value=value.slice(0,9)"
-																									 ng-class="{'error' : goods.editReserveInvalid}"/>
+																<span class="tit">库存:</span><input type="number" class="wid70 form-control" name="reserve" title="库存" placeholder="数量" ng-model="goods.editReserve" ng-blur="setPriceMaxAmount(goods, true)"
+																								   maxlength="9" oninput="if(value.length>9)value=value.slice(0,9)"
+																								   ng-class="{'error' : goods.editReserveInvalid}"/>
 															</div>
 															<div class="input-list">
 																<span class="tit">起订量:</span><input type="number" class="wid70 form-control" name="minBuyQty"
@@ -2015,10 +2199,10 @@
 															<p class="title height29">交期(天):</p>
 															<div class="input-list">
 																<p>
-																<span><input type="number" class="wid36 form-control" name="minDelivery" title="最小交期" placeholder="天数" oninput="if(value.length>2)value=value.slice(0,2)" ng-model="goods.editMinDelivery"
+																<span><input type="number" class="wid36 form-control" name="minDelivery" title="最小交期" placeholder="天数" oninput="if(value.length>3)value=value.slice(0,3)" ng-model="goods.editMinDelivery"
 																			 ng-blur="changeDelivery(goods.editMinDelivery, goods.editMaxDelivery, true, goods)" ng-class="{'error' : goods.editMinDeliveryinValid}"/></span>
 																	<span style="margin-left: 4px;">–</span>
-																	<span><input type="number" class="wid36 form-control" name="maxDelivery" title="最大交期" placeholder="天数" oninput="if(value.length>2)value=value.slice(0,2)" ng-model="goods.editMaxDelivery"
+																	<span><input type="number" class="wid36 form-control" name="maxDelivery" title="最大交期" placeholder="天数" oninput="if(value.length>3)value=value.slice(0,3)" ng-model="goods.editMaxDelivery"
 																				 ng-blur="changeDelivery(goods.editMinDelivery, goods.editMaxDelivery, false, goods)" ng-class="{'error' : goods.editMaxDeliveryinValid}"/></span>
 																</p>
 															</div>
@@ -2026,7 +2210,7 @@
 														<div class="content margin10">
 															<!--<p class="title">自营 / 寄售</p>-->
 															<div class="input-list">
-																<select name="editSelfSale" ng-change="changeSaleMode(goods)" class="wid56 select-adder form-control" ng-model="goods.editSelfSale" ng-disabled="$$nonProduct.canSelfSale">
+																<select name="editSelfSale" ng-change="changeSaleMode(goods)" class="wid56 select-adder form-control" ng-model="goods.editSelfSale" ng-disabled="!$$nonProduct.canSelfSale">
 																	<option value="1">自营</option>
 																	<option value="2">寄售</option>
 																</select>
@@ -2050,7 +2234,7 @@
 											<!--空状态-->
 											<tbody ng-if="currenctMaterial.length == 0">
 											<tr style="height: 190px;">
-												<td colspan="7" style="border-bottom: none;">
+												<td colspan="8" style="border-bottom: none;">
 													<div class="col-xs-2"  style="margin-left: 34%; margin-top: 65px;">
 														<img src="static/img/all/empty-cart.png">
 													</div>
@@ -2066,6 +2250,9 @@
 							</td>
 						</tr>
 						</tbody>
+						<tbody>
+						<!--<tr class="no-hover batch-tr" ng-if="chooseAll && !chooseAllPage" ng-class="{'active': $data.length > 10}">-->
+						</tbody>
 					</table>
 					<div class="empty" ng-if="currenctMaterial.length == 0">
 						<p class="empty-img">
@@ -2073,7 +2260,7 @@
 						</p>
 						<div class="empty-info">
 							<p class="grey"> 暂无产品信息,赶快上传让更多人看到你的产品吧 </p>
-							<a href="/vendor#/vendor_upload"><i></i>马上去上传</a>
+							<a href="vendor#/vendor_upload?type=company"><i></i>马上去上传</a>
 						</div>
 					</div>
 					<div class="record-line text-right" ng-if="currenctMaterial.length != 0">
@@ -2161,7 +2348,7 @@
 							<th width="120">产品名称(类目)</th>
 							<th width="120">品牌</th>
 							<th width="100">型号</th>
-							<th width="100">封装</th>
+							<!--<th width="100">封装</th>-->
 							<th width="80"></th>
 						</tr>
 						</thead>
@@ -2183,30 +2370,31 @@
 								</select>
 							</td>
 							<td title="{{product.pcmpcode}}" ng-bind="product.pcmpcode || '-'">Lhhjhj-3</td>
-							<td title="{{product.encapsulation}}" ng-bind="product.encapsulation  || '-'">BGA</td>
+							<!--<td title="{{product.encapsulation}}" ng-bind="product.encapsulation  || '-'">BGA</td>-->
 							<td class="confirm"><span ng-if="product.matchresults.length != 0 && product.canMatch" ng-click="updateNStandardOne(product)">确认</span></td>
 						</tr>
 						</tbody>
 						<tr style="height: 40px;" class="no-hover">
-							<td colspan="7" style="border-bottom: none; padding: 0;">
-								<div class="record-line text-right">
-								<span class="set-count">
-									每页显示:
-									<!--<input type="text" value="10" class="form-control">-->
-									<!--<ul>-->
-									<!--<li>15</li>-->
-									<!--</ul>-->
-									<select ng-model="$$nonProduct.count" ng-change="fitCountToTable($$nonProduct.count)">
-										<option value="10">10</option>
-										<option value="15">15</option>
-										<option value="20">20</option>
-									</select>
-								</span>
+							<td colspan="8" style="border-bottom: none; padding: 0;">
+								<div class="record-line text-right" ng-if="chooseAllPage">
+									<span class="set-count">
+										每页显示:
+										<select ng-model="$$nonProduct.count" ng-change="fitCountToTable($$nonProduct.count)">
+											<option value="10">10</option>
+											<option value="15">15</option>
+											<option value="20">20</option>
+										</select>
+									</span>
 									显示<span>{{(param.currentPage - 1) * param.count + 1}}</span>-
 									<span ng-if="param.currentPage != materialAll.totalPages">{{param.currentPage * param.count}}</span>
 									<span ng-if="param.currentPage == materialAll.totalPages">{{materialAll.totalElements}}</span>
 									,共:<span style="color: #5078cb;">{{materialAll.totalElements}}</span>个
 								</div>
+								<div class="record-line text-right" ng-if="!chooseAllPage">
+									显示<span>1</span>-
+									<span ng-bind="currenctMaterial.length"></span>
+									,共:<span style="color: #5078cb;">{{currenctMaterial.length}}</span>个
+								</div>
 							</td>
 						</tr>
 						</tbody>
@@ -2254,7 +2442,7 @@
 						<div class="clearfix">
 							<div class="detail">
 								<div class="detail-title">包装:<span ng-bind="goods.packaging">盘装</span></div>
-								<div class="detail-title">已上架数量:<span ng-bind="goods.reserve">9023492</span></div>
+								<div class="detail-title">库存:<span ng-bind="goods.reserve">9023492</span></div>
 								<div class="detail-title">起订量:<span ng-bind="goods.minBuyQty">90492</span></div>
 							</div>
 							<div class="detail distance">
@@ -2267,7 +2455,7 @@
 							</div>
 							<div class="detail">
 								<div class="detail-title">销售方式:<span ng-bind="goods.selfSale">寄售</span></div>
-								<div class="detail-title" ng-bind="goods.breakUp ? '可拆卖':'不可拆卖'">不可拆卖</div>
+								<div class="detail-title" ng-bind="goods.breakUp ? '可拆卖':'不可拆卖'"></div>
 							</div>
 							<div class="detail width100">
 								<div class="title-price"><span>梯度/pcs</span><span>单价(<i ng-bind="goods.currencyName == 'RMB' ? '¥':'$'"></i>)</span></div>
@@ -2322,4 +2510,24 @@
 		position: relative;
 		top: 7px;
 	}
-</style>
+</style>
+
+<!--
+<script>
+	$(function(){
+		$(document).on('click', function () {
+			if ($(document).scrollTop() + $(window).height() < $('.record-line').offset().top + $('.record-line').height()) {
+				$('.standard-tab.table>tbody>tr.batch-tr').addClass('active')
+			} else {
+				$('.standard-tab.table>tbody>tr.batch-tr').removeClass('active')
+			}
+		})
+		$(window).bind("scroll",function() {
+			if ($(document).scrollTop() + $(window).height() < $('.record-line').offset().top + $('.record-line').height()) {
+				$('.standard-tab.table>tbody>tr.batch-tr').addClass('active')
+			} else {
+				$('.standard-tab.table>tbody>tr.batch-tr').removeClass('active')
+			}
+		});
+	})
+</script>-->

+ 442 - 202
src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_unstandard_erp.html → src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_person_erp.html

@@ -109,6 +109,10 @@
 	.public-tab.table>tbody>tr>td{
 		border-top: none;
 		border-bottom: #e8e8e8 1px solid;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		padding: 0 10px;
 	}
 	.public-tab.table>tbody>tr>td a{
 		margin: 0;
@@ -125,14 +129,14 @@
 	.public-tab.table>tbody>tr>td span{
 		margin: 0;
 	}
-	.public-tab.table>tbody>tr>td span.brand-type{
+	/*.public-tab.table>tbody>tr>td span.brand-type{
 		display: inline-block;
 		margin: 0;
-		width: 80%;
+		width: 180px;
 		overflow: hidden;
 		text-overflow: ellipsis;
 		white-space: nowrap;
-	}
+	}*/
 	.public-tab.table>tbody>tr>td span:hover span {
 		color: #fff;
 		background: #5078cb;
@@ -171,8 +175,7 @@
 	}
 	.search-check{
 		width: 100%;
-		min-height: 54px;
-		height: auto;
+		height: 54px;
 		background: #fff;
 		padding-top: 10px;
 		margin-bottom: 16px;
@@ -180,7 +183,6 @@
 	.search-check .search{
 		width: 550px;
 		margin-left: 150px;
-		margin-bottom: 10px;
 	}
 	.search-check .search .form-control{
 		width: 340px;
@@ -239,92 +241,9 @@
 	.search-check .check .check-active label{
 		margin-right: 0 !important;
 	}
-	.search-check .batch-operate {
-		clear: both;
-		background: #99FFFF;
-	}
-	.search-check .batch-operate .operate-head {
-		height: 40px;
-		line-height: 40px;
-		margin: 0 10px;
-		border-bottom: 1px solid;
-		padding: 0 20px;
-	}
-	.search-check .batch-operate .operate-head .check-active {
-		font-weight: normal;
-		height: 40px;
-	}
-	.search-check .batch-operate .operate-head .red-text {
-		color: #ee4312;
-	}
-	.search-check .batch-operate .operate-content {
-		height: 70px;
-		line-height: 30px;
-	}
-	.search-check .batch-operate .operate-content > div {
-		display: inline-block;
-	}
-	.search-check .batch-operate .operate-content > div:first-child {
-		margin-right: 111px;
-		margin-left: 28px;
-	}
-	.search-check .batch-operate .operate-content > div p {
-		font-weight: bold;
-	}
-	.search-check .batch-operate .operate-content > div p .batch-price-title {
-		margin-right: 91px;
-	}
-	.search-check .batch-operate .operate-content > div p .batch-progress {
-		width: 108px;
-		height: 5px;
-		background: #fff;
-		display: inline-block;
+	.check-input {
 		position: relative;
 	}
-	.search-check .batch-operate .operate-content > div p .batch-progress i {
-		width: 5px;
-		height: 10px;
-		background: #169BD5;
-		display: inline-block;
-		position: absolute;
-		top: -3px;
-	}
-	.search-check .batch-operate .operate-content > div p em {
-		margin: 0 5px;
-	}
-	.search-check .batch-operate .operate-content > div > div input {
-		padding: 0 5px;
-		height: 25px;
-	}
-	.search-check .batch-operate .operate-content .batch-sale input {
-		width: 60px;
-		margin-right: 10px;
-		padding-right: 12px;
-	}
-	.search-check .batch-operate .operate-content .batch-sale div .com-btn-submit {
-		margin-right: 10px;
-	}
-	.search-check .batch-operate .operate-content .batch-sale > div {
-		position: relative;
-	}
-	.search-check .batch-operate .operate-content .batch-sale div i {
-		position: absolute;
-		left: 234px;
-		top: 2px;
-	}
-	.search-check .batch-operate .operate-content .batch-date input {
-		width: 56px;
-	}
-	/*.search-check .batch-operate .operate-content .batch-sale > div > input::-webkit-outer-spin-button,
-	.search-check .batch-operate .operate-content .batch-sale > div > input::-webkit-inner-spin-button {
-		-webkit-appearance: revert !important;
-		margin: unset !important;
-		opacity: 1 !important;
-		height: auto !important;
-	}*/
-	/*.search-check .batch-operate .operate-content .batch-sale input {
-		-webkit-appearance: textfield !important;
-	}*/
 	.check-input input{
 		display: none;
 	}
@@ -344,6 +263,11 @@
 	.check-input input[type="checkbox"]:checked + label{
 		background-position: -15px 0;
 	}
+	.check-input .standard {
+		position: absolute;
+		top: 0;
+		left: 0;
+	}
 	.record-line{
 		min-height: 30px;
 		font-size: 12px;
@@ -357,6 +281,9 @@
 	.wanted_list01 .pagination{
 		margin: 0;
 	}
+	.wanted_list01 .tab table th {
+		color: #333 !important;
+	}
 	.ng-table-pager{
 		padding-bottom: 20px;
 	}
@@ -580,7 +507,7 @@
 		background: url("static/img/icon/check-ok.png") no-repeat center;
 	}
 	/*分页鼠标悬停效果*/
-	.device .wanted_list01 a:hover {
+	.device .wanted_list01 .pagination a:hover {
 		border-bottom: 1px solid #ddd!important;
 	}
 	.device .wanted_list01 a.page-a:hover{
@@ -614,7 +541,7 @@
 		color: #a10606!important;
 	}
 	.public-tab.table>tbody>tr>td.edit{
-		text-align: left;
+		text-align: center;
 		padding: 8px 0;
 		overflow: visible;
 	}
@@ -765,13 +692,16 @@
 		font-size: 14px;
 		color: #f15601;
 	}
-	.result a{
+	.result a.fr{
 		padding-right: 10px;
-		float: right;
 		font-size: 20px;
 		font-weight: bold;
 		color: #ef1d1d;
 	}
+	.result .operate-introduce {
+		font-size: 14px;
+		color: #5078cb;
+	}
 	.tab-head{
 		width: 100%;
 		height: 40px;
@@ -1055,7 +985,7 @@
 	}
 	.edit-contents .content .title span:first-child {
 		float: left;
-		width: 80px;
+		width: 70px;
 		text-align: right;
 	}
 	.edit-contents .content .title span:last-child {
@@ -1340,13 +1270,6 @@
 	#define-content .labelling em{
 		color: #f00;
 	}
-	#define-content td > span {
-		float: left;
-		margin-left: 20px;
-		font-size: 13px;
-		color: #008000;
-		line-height: 24px;
-	}
 	#define-content .labelling input{
 		padding-left: 10px;
 		width: 157px;
@@ -1568,10 +1491,10 @@
 	#wanted-list02{
 		display: none;
 	}
-	.modal-backdrop {
-		background-color: transparent ;
-		bottom: unset!important;
-	}
+	/* .modal-backdrop {
+         background-color: transparent ;
+         bottom: unset!important;
+     }*/
 	.modal{
 		bottom: unset!important;
 	}
@@ -1582,83 +1505,335 @@
 		position: absolute;
 		top: 45px;
 	}
-	.pro_management .table tr th .erp-reserve {
+	.replace-row:hover {
+		background: #fff !important;
+	}
+	.replace-row td {
+		padding: 0 21px !important;
+	}
+	.replace-row td > div {
+		/*height: 67px;*/
+	}
+	.replace-row td > div > p {
+		display: inline-block;
+		float: left;
+		font-size: 14px;
+		height: 32px;
+		line-height: 32px;
+		padding-left: 10px;
+	}
+	.replace-row td > div > div {
+		display: inline-block;
+		float: left;
+		line-height: 32px;
+		width: 884px;
+	}
+	.replace-row td > div > div .replace-item {
+		display: inline-block;
+		width: 50%;
+		text-align: left;
+		background: #f6fbfe;
+		float: left;
+		height: 32px;
+	}
+	.replace-row td > div > div .replace-item:nth-child(2n-1) {
+		border-right: 1px solid #dde9fc;
+	}
+	.replace-row td > div > div .replace-item:nth-child(4n-1),
+	.replace-row td > div > div .replace-item:nth-child(4n) {
+		background: #eff4fd;
+	}
+	.replace-row td > div > div .replace-item i {
+		width: 18px;
+		height: 18px;
+		display: inline-block;
+		border-radius: 100%;
+		background: #9fd4ff;
+		color: #fff;
+		text-align: center;
+		line-height: 18px;
+		margin-left: 10px;
+		font-size: 12px;
+	}
+	.replace-row td > div > div .replace-item span {
+		display: inline-block;
+		width: 200px;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		vertical-align: middle;
+	}
+	.edit-replace-box {
+		position: fixed;
+		width: 510px;
+		top: 10%;
+		left: 33%;
+		/*-webkit-box-shadow: 0 5px 15px rgba(0,0,0,.5);*/
+		/*-moz-box-shadow: 0 5px 15px rgba(0,0,0,.5);*/
+		/*box-shadow: 0 5px 15px rgba(0,0,0,.5);*/
+		z-index: 1;
+		font-size: 14px;
+	}
+	.edit-replace-box .title {
+		position: relative;
+		height: 44px;
+		background: #5078cb;
+		line-height: 44px;
+		color: #fff;
+		border-top-right-radius: 5px;
+		border-top-left-radius: 5px;
+	}
+	.edit-replace-box .title > div {
+		display: inline-block;
+		padding-left: 57px;
+		width: 47%;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+	.edit-replace-box .title i {
+		position: absolute;
+		right: 10px;
+		top: 8px;
 		cursor: pointer;
 	}
-	.pro_management .table tr th .erp-reserve .sort-area,
-	.pro_management .table tr th .erp-reserve .sort-area:hover{
-		color: inherit !important;
+	.edit-replace-box .content {
+		padding: 9px 0;
+		background: #fff;
 	}
-	.pro_management .table tr th .erp-reserve .sort-area .active{
+	.edit-replace-box .content .content-line {
+		margin: 0 0 14px 0;
+		position: relative;
+	}
+	.edit-replace-box .content .content-line p {
+		margin-left: 16px;
+		font-size: 14px;
+	}
+	.edit-replace-box .content .content-line .form-item {
+		display: inline-block;
+		width: 49%;
+	}
+	.edit-replace-box .content .content-line .form-item span em {
+		color: #e30e16
+	}
+	/*.edit-replace-box .content .content-line .form-item > span i {*/
+	/*color: #fd2637;*/
+	/*margin-right: 4px;*/
+	/*}*/
+	.edit-replace-box .content .content-line .form-item input {
+		border: 1px solid #bfbfbf;
+		border-radius: 2px;
+		height: 28px;
+		padding: 0 8px;
+		display: inline-block;
+		width: 140px;
+		padding: 0 8px;
+	}
+	.edit-replace-box .content .content-line .form-item.form-left span {
+		display: inline-block;
+		width: 85px;
+		text-align: right;
+	}
+	.edit-replace-box .content .content-line .form-item.form-left span i {
+		width: 18px;
+		height: 18px;
+		display: inline-block;
+		border-radius: 100%;
+		background: #9fd4ff;
+		color: #fff;
+		text-align: center;
+		line-height: 18px;
+		margin-left: 10px;
+		font-size: 12px;
+		margin-right: 4px;
+	}
+	/*.edit-replace-box .content .content-line .form-item.form-left input {
+		width: 140px;
+		padding: 0 8px;
+	}*/
+	.edit-replace-box .content .content-line .form-item.form-right {
+		padding-left: 13px;
+		position: relative;
+	}
+	/*.edit-replace-box .content .content-line .form-item.form-right input {*/
+	/*width: 101px;*/
+	/*padding: 0 8px;*/
+	/*}*/
+	.edit-replace-box .content .content-line .form-item.form-right i {
+		cursor: pointer;
+	}
+	.edit-replace-box .operate {
+		background: #fff;
+		height: 62px;
+		text-align: center;
+		padding-top: 15px;
+		border-top: 1px solid #e4e5e6;
+		border-bottom-left-radius: 5px;
+		border-bottom-right-radius: 5px;
+	}
+	.edit-replace-box .operate span {
+		display: inline-block;
+		width: 64px;
+		height: 28px;
+		line-height: 28px;
+		text-align: center;
+		background: #5078cb;
+		color: #fff;
+		cursor: pointer;
+	}
+	.edit-replace-box .operate span:last-child {
+		margin-left: 15px;
+		background: #acabab;
+	}
+
+	.edit-replace-box .content .content-line .form-item ul.similar-list {
+		position: absolute;
+		top: 27px;
+		left: 89px;
+		background: #fff;
+		border: 1px solid #b5b5b5;
+		z-index: 1;
+		max-height: 120px;
+		overflow-y: auto;
+		overflow-x: hidden;
+		border-radius: 3px;
+		width: 141px;
+		font-size: 14px;
+	}
+	.edit-replace-box .content .content-line .form-item.form-right ul.similar-list {
+		width: 140px;
+		left: 65px;
+	}
+	.edit-replace-box .content .content-line .form-item ul.similar-list li {
+		height: 30px;
+		line-height: 30px;
+		cursor: pointer;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		padding: 0 5px;
+	}
+	.edit-replace-box .content .content-line .form-item ul.similar-list li:hover {
+		background: #5078cb;
+		color: #fff;
+	}
+	.edit-replace-box .content .content-line .form-item input.error {
+		border-color: #e30e16;
+	}
+	.open-more{
+		text-align: center;
+		background: #f6f9ff;
+		clear: both;
+		height: 27px;
+		line-height: normal !important;
+		margin-right: 7px;
+		margin-left: 94px;
+	}
+	.open-more a{
+		font-size: 12px;
+		width: 200px;
+		height: 15px;
+		display: inline-block;
+		border: #5e9fcb 1px dashed;
+		border-top: 0;
+		font-weight: inherit;
+		background: #f6f9ff;
+		border-bottom-left-radius: 50px;
+		border-bottom-right-radius: 50px;
+		line-height: 15px;
+		text-decoration: none;
+		position: relative;
+		top: -3px;
+		z-index: 1;
+	}
+	.open-more a i{
+		margin-right: 5px;
+		font-size: 20px;
+		vertical-align: middle;
+		position: relative;
+		top: -5px;
+		color: #4290f7;
+	}
+	.open-more div {
+		position: relative;
+		height: 27px;
+		border-top: 1px dashed #5e9fcb;
+		top: 9px;
+	}
+	.open-more div.active {
+		top: 19px;
+	}
+	.open-more div.active a{
+		border-top-left-radius: 50px;
+		border-top-right-radius: 50px;
+		position: relative;
+		top: -12px;
+		border-bottom: none;
+		border-top: #5e9fcb 1px dashed;
+		border-bottom-left-radius: 0;
+		border-bottom-right-radius: 0;
+		background: #f1f6ff;
+	}
+	.open-more div.active em{
+		top: 3px;
+	}
+	.open-more div.active i{
+		top: 0;
+	}
+	.open-more a em{
+		position: relative;
+		top: -4px;
 		color: #5078cb;
 	}
+	.device .wanted_list01 .open-more a:hover {
+		border-bottom: 1px dashed !important;
+	}
 </style>
 <div class="user_right fr">
 	<!--货品管理-->
 	<div class="pro_management device">
 		<div class="com_tab">
 			<ul class="fl" style="width: 100%">
-				<li class="active"><a ui-sref="vendor_material_unstandard_erp({standardParam:'unstandard'})">非标产品</a></li>
-				<li><a ui-sref="vendor_material_erp({standardParam:'standard'})">标准产品</a></li>
+				<li><a ui-sref="vendor_material_erp">企业产品库</a></li>
+				<li class="active"><a ui-sref="vendor_material_person_erp">个人产品库</a></li>
 				<li><a ui-sref="vendor_onSale_erp">在售产品</a></li>
 				<li><a ui-sref="vendor_undercarriage_erp">上下架历史</a></li>
 			</ul>
 		</div>
+		<!--<div class="com_tab">
+			&lt;!&ndash;<ul class="fl distance" style="width: 100%">
+				<li ng-class="{active : standard_tab == 'unstandard'}"  ng-click="toggleStandard('unstandard')" title="非标产品({{nCount}})"><a href="" class="standard">非标产品(<em class="count">{{nCount}}</em>)</a></li>
+				<li ng-class="{active : standard_tab =='standard'}" ng-click="toggleStandard('standard')" title="标准产品({{sCount}})"><a href="" class="standard">标准产品(<em class="count">{{sCount}}</em>)</a></li>
+			</ul>&ndash;&gt;
+			&lt;!&ndash;匹配结果导航&ndash;&gt;
+			<div class="match-menu" ng-if="resultFrame">
+                <span>
+                    <a ng-click="toggleTab('matchResult')">匹配结果</a>
+                    <i class="fa fa-remove" ng-click="closeResultFrame('unstandard')"></i>
+                </span>
+			</div>
+		</div>-->
 		<!--非标和标准产品列表页-->
 		<div ng-if="standard_tab == 'unstandard' || standard_tab =='standard'">
 			<div class="search-check">
 				<div class="search fl">
 					<input type="text" class="form-control" ng-model="param.keyword" ng-search="onSearch()" placeholder="类目/型号/品牌"/>
 					<button ng-click="onSearch()">搜索</button>
-					<a ng-click="download()">批量导出</a>
+					<!--<a ng-click="download()">批量导出</a>-->
 				</div>
 				<div class="check fr">
-					<a ng-click="matchAllForERP()" ng-show="!isBatch"><span>一键匹配</span></a>
-					<a ng-click="enterBatch()" ng-show="!isBatch"><span>批量操作</span></a>
-					<!--<span class="check-btn" ng-show="isBatch">-->
-						<!--<label class="check-active">-->
-							<!--<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" id="AllChoose"/>-->
-							<!--<label for="AllChoose"></label>-->
-							<!--<span>全选</span>-->
-						<!--</label>-->
-						<!--<a-->
-								<!--ng-click="deleteBatch()" name="delete-material">删除</a>-->
-						<!--<a ng-click="exitBatch()">取消</a>-->
-					<!--</span>-->
-				</div>
-				<div class="batch-operate" ng-show="isBatch">
-					<div class="operate-head">
-						<label class="check-active fl">
-							<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" id="AllChoose"/>
+					<!--<a ng-show="!isBatch && standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="!isBatch && standard_tab == 'unstandard'">一键匹配</span></a>-->
+					<!--<a ng-show="!isBatch" ng-click="enterBatch()"><span ng-show="!isBatch">批量操作</span></a>-->
+					<a ng-click="deleteBatch()"><span>批量删除</span></a>
+					<!--<span class="check-btn" ng-show="isBatch">
+						<label class="check-active">
+							<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" ng-disabled="currenctMaterial.length == 0" id="AllChoose"/>
 							<label for="AllChoose"></label>
 							<span>全选</span>
 						</label>
-						<div class="fr">
-							<span class="red-text">批量上架仅作用于未上架的产品,已上架的不再重复上架!</span>
-							<span class="com-btn-level1 com-btn-submit" ng-click="batchPutOn()">批量上架</span>
-							<span class="com-btn-level1 com-btn-submit" ng-mouseenter="enterBatchPutOnPropertySaveButton()" ng-mouseleave="leaveBatchPutOnPropertySaveButton()" ng-click="saveBatchPutOnProperty()">保存</span>
-							<span class="com-btn-level1 com-btn-red" ng-click="deleteBatch()">删除</span>
-							<span class="com-btn-level1 com-btn-cancel" ng-click="exitBatch()">取消</span>
-						</div>
-					</div>
-					<div class="operate-content">
-						<div class="batch-sale">
-							<p><span class="batch-price-title">批量设置销售价:</span><em>1</em><span class="batch-progress"><i style="left: {{uasBatchPutOnProperty.editFluctuateRate ? uasBatchPutOnProperty.editFluctuateRate > 200 ? '100%' : uasBatchPutOnProperty.editFluctuateRate / 2 + '%' : 0}}"></i></span><em>200</em></p>
-							<div>
-								<span>销售价 = 近一个月的平均销售价 X </span>
-								<input type="number" ng-model="uasBatchPutOnProperty.editFluctuateRate" ng-change="onSalePriceChange()">
-								<i>%</i>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(100)">100%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(120)">120%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(130)">130%</span>
-								<span class="com-btn-level2 com-btn-submit" ng-click="setSalePrice(150)">150%</span>
-							</div>
-						</div>
-						<div class="batch-date">
-							<p>批量设置交期:</p>
-							<div><span>交期(天)= </span><input type="number" ng-model="uasBatchPutOnProperty.editMinDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, false)"> - <input type="number" ng-model="uasBatchPutOnProperty.editMaxDelivery" ng-blur="uasBatchChangeDeliver(uasBatchPutOnProperty.editMinDelivery, uasBatchPutOnProperty.editMaxDelivery, true)"></div>
-						</div>
-					</div>
+						<a ng-click="deleteBatch()" name="delete-material">删除</a>
+						<a ng-click="exitBatch()">取消</a>
+					</span>-->
 				</div>
 			</div>
 			<div class="wanted_list01">
@@ -1667,67 +1842,75 @@
 					<table class="public-tab table">
 						<thead>
 						<tr>
-							<th width="80">序号</th>
-							<th width="100">
-								<div class="erp-reserve"  ng-click="sortByERPReserve()">
-									ERP空闲库存
-									<a class="sort-area" href="javascript:void(0)">
-										<i class=" fa fa-long-arrow-up" ng-class="{'active': sortByERP == 'ASC'}"></i>
-										<i class=" fa fa-long-arrow-down" ng-class="{'active': sortByERP == 'DESC'}"></i>
-									</a>
-								</div>
+							<th width="80">
+								<label class="check-active">
+									<input type="checkbox"  ng-click="chooseAll()" ng-checked="isChoosedAll" ng-disabled="currenctMaterial.length == 0" id="AllChoose"/>
+									<label for="AllChoose"></label>
+									<span>全选</span>
+								</label>
 							</th>
+							<th width="80">序号</th>
 							<th width="180">产品名称(类目)</th>
 							<th width="200">产品型号</th>
 							<th width="150">品牌</th>
-							<th width="100">单位</th>
+							<!--<th width="100">单位</th>-->
+							<th width="80">规格</th>
 							<th width="180">操作</th>
 						</tr>
 						</thead>
 						<tbody class="bg-show">
+						<div class="result" ng-if="resultTip"><span class="fl"><em>*</em>创建您的个人产品库,可为您精准推送客户需求</span>
+							<a href="help/helpDetail/56" target="_blank" class="operate-introduce">操作说明</a>
+							<a ng-click="closeTip()" class="fr">&times;</a>
+						</div>
 						<!--<tr style="height: 14px;" ng-show="!isBatch && standard_tab == 'standard'">-->
 						<tr style="height: 14px;">
 							<td colspan="7" class="hei18"></td>
 						</tr>
 						</tbody>
-						<tbody>
-						<tr style="height: 14px;" ng-show="currenctMaterial.length > 0 && standard_tab == 'unstandard' && showTip">
-							<td colspan="7" class="hei17">
-								<span>*匹配成为标准产品方可通过器件选型、参数搜索展示</span><a ng-click="cancelTip()">&times;</a>
-							</td>
-						</tr>
-						</tbody>
-						<tbody ng-repeat="material in currenctMaterial">
+						<!--<tbody>
+                        <tr style="height: 14px;" ng-show="currenctMaterial.length > 0 && standard_tab == 'unstandard' && showTip">
+                            <td colspan="7" class="hei17">
+                                <span>*匹配成为标准产品方可通过器件选型、参数搜索展示</span><a ng-click="cancelTip()">&times;</a>
+                            </td>
+                        </tr>
+                        </tbody>-->
+						<tbody ng-repeat="material in currenctMaterial track by $index">
 						<!--<tr ng-class="{ 'active': material.selected }" class="gre-bg">-->
 						<tr ng-class="{ 'active': material.selected, 'gre-bg' : material.exPandOper}">
 							<td class="check-input">
-								<span ng-show="isBatch"><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
-								<span
-										ng-show="!isBatch" ng-bind="(param.page - 1) * 10 + $index + 1"></span>
+								<img ng-if="material.standard == 0" src="static/img/store/common/nonstandard.png" alt="" class="standard"/>
+								<img ng-if="material.standard != 0" src="static/img/store/common/standard.png" alt="" class="standard"/>
+								<span><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
+							</td>
+							<td class="check-input">
+								<span ng-bind="(param.page - 1) * 10 + $index + 1"></span>
 							</td>
-							<td><span ng-bind="material.erpReserve ? material.erpReserve : 0" title="{{material.erpReserve}}"></span></td>
 							<td>
 								<span ng-if="material.kind" ng-bind="material.kind" title="{{material.kind}}"></span>
 								<span ng-if="!material.kind" ng-bind="material.kinden || '-'" title="{{material.kinden || '-'}}"></span>
 							</td>
 							<td>
-								<a class="brand-type" ng-if="material.cmpUuId" ng-href="product/component/{{material.cmpUuId}}/" ng-bind="material.pcmpcode" title="{{material.pcmpcode}}" target="_blank"></a>
+							<span ng-if="material.cmpUuId">
+								<a class="brand-type" ng-bind="material.pcmpcode" ng-href="product/component/{{material.cmpUuId}}/" title="{{material.pcmpcode}}" target="_blank"></a>
+							</span>
 								<span class="brand-type" ng-if="!material.cmpUuId" ng-bind="material.pcmpcode" title="{{material.pcmpcode}}"></span>
 							</td>
 							<td>
 								<div class="ellipsis-div" ng-if="material.pbranden" ng-bind="material.pbranden" title="{{material.pbranden}}"></div>
 								<div class="ellipsis-div" ng-if="!material.pbranden" ng-bind="material.pbrand" title="{{material.pbrand}}"></div>
 							</td>
-							<td ng-bind="material.unit || 'PCS'" title="{{material.unit  || 'PCS'}}"></td>
+							<!--<td ng-bind="material.unit || 'PCS'" title="{{material.unit  || 'PCS'}}"></td>-->
+							<td>
+								<span ng-bind="material.spec || '-'" title="{{material.spec || '-'}}"></span>
+							</td>
 							<td class="edit">
 								<span name="delete-material" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="deleteMaterial(material)"><span>删除</span></span>
-								<span ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="showShelfArea(material)">
-									<span ng-if="material.batchCount">添加产品</span>
-									<span ng-if="!material.batchCount">编辑上架</span>
-								</span>
-								<span ng-if="material.batchCount" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="expandGoods(material)"><span>展开<i class="fa fa-angle-down" style="margin-left:2px;"></i></span></span>
+								<!--<span ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="showShelfArea(material)"><span>添加产品</span></span>-->
+								<!--<span ng-if="material.batchCount" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="expandGoods(material)"><span>展开<i class="fa fa-angle-down" style="margin-left:2px;"></i></span></span>-->
 								<!--收起-->
 								<span ng-show="!isBatch && material.exPandOper" ng-click="disExpandGoods(material)" class="packUp"><span>收起<i class="fa fa-angle-up" style="margin-left:2px;"></i></span></span>
+								<span ng-click="setActiveIndex($index,material)"><span>编辑可替代型号</span></span>
 								<!--<a ng-show="!isBatch" ng-click="showShelfArea(material)"><span ng-if="!isBatch">编辑</span></a>-->
 								<!--<span ng-show="!isBatch && (material.sold == 0 && material.canSell == 1)" ng-click="publishGoods(material)"><span ng-if="!isBatch">上架</span></span>-->
 							</td>
@@ -1746,7 +1929,6 @@
 													<div class="labelling">
 														<!--<em>*</em>-->
 														自定义标签 : <input maxlength="20" type="text" ng-model="goods.editTag" ng-blur="blurTag(goods)" ng-change="changeTag(goods)" placeholder="请设置产品标签"></div>
-													<span>近一个月的销售平均价:<em ng-bind="material.averMonthSalePrice |  formateNumber : 6"></em></span>
 												</td>
 											</tr>
 											<tr class="edit-content edits" >
@@ -1754,7 +1936,7 @@
 													<div class="blue-bg">
 														<div></div>
 														<div class="img">
-															<a><img ng-src="{{goods.editPic || material.cmpImg || 'static/img/store/common/default.png'}}" alt="img"/></a>
+															<a><img ng-src="{{goods.editPic || 'static/img/store/common/default.png'}}" alt="img"/></a>
 															<div class="edit-img">
 																<a ng-click="deleteImg(goods)" class="delete-img" title="删除" ng-if="goods.editPic"><i class="fa fa-trash"></i></a>
 																<a ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
@@ -1780,8 +1962,8 @@
 														<div class="content margin10">
 															<!--<p class="title">库存</p>-->
 															<div class="input-list">
-																<span class="tit">上架数量:</span><input type="number" class="wid70 form-control" name="reserve" title="上架数量" placeholder="数量"
-																									 ng-model="goods.editReserve" maxlength="9" ng-blur="setPriceMaxAmount(goods, false)" ng-class="{'error' : goods.editReserveInvalid}" oninput="if(value.length>9)value=value.slice(0,9)"/>
+																<span class="tit">库存:</span><input type="number" class="wid70 form-control" name="reserve" title="库存" placeholder="数量"
+																								   ng-model="goods.editReserve" maxlength="9" ng-blur="setPriceMaxAmount(goods, false)" ng-class="{'error' : goods.editReserveInvalid}" oninput="if(value.length>9)value=value.slice(0,9)"/>
 															</div>
 															<div class="input-list">
 																<span class="tit">起订量:</span><input type="number" class="wid70 form-control" name="minBuyQty" title="起拍"  placeholder="数量"
@@ -1843,7 +2025,7 @@
 														<div class="content margin10">
 															<!--<p class="title">自营 / 寄售</p>-->
 															<div class="input-list">
-																<select ng-disabled="!$$nonProduct.canSelfSale" name="selfSale" class="wid56 select-adder form-control" ng-model="goods.editSelfSale">
+																<select ng-disabled="$$nonProduct.canSelfSale" name="selfSale" class="wid56 select-adder form-control" ng-model="goods.editSelfSale" ng-disabled="$$nonProduct.canSelfSale">
 																	<option value="1">自营</option>
 																	<option value="2">寄售</option>
 																</select>
@@ -1883,12 +2065,10 @@
 														<div class="content width140">
 															<p class="title"><span>包装:</span><span ng-bind="goods.packaging">盘装</span></p>
 															<p class="title"><span>生产日期:</span><span ng-bind="goods.produceDate">20160123</span></p>
-															<p class="title" ng-class="{'noBreak' : !goods.breakUp}">
-																<span ng-bind="goods.breakUp ? '可拆卖' : '不可拆卖'"></span>
-															</p>
+															<p class="title" ng-class="{'noBreak' : !goods.breakUp}" ng-bind="goods.breakUp ? '可拆卖' : '不可拆卖'">不可拆卖</p>
 														</div>
 														<div class="content width130">
-															<p class="title"><span>已上架数量:</span><span ng-bind="goods.reserve">9023492</span></p>
+															<p class="title"><span>库存:</span><span ng-bind="goods.reserve">9023492</span></p>
 															<p class="title"><span>起订量:</span><span ng-bind="goods.minBuyQty">90492</span></p>
 															<p class="title"><span>包装数量:</span><span ng-bind="goods.minPackQty">980</span></p>
 														</div>
@@ -1933,7 +2113,6 @@
 													<div class="labelling">
 														<!--<em>*</em>-->
 														自定义标签 : <input maxlength="20" type="text" ng-model="goods.editTag" ng-blur="blurTag(goods)" ng-change="changeTag(goods)" placeholder="请设置产品标签"></div>
-													<span>近一个月的销售平均价:<em ng-bind="material.averMonthSalePrice |  formateNumber : 6"></em></span>{{material.b2cDownStatus}}
 												</td>
 											</tr>
 											<tr class="edit-content edits" ng-if="goods.edit">
@@ -1973,9 +2152,9 @@
 														<div class="content margin10">
 															<!--<p class="title">库存</p>-->
 															<div class="input-list">
-																<span class="tit">上架数量:</span><input type="number" class="wid70 form-control" name="reserve" title="上架数量" placeholder="数量" ng-model="goods.editReserve" ng-blur="setPriceMaxAmount(goods, true)"
-																									 maxlength="9" oninput="if(value.length>9)value=value.slice(0,9)"
-																									 ng-class="{'error' : goods.editReserveInvalid}"/>
+																<span class="tit">库存:</span><input type="number" class="wid70 form-control" name="reserve" title="库存" placeholder="数量" ng-model="goods.editReserve" ng-blur="setPriceMaxAmount(goods, true)"
+																								   maxlength="9" oninput="if(value.length>9)value=value.slice(0,9)"
+																								   ng-class="{'error' : goods.editReserveInvalid}"/>
 															</div>
 															<div class="input-list">
 																<span class="tit">起订量:</span><input type="number" class="wid70 form-control" name="minBuyQty"
@@ -2078,6 +2257,30 @@
 								</div>
 							</td>
 						</tr>
+						<tr class="replace-row" ng-if="material.productReplaceList.length > 0">
+							<td colspan="7">
+								<div>
+									<p>可替代型号:</p>
+									<div class="replace-list">
+										<div class="replace-item" ng-repeat="replace in material.productReplaceList" ng-if="material.showMoreReplace || (!material.showMoreReplace && replace.detno < 5) ">
+											<i>{{replace.detno}}</i>
+											<span title="{{replace.ptrCmpcode}}">型号:{{replace.ptrCmpcode}}</span>
+											<span title="{{replace.ptrBranden}}">品牌:{{replace.ptrBranden}}</span>
+										</div>
+										<div ng-if="(material.productReplaceList.length < 4 && material.productReplaceList.length % 2 !== 0) || (material.productReplaceList.length > 4 && material.showMoreReplace && material.productReplaceList.length % 2 !== 0)" class="replace-item"></div>
+									</div>
+									<div class="open-more" ng-if="material.productReplaceList.length > 4">
+										<div>
+											<a href="javascript:void(0)" ng-click="material.showMoreReplace = !material.showMoreReplace" ng-if="material.productReplaceList.length > 4" ng-class="{'active': material.showMoreReplace}">
+												<em ng-bind="!material.showMoreReplace ? '查看更多' : '收起'"></em>
+												<i class="fa fa-angle-up" ng-if="material.showMoreReplace"></i>
+												<i class="fa fa-angle-down" ng-if="!material.showMoreReplace"></i>
+											</a>
+										</div>
+									</div>
+								</div>
+							</td>
+						</tr>
 						</tbody>
 					</table>
 					<div class="empty" ng-if="currenctMaterial.length == 0">
@@ -2085,8 +2288,8 @@
 							<img src="static/img/all/empty-cart.png">
 						</p>
 						<div class="empty-info">
-							<p class="grey"> 暂无产品信息,赶快上传让更多人看到你的产品吧 </p>
-							<a href="/vendor#/vendor_upload"><i></i>马上去上传</a>
+							<p class="grey"> 创建您的个人产品库,可为您精准推送客户需求 </p>
+							<a href="vendor#/vendor_upload?type=self"><i></i>马上去上传</a>
 						</div>
 					</div>
 					<div class="record-line text-right" ng-if="currenctMaterial.length != 0">
@@ -2267,7 +2470,7 @@
 						<div class="clearfix">
 							<div class="detail">
 								<div class="detail-title">包装:<span ng-bind="goods.packaging">盘装</span></div>
-								<div class="detail-title">已上架数量:<span ng-bind="goods.reserve">9023492</span></div>
+								<div class="detail-title">库存:<span ng-bind="goods.reserve">9023492</span></div>
 								<div class="detail-title">起订量:<span ng-bind="goods.minBuyQty">90492</span></div>
 							</div>
 							<div class="detail distance">
@@ -2302,6 +2505,43 @@
 	</div>
 </div>
 
+<div class="com-modal-wrap" ng-if="activeIndex > -1">
+	<div class="edit-replace-box">
+		<div class="title">
+			<div>型号:<span>{{editCmp}}</span></div>
+			<div>品牌:<span>{{editBrand}}</span></div>
+			<i class="fa fa-close" ng-click="setActiveIndex(-1)"></i>
+		</div>
+		<div class="content">
+			<div class="content-line">
+				<p>可替代型号:</p>
+			</div>
+			<div class="content-line" ng-repeat="(key, mate) in replaceMaterialList">
+				<div class="form-item form-left">
+					<span><i>{{key + 1}}</i><em>*</em>型号:</span>
+					<input type="text" class="form-control" ng-model="mate.ptrCmpcode" ng-change="onCodeChange(mate.ptrCmpcode, key)" ng-blur="onCodeBlur(key)" ng-class="{'error': errorObj[key].code == 1}" placeholder="请输入型号名称">
+					<ul class="similar-list" ng-show="mate.showSimilarCodeList && similarCode.length > 0 && mate.ptrCmpcode" ng-mouseenter="setIsInCodeList(true, key)" ng-mouseleave="setIsInCodeList(false, key)">
+						<li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(key, sCode.code)"></li>
+					</ul>
+				</div>
+				<div class="form-item form-right">
+					<span><em>*</em>品牌:</span>
+					<input type="text" class="form-control" ng-model="mate.ptrBranden" ng-change="onBrandChange(mate.ptrBranden, key)" ng-blur="onBrandBlur(key)" ng-class="{'error': errorObj[key].brand == 1}" placeholder="请输入品牌名称">
+					<ul class="similar-list" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
+						<li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(key, sBrand.nameEn)"></li>
+					</ul>
+					<i class="fa fa-minus-circle" ng-if="replaceMaterialList.length > 1" ng-click="setReplies('sub', key)"></i>
+					<i class="fa fa-plus-circle" ng-if="replaceMaterialList.length -1 == key && replaceMaterialList.length < 10" ng-click="setReplies('add', key)"></i>
+				</div>
+			</div>
+		</div>
+		<div class="operate">
+			<span ng-click="setProductReplacesByPerson(replaceMaterialList)">确定</span>
+			<span ng-click="setActiveIndex(-1)">取消</span>
+		</div>
+	</div>
+</div>
+
 <style>
 	/**/
 	.wanted_list01 .empty{

File diff suppressed because it is too large
+ 694 - 172
src/main/webapp/resources/view/vendor/forstore/erp/vendor_onSale_erp.html


+ 39 - 35
src/main/webapp/resources/view/vendor/forstore/erp/vendor_undercarriage_erp.html

@@ -219,6 +219,13 @@
         line-height: 15px;
         left: 18px;
     }
+    .check-input .standard{
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 27px;
+        height: 27px;
+    }
     .pro_management .product_off dd:last-of-type{
         border-bottom: #cfcfcf 1px solid;
     }
@@ -533,16 +540,23 @@
     .text-more-80 span.text-more{
         width: 50px;
     }
+    /*分页鼠标悬停效果*/
+    .device .wanted_list01 a:hover {
+        border-bottom: 1px solid #ddd!important;
+    }
+    .device .wanted_list01 a.page-a:hover{
+        color: #fff!important;
+    }
 </style>
 <div class="user_right fr">
     <!--货品管理-->
     <div class="pro_management device">
         <div class="com_tab">
             <ul class="fl" style="width: 100%">
-                <li ng-class="{'active': tab == 'unstandard_material'}"><a ui-sref="vendor_material_unstandard_erp({standardParam:'unstandard'})">非标产品</a></li>
-                <li ng-class="{'active': tab == 'vendor_material'}"><a ui-sref="vendor_material_erp({standardParam:'standard'})">标准产品</a></li>
-                <li ng-class="{'active': tab == 'onSale'}"><a ui-sref="vendor_onSale_erp">在售产品</a></li>
-                <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage_erp">上下架历史</a></li>
+                <li><a ui-sref="vendor_material_erp">企业产品库</a></li>
+                <li><a ui-sref="vendor_material_person_erp">个人产品库</a></li>
+                <li><a ui-sref="vendor_onSale_erp">在售产品</a></li>
+                <li class="active"><a ui-sref="vendor_undercarriage_erp">上下架历史</a></li>
             </ul>
         </div>
         <div class="search-check">
@@ -554,19 +568,19 @@
                     <input type="hidden" name="ids" ng-value="localInfo.ids">
                 </form>
             </div>
-<!--            <div class="check fr">
-                <a  ng-click="">批量操作</a>
-                <span class="check-btn">
-                    <label class="check-active">
-                        <input type="checkbox" id="AllChoose"/>
-                        <label for="AllChoose"></label>
-                        <span>全选</span>
-                    </label>
-                    <a href="#">上架</a>
-                    <a href="#">取消</a>
-                    <a href="#">确定</a>
-                </span>
-            </div>-->
+            <!--            <div class="check fr">
+                            <a  ng-click="">批量操作</a>
+                            <span class="check-btn">
+                                <label class="check-active">
+                                    <input type="checkbox" id="AllChoose"/>
+                                    <label for="AllChoose"></label>
+                                    <span>全选</span>
+                                </label>
+                                <a href="#">上架</a>
+                                <a href="#">取消</a>
+                                <a href="#">确定</a>
+                            </span>
+                        </div>-->
         </div>
         <!--<div class="search-check">
             <a ng-click="" class="down-goods-btn">批量操作</a>
@@ -620,6 +634,10 @@
                         <td class="middle padding0 check-input">
                             <!-- <span><input type="checkbox" id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>-->
                             <div>{{$index + 1}}</div>
+                            <!--非标产品标志-->
+                            <img ng-if="!commodity.uuid" src="static/img/store/common/nonstandard.png" alt="" class="standard"/>
+                            <!--标产品标志-->
+                            <img ng-if="commodity.uuid" src="static/img/store/common/standard.png" alt="" class="standard"/>
                         </td>
                         <td class="middle"  style="vertical-align: top !important;">
                             <div class="fl img">
@@ -700,24 +718,10 @@
                         </td>
                     </tr>
                     </tbody>
-                   <!-- <tbody>
-                    <tr style="height: 252px;" ng-if="!currenctGoods || currenctGoods.length <= 0">
-                        <td colspan="10" style="padding: 74px 0;">
-                            <div style="line-height: 106px;">
-                                <div class="col-xs-2" style="margin-left: 35%;">
-                                    <img src="static/img/all/empty-cart.png">
-                                </div>
-                                <div class="col-xs-4" style="line-height: 124px;">
-                                    <p class="grey f16">暂无下架产品信息</p>
-                                </div>
-                            </div>
-                        </td>
-                    </tr>
-                    </tbody>-->
                     <tbody class="no-record-list" ng-if="!currenctGoods || currenctGoods.length <= 0">
-                        <tr class="height200">
-                            <td colspan="10"><img src="static/img/all/empty-cart.png"><span>暂无下架产品信息</span></td>
-                        </tr>
+                    <tr style="height:378px!important;">
+                        <td colspan="10"><img src="static/img/all/empty-cart.png"><span class="f14">暂无下架产品信息</span></td>
+                    </tr>
                     </tbody>
                 </table>
                 <div class="record-line text-right" ng-if="currenctGoods.length != 0">显示<span ng-bind="goodsAll.start"></span>-<span ng-bind="goodsAll.numberOfElements"></span>个,共:<span ng-bind="goodsAll.totalElements" cl style="color: #5078cb;"></span>个</div>
@@ -733,7 +737,7 @@
                         </li>
                     </ul>
                     <div class="page-go-block">
-                        <input class="page-number" type="text" ng-model="param.currentPage" ng-keydown="listenEnter()"/>
+                        <input class="page-number" type="number" ng-model="param.currentPage" ng-keydown="listenEnter()"/>
                         <a class="page-a" ng-click="setPage('page', param.currentPage)" href="">GO</a>
                     </div>
                 </div>

+ 2 - 1
src/main/webapp/resources/view/vendor/forstore/query_logistics.html

@@ -270,7 +270,8 @@
                                         <img src="static/img/all/empty-cart.png">
                                     </p>
                                     <div class="empty-info">
-                                        <p class="grey"> 暂时获取不到订单的的物流信息 </p>
+                                        <p class="grey" ng-if="purchase.sendType == 1301">暂时获取不到物流信息,请到快递公司官网进行查询</p>
+                                        <p class="grey" ng-if="purchase.sendType != 1301">暂无物流信息</p>
                                         <!--<a href="javascript:history.go(-1)"><i class="fa fa-mail-reply fa-xs"></i>返回上一页</a>-->
                                     </div>
                                 </div>

+ 1 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_delivery.html

@@ -457,7 +457,6 @@
         position: relative;
         top: -15px;
         height: 80px;
-        margin-top: -10px;
     }
     #oder-detail .line60.logistic-input.h125{
         height: 125px;
@@ -692,7 +691,7 @@
                             <i ng-bind="takeSelf.takename"></i> &nbsp;&nbsp;营业时间:<em ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</em><br/>
                             地址:<em ng-bind="takeSelf.area">广东省  深圳市  南山区</em>&nbsp;&nbsp;<em ng-bind="takeSelf.detailAddress">科技园英唐大厦6楼 优软商城科技园英唐大厦6楼 优软商城</em>
                         </div>
-                        <div style="width: 100%;margin: 0 auto;height: 45px;">
+                        <div style="width: 100%;margin: 0 auto;height: 45px;position: relative;top: -10px;">
                             <span style="width: 10%; margin-left: 22px;">物流公司 :&nbsp;</span>
                             <span class="input-ul">
                                 <input id="addr" style="border: #5078cb 1px solid;" type="text" class="form-control select-adder" ng-focus="getItemFocus()" ng-blur="onItemBlur()" ng-keydown="onKeyup()" ng-model="logistics.companyName" placeholder="请选择物流公司" autocomplete="off" maxlength="15" readonly="readonly" >

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/vendor_material_person.html

@@ -2521,7 +2521,7 @@
                     <ul class="similar-list" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
                         <li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(key, sBrand.nameEn)"></li>
                     </ul>
-                    <i class="fa fa-minus-circle" ng-if="replaceMaterialList.length > 1" ng-click="setReplies('sub', key)"></i>
+                    <i class="fa fa-minus-circle" ng-if="replaceMaterialList.length >= 1" ng-click="setReplies('sub', key)"></i>
 					<i class="fa fa-plus-circle" ng-if="replaceMaterialList.length -1 == key && replaceMaterialList.length < 10" ng-click="setReplies('add', key)"></i>
 				</div>
 			</div>

Some files were not shown because too many files changed in this diff